Este tutorial demonstrará como usar o VBA para abrir um banco de dados do Access. Também demonstrará como criar um login para acessar o banco de dados - verificando se o nome de usuário e a senha existem na tabela tblUsers do banco de dados.
Banco de dados de acesso aberto
Esta função VBA abrirá um banco de dados Access:
Função pública OpenAccessDatabase (strDBPath As String) If Not IsNull (strDBPath) Then Shell "MSACCESS.EXE" "" & strDBPath & "" "", vbNormalFocus End Function
Você pode chamar a função assim:
Private Sub OpenAccessDatabase_Example () Chame OpenAccessDatabase ("C: \ temp \ Database1.accdb") End Sub
Conectar ao banco de dados de acesso
Como alternativa, você pode usar este código que criará uma nova instância do Access, abrirá um banco de dados e atribuirá o banco de dados a uma variável 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 use esta função, contendo o código acima para abrir um banco de dados para uma variável:
Função pública 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 Função Final
Você pode chamar a função e interagir com o banco de dados usando um procedimento como este:
Private Sub Connect_To_AccessDB_Example () Dim AccessDB As DAO.Database 'Exemplo para atribuir um banco de dados a uma variável Set AccessDB = Connect_To_AccessDB ("c: \ temp \ TestDB.accdb") AccessDB.Execute ("criar tabela tbl_test3 (num número, nome char , lastname char) ") 'Exemplo para atribuir um fechamento de banco de dados externo AccessDB.Close Set AccessDB = Nothing' Exemplo para deletar um arquivo de banco de dados externo (.accdb) 'Kill (" c: \ temp \ TestDB.accdb ")' Exemplo para fechar Access 'DoCmd.Quit End Sub
Acessar Login do Banco de Dados
Esta função VBA utiliza um login verificando um nome de usuário e uma senha inseridos na tabela tblUsers. Para que esta função funcione, você precisará criar uma tabela tblUsers com os campos Senha e Nome de usuário.
Função pública UserLogin (UserName As String, Password As String) 'Verificar se o usuário existe na tabela tblUsers do banco de dados atual. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True If Nz (UserName, "") = "" Then MsgBox "Você deve inserir o nome de usuário.", VbInformation Exit Function ElseIf Nz (Password, "") = "" Then MsgBox "Você deve inserir o Password. ", VbInformation Exit Function End If If CheckInCurrentDatabase = True Then 'Verificar as credenciais do usuário If Nz (DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '" ), 0) = 0 Então MsgBox "Nome de usuário inválido!", VbExclamation Função de saída ElseIf Nz (Senha, "") Nz (DLookup ("Senha", "tblUsers", "[Nome de usuário] = '" & Nz (Nome de usuário, " ") &" '")," ") Então MsgBox" Senha inválida! ", VbExclamation Exit Function ElseIf DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '")> 0 Then Dim strPW As String strPW = Nz (DLookup (" Password "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '")," ") If Nz (Senha, "") = strPW Then 'Definir nome de usuário e senha como verificáveis globais TempVars.Add "CurrentUserName", Nz (UserName, "") TempVars.Add "Cur rentUserPassword ", Nz (Password," ") MsgBox" Logado com sucesso ", vbExclamation End If End If Else 'Definir nome de usuário e senha como verificáveis globais TempVars.Add" CurrentUserName ", Nz (UserName," ") TempVars.Add" CurrentUserPassword ", Nz (Senha," ") MsgBox" Logado com sucesso ", vbExclamation End If End Function
Você pode chamar a função assim:
Private Sub UserLogin_Example () Call VBA_Access_General.UserLogin ("Nome de usuário", "senha") End Sub