Accéder à la base de données VBA - Ouvrir, se connecter, se connecter, etc.

Ce didacticiel montrera comment utiliser VBA pour ouvrir une base de données Access. Il montrera également comment créer une connexion pour accéder à la base de données - vérifier si le nom d'utilisateur et le mot de passe existent sur la table tblUsers de la base de données.

Base de données en libre accès

Cette fonction VBA ouvrira une base de données Access :

Fonction publique OpenAccessDatabase (strDBPath As String) Sinon IsNull (strDBPath) Alors Shell "MSACCESS.EXE """ & strDBPath & """", vbNormalFocus End Function

Vous pouvez appeler la fonction comme ceci :

Private Sub OpenAccessDatabase_Example() Appeler OpenAccessDatabase("C:\temp\Database1.accdb") End Sub

Se connecter à la base de données Access

Alternativement, vous pouvez utiliser ce code qui créera une nouvelle instance d'Access, ouvrira une base de données et affectera la base de données à une variable db:

 Dim objAccess As Access.Application Dim db As DAO.Database Set objAccess = New Access.Application Set db = objAccess.DBEngine.OpenDatabase(strDBPath, False, False)

ou utilisez cette fonction, contenant le code ci-dessus pour ouvrir une base de données à une variable :

Fonction publique Connect_To_AccessDB(strDBPath As String) As DAO.Database Dim objAccess As Access.Application Dim db As DAO.Database Set objAccess = New Access.Application Set db = objAccess.DBEngine.OpenDatabase(strDBPath, False, False) Set Connect_To_AccessDB = db Fonction de fin

Vous pouvez appeler la fonction et interagir avec la base de données en utilisant une procédure comme celle-ci :

Private Sub Connect_To_AccessDB_Example() Dim AccessDB As DAO.Database 'Exemple pour affecter une base de données à une variable Set AccessDB = Connect_To_AccessDB("c:\temp\TestDB.accdb") AccessDB.Execute ("create table tbl_test3 (num number,firstname char , lastname char)") 'Exemple pour attribuer une fermeture à une base de données externe AccessDB.Close Set AccessDB = Nothing 'Exemple pour supprimer un fichier de base de données externe (.accdb) 'Kill ("c:\temp\TestDB.accdb") 'Exemple pour fermer l'accès 'DoCmd.Quit End Sub

Connexion à la base de données d'accès

Cette fonction VBA utilise une connexion en vérifiant un nom d'utilisateur et un mot de passe saisis par rapport à la table tblUsers. Pour que cette fonction fonctionne, vous devrez créer une table tblUsers avec les champs Mot de passe et Nom d'utilisateur.

Public Function UserLogin (Nom d'utilisateur en tant que chaîne, Mot de passe en tant que chaîne) 'Vérifiez si l'utilisateur existe dans la table tblUsers de la base de données actuelle. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True If Nz(UserName, "") = "" Then MsgBox "Vous devez saisir le nom d'utilisateur.", vbInformation Exit Function ElseIf Nz(Password, "") = "" Then MsgBox "Vous devez saisir le Mot de passe.", vbInformation Exit Function End If If CheckInCurrentDatabase = True Then 'Vérifier les informations d'identification de l'utilisateur If Nz(DCount("UserName", "tblUsers", "[UserName] = '" & Nz(UserName, "") & "'" ), 0) = 0 Then MsgBox "Nom d'utilisateur invalide !", vbExclamation Exit Function ElseIf Nz(Password, "") Nz(DLookup("Password", "tblUsers", "[UserName] = '" & Nz(UserName, " ") & "'"), "") Then MsgBox "Mot de passe invalide !", vbExclamation Exit Function ElseIf DCount("UserName", "tblUsers", "[UserName] = '" & Nz(UserName, "") & " '") > 0 Then Dim strPW As String strPW = Nz(DLookup("Password", "tblUsers", "[UserName] = '" & Nz(UserName, "") & "'"), "") Si Nz (Password, "") = strPW Then 'Set Username and Password as Global Veriables TempVars.Add "CurrentUserName", Nz(UserName, "") TempVars.Add "Cur rentUserPassword", Nz(Password, "") MsgBox "Connecté avec succès", vbExclamation End If End If Else 'Définir le nom d'utilisateur et le mot de passe comme Global Veriables TempVars.Add "CurrentUserName", Nz(UserName, "") TempVars.Add "CurrentUserPassword ", Nz(Password, "") MsgBox "Connecté avec succès", vbExclamation End If End Function

Vous pouvez appeler la fonction comme ceci :

Private Sub UserLogin_Example() Appelez VBA_Access_General.UserLogin("Username", "password") End Sub

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave