VBA Veritabanına Erişim - Aç, Bağlan, Oturum Aç ve Daha Fazlası

Bu öğretici, bir Access Veritabanını açmak için VBA'nın nasıl kullanılacağını gösterecektir. Ayrıca, veritabanına erişmek için nasıl oturum açılacağını da gösterecek - veritabanının tblUsers tablosunda kullanıcı adı ve parolanın olup olmadığını kontrol edecek.

Açık Erişim Veritabanı

Bu VBA işlevi bir Access Veritabanı açacaktır:

Genel İşlev OpenAccessDatabase(strDBPath As String) IsNull(strDBPath) Değilse, Shell "MSACCESS.EXE """ & strDBPath & """", vbNormalFocus End Function

Fonksiyonu şu şekilde çağırabilirsiniz:

Private Sub OpenAccessDatabase_Example() Çağrı OpenAccessDatabase("C:\temp\Database1.accdb") End Sub

Access Veritabanına Bağlan

Alternatif olarak, yeni bir Access örneği oluşturacak, bir veritabanı açacak ve veritabanını bir değişkene atayacak bu kodu kullanabilirsiniz. db:

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

veya bir değişkene bir veritabanı açmak için yukarıdaki kodu içeren bu işlevi kullanın:

Genel İşlev 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) Connect_TodbAccess Kümesi Bitiş İşlevi

İşlevi çağırabilir ve aşağıdaki gibi bir prosedür kullanarak veritabanıyla etkileşime girebilirsiniz:

Private Sub Connect_To_AccessDB_Example() AccessDB'yi DAO.Database Olarak Dim Dim 'Bir değişkene bir veritabanı atama örneği Set AccessDB = Connect_To_AccessDB("c:\temp\TestDB.accdb") AccessDB.Execute ("tbl_test3 tablosunu oluştur (sayı numarası,ad karakter , soyad char)") 'Harici bir AccessDB kapatma örneği atama örneği.Close Set AccessDB = Nothing 'Harici bir veritabanı dosyasını silme örneği (.accdb) 'Kill ("c:\temp\TestDB.accdb") 'Örnek Access 'DoCmd.Quit End Sub'ı kapatmak için

Veritabanı Girişine Erişim

Bu VBA işlevi, girilen Kullanıcı Adı ve Parolayı tblUsers tablosuna göre kontrol ederek oturum açmayı kullanır. Bu işlevin çalışması için, Parola ve Kullanıcı Adı alanlarıyla bir tblUsers tablosu oluşturmanız gerekir.

Public Function UserLogin(Dize Olarak KullanıcıAdı, Dize Olarak Parola) 'Kullanıcının mevcut veritabanının tblUsers tablosunda olup olmadığını kontrol edin. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True If Nz(KullanıcıAdı, "") = "" Sonra MsgBox "Kullanıcı Adını Girmelisiniz.", vbInformation Exit Function ElseIf Nz(Parola, "") = "" Sonra MsgBox " Şifre.", vbInformation Exit Function If CheckInCurrentDatabase = True ise Son O zaman 'Kullanıcı kimlik bilgilerini doğrula If Nz(DCount("UserName", "tblUsers", "[UserName] = '" & Nz(UserName, "") & "'" ), 0) = 0 Sonra MsgBox "Geçersiz Kullanıcı Adı!", vbExclamation Exit Function ElseIf Nz(Parola, "") Nz(DLookup("Parola", "tblUsers", "[KullanıcıAdı] = '" & Nz(KullanıcıAdı, " ") & "'"), "") Sonra MsgBox "Geçersiz Parola!", vbExclamation Exit Function ElseIf DCount("KullanıcıAdı", "tblUsers", "[KullanıcıAdı] = '" & Nz(KullanıcıAdı, "") & " '") > 0 Sonra Dim strPW As String strPW = Nz(DLookup("Password", "tblUsers", "[UserName] = '" & Nz(UserName, "") & "'"), "") If Nz (Password, "") = strPW Ardından 'Kullanıcı Adını ve Parolayı Global Veriables TempVars olarak ayarlayın. "CurrentUserName", Nz(UserName, "") TempVars.Add "Cur" rentUserPassword", Nz(Password, "") MsgBox "Giriş başarıyla yapıldı", vbExclamation End If End If Else 'Kullanıcı Adını ve Parolayı Global Veriables Olarak Ayarla TempVars.Add "CurrentUserName", Nz(UserName, "") TempVars.Add "CurrentUserPassword" ", Nz(Parola, "") MsgBox "Başarıyla oturum açıldı", vbExclamation End If End Function

Fonksiyonu şu şekilde çağırabilirsiniz:

Private Sub UserLogin_Example() Çağrı VBA_Access_General.UserLogin("Kullanıcı adı", "parola") End Sub

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave