В этом руководстве будет показано, как использовать VBA для открытия базы данных Access. Он также продемонстрирует, как создать логин для доступа к базе данных - проверка наличия имени пользователя и пароля в таблице tblUsers базы данных.
База данных открытого доступа
Эта функция VBA откроет базу данных Access:
Открытая функция OpenAccessDatabase (strDBPath As String) Если не IsNull (strDBPath), то оболочка "MSACCESS.EXE" "" & strDBPath & "" "", конечная функция vbNormalFocus
Вы можете вызвать функцию так:
Частная подпрограмма OpenAccessDatabase_Example () Вызов OpenAccessDatabase ("C: \ temp \ Database1.accdb") End Sub
Подключиться к базе данных Access
В качестве альтернативы вы можете использовать этот код, который создаст новый экземпляр Access, откроет базу данных и назначит базу данных переменной. db:
Dim objAccess As Access.Application Dim db As DAO.Database Set objAccess = New Access.Application Set db = objAccess.DBEngine.OpenDatabase (strDBPath, False, False)
или используйте эту функцию, содержащую приведенный выше код, чтобы открыть базу данных для переменной:
Общедоступная функция 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, FalseA database) Установить Connect_To Конечная функция
Вы можете вызвать функцию и взаимодействовать с базой данных, используя такую процедуру:
Private Sub Connect_To_AccessDB_Example () Dim AccessDB As DAO.Database 'Пример назначения базы данных переменной Set AccessDB = Connect_To_AccessDB ("c: \ temp \ TestDB.accdb") AccessDB.Execute ("create table tbl_test3 (num number, firstname char , lastname char) ") 'Пример назначения закрытия внешней базы данных AccessDB.Close Set AccessDB = Nothing' Пример удаления файла внешней базы данных (.accdb) 'Kill (" c: \ temp \ TestDB.accdb ")' Пример закрыть Access 'DoCmd.Quit End Sub
Вход в базу данных Access
Эта функция VBA использует логин путем проверки введенного имени пользователя и пароля по таблице tblUsers. Чтобы эта функция работала, вам нужно будет создать таблицу tblUsers с полями Password и Username.
Открытая функция UserLogin (имя пользователя как строка, пароль как строка) 'Проверить, существует ли пользователь в таблице tblUsers текущей базы данных. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True Если Nz (UserName, "") = "" Then MsgBox "Вы должны ввести имя пользователя.", VbInformation Функция выхода ElseIf Nz (Password, "") = "" Then MsgBox "Вы должны ввести Пароль. ", VbInformation Exit Function End If If If CheckInCurrentDatabase = True Then 'Проверить учетные данные пользователя If Nz (DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '" ), 0) = 0 Тогда MsgBox "Invalid Username!", VbExclamation Exit Function ElseIf Nz (Password, "") Nz (DLookup ("Password", "tblUsers", "[UserName] = '" & Nz (UserName, " ") &" '")," ") Then MsgBox" Invalid Password! ", VbExclamation Exit Function ElseIf DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '")> 0 Затем Dim strPW As String strPW = Nz (DLookup (" Пароль "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '")," ") Если Nz (Пароль, "") = strPW Then 'Установить имя пользователя и пароль как глобальные проверяемые TempVars.Add "CurrentUserName", Nz (UserName, "") TempVars.Add "Cur rentUserPassword ", Nz (Password," ") MsgBox" Успешный вход в систему ", vbExclamation End If End If Else 'Установить имя пользователя и пароль как глобальные проверяемые TempVars.Add" CurrentUserName ", Nz (UserName," ") TempVars.Add" CurrentUserPassword ", Nz (Пароль," ") MsgBox" Успешный вход в систему ", vbExclamation End If End Function
Вы можете вызвать функцию так:
Private Sub UserLogin_Example () Вызов VBA_Access_General.UserLogin ("Имя пользователя", "пароль") End Sub