Access thông qua côngnghệ ADO ActiveX Data Object Mục đích Trong bài thực hành này, bạn sẽ làm quen với cách xây dựng một ứng dụng VB tương tác với CSDL Access thông qua sử dụng công ngh
Trang 1Bài 3 Kết nối VB với Ms Access thông qua công
nghệ ADO (ActiveX Data Object)
Mục đích
Trong bài thực hành này, bạn sẽ làm quen với cách xây dựng một ứng dụng VB tương
tác với CSDL Access thông qua sử dụng công nghệ ADO.
Yêu cầu
Đã nắm được các khái niệm cơ bản về xây dựng ứng dụng bằng VB
Sử dụng được hệ quản trị CSDL Access
Vấn đề liên quan
Thiết kế CSDL bằng Access
Kết nối CSDL Access thông qua ADO
Thời gian để hoàn tất bài thực hành: 90 phút
Trang 2Bài tập 3.1 Thiết kế giao diện
Mục đích: Học cách thiết kế form theo mẫu
1 Thiết kế form theo mẫu dưới đây
2 Đặt thuộc tính Name cho các đối tượng trên Form như trong hình trên
3 Đặt thuộc tính PasswordChar của đối tượng txtPassword là *
Bài 3.
txtUsername txtPassword
cmdTiep cmdDung
g
Trang 3Mục đích: Xây dựng CSDL
1 Mở ứng dựng Microsoft Access
2 Thiết kế CSDL, đặt tên là QUANLYNGUOIDUNG.MDB, có cấu trúc gồm 1 bảng
NGUOIDUNG như sau:
NGUOIDUNG
3 Điền một số record thông tin vào bảng dữ liệu này
Trang 4Bài tập 3.3 Kết nối Visual Basic với Access
Mục đích: Thực hiện các bước làm việc để kết nối Access với VB
Ghi nhớ:
Các bước làm việc với CSDL
1 Chọn công nghệ sử dụng (DAO, ADO…)
2 Mở kết nối với CSDL
3 Chuẩn bị câu lệnh SQL
4 Mở RecordSet tương ứng với câu lệnh SQL trên (hay nói cách khác, RecordSet sẽ chứa kết quả trả về khi thực thi câu lệnh SQL)
5 Di chuyển con trỏ của RecordSet về vị trí đầu tiên
6 Duyệt qua từng giá trị của RecordSet, xử lý dữ liệu theo yêu cầu
7 Đóng kết nối với CSDL
4 Vào mục Project -> References -> Chọn và đánh dấu vào mục Microsoft ActiveX Data Objects 2.6 Library.
Lưu ý: không chọn nhầm mục Microsoft ActiveX Data Objects 2.5 (hoặc 2.1…)
Trang 55 Viết hàm xử lý sự kiện click cho nút Tiếp
(Bấm đúp (double click) vào nút Tiếp trên form, VB sẽ tự động thêm hàm xử lý sự kiện)
Private Sub cmdTiep_Click()
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim strSQL As String
Dim bHople As Boolean
‘Khoi tao moi mot doi tuong Connection
Set Cn = new ADODB.Connection
Cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source = QuanlyNguoiDung.mdb”
Cn.Open
‘Thuc thi cau lenh SQL de lay tat ca Ten va Matkhau co trong CSDL
strSQL = "Select TEN, MATKHAU from NGUOIDUNG"
Set Rs = new ADODB.Recordset
Rs.Open strSQL, Cn, adOpenStatic, adLockOptimistic
‘Kiem tra xem du lieu doc ra co hop le khong
If (Rs.BOF = True ) Then
MsgBox "Khong doc duoc thong tin nguoi dung trong co so du lieu" Rs.Close
Cn.Close
Exit Sub
End If
Rs.MoveFirst
bHople = False
‘Lan luot Tim kiem xem username va password co ton tai trong CSDL khong
Do While (( Not Rs.EOF) And ( Not bHople = True ))
If (Rs![TEN] = txtUsername.Text And Rs![MATKHAU] = txtPassword.Text)
Then
bHople = True
Else
Rs.MoveNext
End If
Loop
‘Dong ket noi voi CSDL
Rs.Close
Cn.Close
If (bHople = True ) Then
MsgBox "Chuc mung ban da su dung chuong trinh"
Unload Me
Else
Trang 6End Sub
6 Viết hàm xử lý sự kiện click cho nút Dừng
(Bấm đúp (double click) vào nút Dừng trên form, VB sẽ tự động thêm hàm xử lý sự
kiện)
Private Sub cmdDung_Click() Unload Me
End Sub
Trang 7Bài tập 3.4 Chạy và kiểm lỗi chương trình
Mục đích: Sử dụng công cụ debug của VB
1. Để con trỏ ngay dòng đầu tiên của hàm cmdTiep_Click() bấm F9 (hoặc chọn menu
Debug->Toggle Breakpoint)
2. Bấm F5 để bắt đầu chạy và kiểm lỗi chuơng trình
3. Nhập giá trị cho các Text Box như sau:
Tên người dùng AAA
4. Ta thấy, VB tự động nhảy vào hàm cmdTiep_Click và dừng ngay dòng mà chúng ta đã đặt Breakpoint
5. Kiểm tra giá trị các biến sau, (chọn menu Debug->Add watch và nhập vào tên biến cần kiểm
tra giá trị )
Cn Quan sát và kiểm tra tất cả các thuộc tính của Cn, đặc biệt
là thuộc tính Cn.ConnectionString
strSQL Rs![TEN]
Rs![MATKHAU]
txtUsername.Text txtPassword.Text
Chú ý tìm xem, giá trị của biến cn ở dòng cuối cùng của hàm này có gì khác so với
ở đầu hàm
Trang 86. Bảo đảm rằng ứng dụng hiển thị ra màn hình câu thông báo “Username hay Password khong hop le”
7. Chạy lại chương trình, nhập giá trị cho các Text Box như sau:
Tên người dùng 1
8. Lần lượt kiểm tra giá trị các biến như trên
Bảo đảm rằng ứng dụng hiển thị ra màn hình câu thông báo “Chuc mung ban da su dung chuong trinh”
Trang 9Bài tập Nâng cao Kết nối CSDL có 2 bảng
Mục đích: Sử dụng kết nối với CSDL Access có nhiều bảng
1 Viết ứng dụng với màn hình giao diện như sau:
2 Thiết kế CSDL, đặt tên là QUANLYNGUOIDUNG.MDB, có cấu trúc gồm 2 bảng
NGUOIDUNG và LOAINGUOIDUNG như sau:
NGUOIDUNG
3 IDLoainguoidung Text(7)
LOAINGUOIDUNG
1 IDLoainguoidung Text (7) Primary Key
2 TenLoainguoidung Text (20) Required
3 Điền một số record thông tin vào 2 bảng dữ liệu này
NGUOIDUNG
gID
Trang 10LOAINGUOIDUNG IDLoainguoidung TenLoainguoidung
Loai1 Quản trị viên Loai2 Nhập liệu viên Loai3 Người dùng thường
4 Lần lượt làm các công việc sau: Viết hàm xử lý sự kiện cho các button:
Nút Kiểm tra có công dụng kết nối với CSDL QuanlyNguoidung.mdb và kiểm tra
username và password hợp lệ (giống như bài tập cơ bản)
Chú ý: Lúc này, kiểm tra hợp lệ bao gồm luôn cả kiểm tra xem có đúng loại người dùng hay không
Nút Thoát có tác dụng đóng chương trình lại
Nút Xoá có tác dụng xoá trắng nội dung của các TextBox