Acesse o banco de dados VBA - Abra, conecte, faça login e muito mais

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

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave