Truy cập Cơ sở dữ liệu VBA - Mở, Kết nối, Đăng nhập và hơn thế nữa

Hướng dẫn này sẽ trình bày cách sử dụng VBA để mở Cơ sở dữ liệu Access. Nó cũng sẽ trình bày cách tạo thông tin đăng nhập để truy cập cơ sở dữ liệu - kiểm tra xem tên người dùng và mật khẩu có tồn tại trên bảng tblUsers của cơ sở dữ liệu hay không.

Mở Cơ sở dữ liệu Truy cập

Hàm VBA này sẽ mở Cơ sở dữ liệu Access:

Hàm công khai OpenAccessDatabase (strDBPath dưới dạng chuỗi) Nếu không phải là không (strDBPath) thì Shell "MSACCESS.EXE" "" & strDBPath & "" "", vbNormalFocus Kết thúc Hàm

Bạn có thể gọi hàm như sau:

Private Sub OpenAccessDatabase_Example () Gọi OpenAccessDatabase ("C: \ temp \ Database1.accdb") End Sub

Kết nối với Cơ sở dữ liệu Access

Ngoài ra, bạn có thể sử dụng mã này sẽ tạo một phiên bản Access mới, mở cơ sở dữ liệu và gán cơ sở dữ liệu cho một biến db:

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

hoặc sử dụng hàm này, chứa đoạn mã trên để mở cơ sở dữ liệu cho một biến:

Public Function 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) Đặt Connect_To_Access Kết thúc chức năng

Bạn có thể gọi hàm và tương tác với cơ sở dữ liệu bằng quy trình như sau:

Private Sub Connect_To_AccessDB_Example () Dim AccessDB As DAO.Database 'Ví dụ để gán cơ sở dữ liệu cho một biến Đặt AccessDB = Connect_To_AccessDB ("c: \ temp \ TestDB.accdb") AccessDB.Execute ("tạo bảng tbl_test3 (num number, firstname char , lastname char) ") ​​'Ví dụ để gán đóng một cơ sở dữ liệu bên ngoài AccessDB.Close Set AccessDB = Nothing' Ví dụ để xóa một tệp cơ sở dữ liệu bên ngoài (.accdb) 'Kill (" c: \ temp \ TestDB.accdb ")' Ví dụ để đóng Access 'DoCmd.Quit End Sub

Truy cập Đăng nhập Cơ sở dữ liệu

Hàm VBA này sử dụng đăng nhập bằng cách kiểm tra Tên người dùng và Mật khẩu đã nhập đối với bảng tblUsers. Để chức năng này hoạt động, bạn sẽ cần tạo một bảng tblUsers với các trường Mật khẩu và Tên người dùng.

Chức năng công khai UserLogin (UserName As String, Password As String) 'Kiểm tra Nếu người dùng tồn tại trong bảng tblUsers của cơ sở dữ liệu hiện tại. Dim CheckInCurrentDatabase As Boolean CheckInCurrentDatabase = True If Nz (UserName, "") = "" Thì MsgBox "Bạn phải nhập Tên người dùng.", VbInformation Exit Function ElseIf Nz (Password, "") = "" Sau đó MsgBox "Bạn phải nhập Password. ", VbInformation Exit Function End If If CheckInCurrentDatabase = True Sau đó 'Xác minh thông tin đăng nhập của người dùng Nếu Nz (DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '" ), 0) = 0 Sau đó MsgBox "Tên người dùng không hợp lệ!", VbExclamation Exit Function ElseIf Nz (Password, "") Nz (DLookup ("Password", "tblUsers", "[UserName] = '" & Nz (UserName, " ") &" '")," ") Sau đó MsgBox" Mật khẩu không hợp lệ! ", VbExclamation Exit Function ElseIf DCount (" UserName "," tblUsers "," [UserName] =' "& Nz (UserName," ") &" '")> 0 Sau đó Dim strPW dưới dạng chuỗi strPW = Nz (DLookup (" Mật khẩu "," tblUsers "," [Tên người dùng] =' "& Nz (Tên người dùng," ") &" '")," ") Nếu Nz (Mật khẩu, "") = strPW Sau đó 'Đặt Tên người dùng và Mật khẩu làm Xác minh toàn cầu TempVars.Add "CurrentUserName", Nz (Tên người dùng, "") TempVars.Add "Cur RentUserPassword ", Nz (Mật khẩu," ") MsgBox" Đã đăng nhập thành công ", vbExclamation End If End If Else 'Đặt tên người dùng và mật khẩu làm xác minh toàn cầu TempVars. Thêm" CurrentUserName ", Nz (Tên người dùng," ") TempVars.Add" CurrentUserPassword ", Nz (Mật khẩu," ") MsgBox" Đã đăng nhập thành công ", vbExclamation End If End Function

Bạn có thể gọi hàm như sau:

Private Sub UserLogin_Example () Gọi VBA_Access_General.UserLogin ("Username", "password") End Sub

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave