Acceda a la base de datos de VBA: abra, conecte, inicie sesión y más

Este tutorial demostrará cómo usar VBA para abrir una base de datos de Access. También demostrará cómo crear un inicio de sesión para acceder a la base de datos, verificando si el nombre de usuario y la contraseña existen en la tabla tblUsers de la base de datos.

Base de datos de acceso abierto

Esta función de VBA abrirá una base de datos de acceso:

Función pública OpenAccessDatabase (strDBPath como cadena) Si no es IsNull (strDBPath) Entonces Shell "MSACCESS.EXE" "" & strDBPath & "" "", vbNormalFocus End Function

Puedes llamar a la función así:

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

Conectarse a la base de datos de Access

Alternativamente, puede usar este código que creará una nueva instancia de Access, abrirá una base de datos y asignará la base de datos a una variable db:

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

o use esta función, que contiene el código anterior para abrir una base de datos a una variable:

Función 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) SetD ConnectBTo_Access Función final

Puede llamar a la función e interactuar con la base de datos mediante un procedimiento como este:

Private Sub Connect_To_AccessDB_Example () Dim AccessDB As DAO.Database 'Ejemplo para asignar una base de datos a una variable Establecer AccessDB = Connect_To_AccessDB ("c: \ temp \ TestDB.accdb") AccessDB.Execute ("crear tabla tbl_test3 (num número, nombre char , lastname char) ") ​​'Ejemplo para asignar un cierre a una base de datos externa AccessDB.Close Set AccessDB = Nothing' Ejemplo para eliminar un archivo de base de datos externa (.accdb) 'Kill (" c: \ temp \ TestDB.accdb ")' Ejemplo para cerrar Access 'DoCmd.Quit End Sub

Acceso a la base de datos de inicio de sesión

Esta función de VBA utiliza un inicio de sesión al verificar un nombre de usuario y una contraseña ingresados ​​con la tabla tblUsers. Para que esta función funcione, deberá crear una tabla tblUsers con los campos Contraseña y Nombre de usuario.

Función pública UserLogin (nombre de usuario como cadena, contraseña como cadena) 'Marque si el usuario existe en la tabla tblUsers de la base de datos actual. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True If Nz (UserName, "") = "" Then MsgBox "Debe ingresar el nombre de usuario.", VbInformation Exit Function ElseIf Nz (Password, "") = "" Entonces MsgBox "Debe ingresar el Password. ", VbInformation Exit Function End If If CheckInCurrentDatabase = True Then 'Verificar las credenciales de usuario If Nz (DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '" ), 0) = 0 Entonces MsgBox "¡Nombre de usuario no válido!", VbExclamation Exit Function ElseIf Nz (Password, "") Nz (DLookup ("Password", "tblUsers", "[UserName] = '" & Nz (UserName, " ") &" '")," ") Luego MsgBox" Contraseña no válida ", vbExclamation Exit Function ElseIf DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '")> 0 A continuación, atenúe strPW como cadena strPW = Nz (DBúsq (" Contraseña "," tblUsers "," [Nombre de usuario] =' "& Nz (Nombre de usuario," ") &" '")," ") Si Nz (Contraseña, "") = strPW Luego 'Establezca el nombre de usuario y la contraseña como variables globales TempVars.Agregue "CurrentUserName", Nz (UserName, "") TempVars.Agregue "Cur rentUserPassword ", Nz (Contraseña," ") MsgBox" Conectado correctamente ", vbExclamation End If End If Else 'Establecer nombre de usuario y contraseña como Global Veriables TempVars.Add" CurrentUserName ", Nz (UserName," ") TempVars.Add" CurrentUserPassword ", Nz (Contraseña," ") MsgBox" Se registró correctamente ", vbExclamation End If End Function

Puedes llamar a la función así:

Private Sub UserLogin_Example () Llamar a VBA_Access_General.UserLogin ("Nombre de usuario", "contraseña") End Sub

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave