Dostęp do bazy danych VBA - otwieranie, łączenie, logowanie i nie tylko

Ten samouczek pokaże, jak używać VBA do otwierania bazy danych programu Access. Zademonstruje również, jak utworzyć login, aby uzyskać dostęp do bazy danych - sprawdzenie, czy nazwa użytkownika i hasło istnieją w tabeli tblUsers bazy danych.

Baza danych otwartego dostępu

Ta funkcja VBA otworzy bazę danych Access:

Funkcja publiczna OpenAccessDatabase(strDBPath As String) Jeśli nie IsNull(strDBPath) Następnie powłoka "MSACCESS.EXE """ i strDBPath & """", funkcja zakończenia vbNormalFocus

Możesz wywołać funkcję w ten sposób:

Private Sub OpenAccessDatabase_Example() Wywołanie OpenAccessDatabase("C:\temp\Database1.accdb") End Sub

Połącz z bazą danych dostępu

Alternatywnie możesz użyć tego kodu, który utworzy nową instancję programu Access, otworzy bazę danych i przypisze bazę danych do zmiennej db:

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

lub użyj tej funkcji, zawierającej powyższy kod, aby otworzyć bazę danych do zmiennej:

Funkcja publiczna 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 Koniec funkcji

Możesz wywołać funkcję i wejść w interakcję z bazą danych za pomocą procedury takiej jak ta:

Private Sub Connect_To_AccessDB_Example() Dim AccessDB As DAO.Database 'Przykład przypisania bazy danych do zmiennej Set AccessDB = Connect_To_AccessDB("c:\temp\TestDB.accdb") AccessDB.Execute ("utwórz tabelę tbl_test3 (numer numer, znak imienia) , lastname char)") 'Przykład przypisania zamknięcia zewnętrznej bazy danych AccessDB.Close Set AccessDB = Nothing 'Przykład usunięcia pliku zewnętrznej bazy danych (.accdb) 'Zabij ("c:\temp\TestDB.accdb") 'Przykład aby zamknąć Dostęp 'DoCmd.Quit End Sub

Dostęp do bazy danych logowania

Ta funkcja VBA wykorzystuje login poprzez sprawdzenie wprowadzonej nazwy użytkownika i hasła w tabeli tblUsers. Aby ta funkcja działała, musisz utworzyć tabelę tblUsers z polami Hasło i Nazwa użytkownika.

Public Function UserLogin(UserName As String, Password As String) 'Sprawdź, czy użytkownik istnieje w tabeli tblUsers bieżącej bazy danych. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True If Nz(UserName, "") = "" Then MsgBox "Musisz wprowadzić nazwę użytkownika.", vbInformation Exit Function ElseIf Nz(Password, "") = "" Then MsgBox "Musisz wprowadzić Password.", vbInformation Exit Function End If If CheckInCurrentDatabase = True Then 'Zweryfikuj poświadczenia użytkownika If Nz(DCount("UserName", "tblUsers", "[UserName] = '" & Nz(UserName, "") & "'" ), 0) = 0 Then MsgBox "Nieprawidłowa nazwa użytkownika!", vbExclamation Zakończ funkcję ElseIf Nz(Password, "") Nz(DLookup("Password", "tblUsers", "[UserName] = '" & Nz(UserName, " ") & "'"), "") Then MsgBox "Nieprawidłowe hasło!", vbExclamation Zakończ funkcję ElseIf DCount("UserName", "tblUsers", "[UserName] = '" & Nz(UserName, "") & " '") > 0 Then Dim strPW As String strPW = Nz(DLookup("Password", "tblUsers", "[UserName] = '" & Nz(UserName, "") & "'"), "") If Nz (Password, "") = strPW Then 'Set Username and Password as Global Veriables TempVars.Add "CurrentUserName", Nz(UserName, "") TempVars.Add "Cur rentUserPassword", Nz(Password, "") MsgBox "Zalogowano pomyślnie", vbExclamation End If End If Else 'Ustaw nazwę użytkownika i hasło jako globalne zmienne TempVars.Add "CurrentUserName", Nz(UserName, "") TempVars.Add "CurrentUserPassword ", Nz(Password, "") MsgBox "Zalogowano pomyślnie", vbExclamation End If End Function

Możesz wywołać funkcję w ten sposób:

Private Sub UserLogin_Example() Wywołaj VBA_Access_General.UserLogin("Nazwa użytkownika", "hasło") End Sub

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave