Accedi al database VBA: apri, connetti, accedi e altro

Questo tutorial dimostrerà come utilizzare VBA per aprire un database di Access. Dimostrerà anche come creare un login per accedere al database, controllando se il nome utente e la password esistono nella tabella tblUsers del database.

Apri database di accesso

Questa funzione VBA aprirà un database di Access:

Funzione pubblica OpenAccessDatabase(strDBPath As String) If Not IsNull(strDBPath) Then Shell "MSACCESS.EXE """ & strDBPath & """", vbNormalFocus End Function

Puoi chiamare la funzione in questo modo:

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

Connettiti al database di accesso

In alternativa, puoi usare questo codice che creerà una nuova istanza di Access, aprirà un database e assegnerà il database a una variabile db:

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

oppure utilizzare questa funzione, contenente il codice sopra, per aprire un database a una variabile:

Funzione pubblica Connect_To_AccessDB(strDBPath As String) As DAO.Database Dim objAccess As Access.Application Dim db As DAO.Database Set objAccess = Nuovo Access.Application Set db = objAccess.DBEngine.OpenDatabase(strDBPath, False, False) Set Connect_To_AccessDB = db Fine funzione

Puoi chiamare la funzione e interagire con il database usando una procedura come questa:

Private Sub Connect_To_AccessDB_Example() Dim AccessDB As DAO.Database 'Esempio per assegnare un database a una variabile Set AccessDB = Connect_To_AccessDB("c:\temp\TestDB.accdb") AccessDB.Execute ("create table tbl_test3 (num number,firstname char , cognome char)") 'Esempio per assegnare una chiusura a un database esterno AccessDB.Close Set AccessDB = Nothing 'Esempio per eliminare un file di database esterno (.accdb) 'Kill ("c:\temp\TestDB.accdb") 'Esempio per chiudere Accedere a 'DoCmd.Quit End Sub

Accedi al database di accesso

Questa funzione VBA utilizza un login controllando un nome utente e una password immessi rispetto alla tabella tblUsers. Affinché questa funzione funzioni, dovrai creare una tabella tblUsers con i campi Password e Username.

Public Function UserLogin (UserName As String, Password As String) 'Controlla se l'utente esiste nella tabella tblUsers del database corrente. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True If Nz(UserName, "") = "" Then MsgBox "Devi inserire il nome utente.", vbInformation Exit Function ElseIf Nz(Password, "") = "" Then MsgBox "Devi inserire il Password.", vbInformation Exit Function End If If CheckInCurrentDatabase = True Then 'Verifica le credenziali dell'utente If Nz(DCount("UserName", "tblUsers", "[UserName] = '" & Nz(UserName, "") & "'" ), 0) = 0 Then MsgBox "Nome utente non valido!", vbExclamation Exit Function ElseIf Nz(Password, "") Nz(DLookup("Password", "tblUsers", "[UserName] = '" & Nz(UserName, " ") & "'"), "") Then MsgBox "Password non valida!", 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 (Password, "") = strPW Poi 'Imposta nome utente e password come Global Veriables TempVars.Add "CurrentUserName", Nz(UserName, "") TempVars.Add "Cur rentUserPassword", Nz(Password, "") MsgBox "Accesso effettuato", vbExclamation End If End If Else 'Imposta nome utente e password come Global Veriables TempVars.Add "CurrentUserName", Nz(UserName, "") TempVars.Add "CurrentUserPassword ", Nz(Password, "") MsgBox "Accesso effettuato con successo", vbExclamation End If End Function

Puoi chiamare la funzione in questo modo:

Private Sub UserLogin_Example() Call VBA_Access_General.UserLogin("Username", "password") End Sub

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave