Ouverture Base Access Sécurisé par le code

[Résolu]
Signaler
Messages postés
3
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
2 août 2005
-
Messages postés
3
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
2 août 2005
-
Bonjour,

J'aurai voulu ouvrir une base Access (non-sécurisé) sur mon poste local avec le système de sécurité d'une base Access en réseaux en lui passant le nom de l'utilisateur et le mot de passe pour que la connexion se fasse automatiquement.

Pour le moment je lance le raccourci suivant :
C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE "C:\MaBaseLocale.mdb" /WRKGRP "S:\MaBaseReseaux.mdw"

J'ai le ID et le mot de passe mais je dois le saisir à la main. Est-il possible de les passer en paramètre afin de simplifier l'utiliastion ?

Merci d'avance

CammCamm

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
tu peux peut-être stocker les paramètres de chaque client dans un fichier texte?!
première éxécution, fichier vide ou inexistant, form de paramétrage.
ensuite, fichier non vide, ton appli lit les params et se connecte en conséquence...
PCPT
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
9
Salut,


Tu peux faire avec un fichier texte ou un fichier INI




<hr size="2" width="100%">Private Declare
Function GetPrivateProfileString Lib "kernel32" Alias
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal
lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As
String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias
"WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal
lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As
Long



Function LireINI(Entete As String, Variable As String) As String

Dim Retour As String

Dim fichier As String

fichier = App.path & "" & App.EXEName & ".ini"

Retour = String(255, Chr(0))

LireINI = Left$(Retour, GetPrivateProfileString(Entete, ByVal Variable, "", Retour, Len(Retour), fichier))

End Function

Function EcrireINI(Entete As String, Variable As String, valeur As String) As String

Dim fichier As String

fichier = App.path & "" & App.EXEName & ".ini"

EcrireINI = WritePrivateProfileString(Entete, Variable, valeur, fichier)

End Function


<hr size="2" width="100%">



Sinon tu peux Sauver/Lire dans la base des registres #26892
qui a l'avantage d'être moins facil à trouver... puisque je suppose que
si y'a un mot de passe sur la base, c'est pour sécuriser ...




++

Zlub
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
tes chemins XgJet contiennent le chemin complet? (à partir du drive)

essaye, juste pour test, de ne lancer que :

XgAppMainId = Shell(XgAccessPath, AppWinStyle.NormalFocus)
'ou VbNormalFocus

si çà fonctionne, le problème vient alors sans doute du raccourci

PCPT
(pense à valider si résolu)
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
2 août 2005

Rebonjour,

Merci pour votre aide et en combinant vos réponses j'ai créer un fichier user.ini qui sera lu par l'application Access puis je lance directement ACCESS via un raccourci contenant le USER et le PWD de la base :

'------------------------------------------------------------------------------------------

' Write Ini File For user application parametres
'------------------------------------------------------------------------------------------
Call P_UserIniFile(XgIniUserFile)

'-----------------------------------------------------------------------------------------
' Execute Access application
'-----------------------------------------------------------------------------------------
Me.UI_InfoTxt.Text = "Executing Access Application"
Application.DoEvents()
XgStr = XgAccessPath & " " & XgJetLocPath & "/USER " & XId_User & " /PWD " & XPwd_User & " /WRKGRP " & XgJetNetSysPath
XgAppMainId = Shell(XgStr, AppWinStyle.NormalFocus)
Application.Exit()

Avec :
XgAccessPath : le chemin vers Access : C:\PROGRA~1\MICROS~2\OFFICE11
\MSACCESS.EXE pour Windows XP
XgJetLocPath : le chemin vers ma base Locale non-sécurisée (.mdb)
XgJetNetSysPath : le chemin vers ma base Reseaux sécurisé (.mdw)

Par contre, ca doit fonctionner sur XP et NT mais malheureusement ce Shell ne marche pas sous XP à moins que ca ne soit du à la version d'Access qui n'arrive pas à le lire.

Si vous avez une idée du problème ??

Tchao

CammCamm
Messages postés
3
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
2 août 2005

J'ai créer une fonction me construisant correctement le raccouci fonctionnant avec toutes les versions d'Access...

Public
Function F_AccessShellFmt() As
String
Dim XStr As
String
XStr = Chr(34) & XgAccessPath & Chr(34) & " "
XStr &= Chr(34) & XgJetLocPath & Chr(34)
XStr &= " /user " & XId_User & " /pwd " & XPwd_User & " /WRKGRP "
XStr &= Chr(34) & XgJetNetSysPath & Chr(34)
Return XStr
End Function

merci de votre aide.....

CammCamm