Bài giảng Microsoft visual basic - Bài 2: Các đối tượng trong Adodb

Đoạn lệnh viết trong Module

Public cnn As New ADODB.Connection

Public duong_dan As String, strProvider As String

Sub Mo_CSDL()

duong_dan = App.Path & "\CSDL.MDB"

strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & duong_dan

If cnn.State = 1 Then cnn.Close

cnn.CursorLocation = adUseClient

cnn.Open strProvider

End Sub

Đoạn lệnh viết trong thư tục Form_Load của Form khởi động

Private Sub Form_Load()

Call Mo_CSDL

End Sub

 

pdf 16 trang kimcuc 8940
Bạn đang xem tài liệu "Bài giảng Microsoft visual basic - Bài 2: Các đối tượng trong Adodb", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Microsoft visual basic - Bài 2: Các đối tượng trong Adodb

Bài giảng Microsoft visual basic - Bài 2: Các đối tượng trong Adodb
MICROSOFT VISUAL BASIC 
I, Đối tượng Connection 
 1, Kết nối cơ sở dữ liệu 
 2, Thực hiện các câu lệnh SQL 
II, Đối tượng RecordSet 
 1, Tạo nguồn dữ liệu cho ứng dụng 
 2, Các thuộc tính của RecordSet 
 3, Các hành động của RecordSet 
III, Đối tượng Command 
Bài 2 : Các Đối Tượng Trong ADODB 
Menu Tiếp 
1, Kết nối cơ sở dữ liệu 
Public cnn As New ADODB.Connection 
Public duong_dan As String, strProvider As String 
Sub Mo_CSDL() 
 duong_dan = App.Path & "\CSDL.MDB" 
 strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & duong_dan 
 If cnn.State = 1 Then cnn.Close 
 cnn.CursorLocation = adUseClient 
 cnn.Open strProvider 
End Sub 
Đoạn lệnh viết trong Module 
Đoạn lệnh viết trong thư tục Form_Load của Form khởi động 
Private Sub Form_Load() 
 Call Mo_CSDL 
End Sub 
Menu Về 
1, Kết nối cơ sở dữ liệu 
• ADODB cung cấp đối tượng Connection để kết nối với CSDL. 
Với Connection, người dùng có thể kết nối với nhiều loại CSDL khác nhau như 
Access, SQL Server, Oracle hay Excel, Mail 
• Các thông tin về CSDL muốn kết nối tới cần phải cung cấp cho đối tượng 
Connection thông qua thuộc tính ConnectionString. 
ConnectionString bao gồm 2 thông tin chính là Provider và Nguồn dữ liệu, có thể 
cần cung cấp thêm là Username và Password với CSDL có bảo mật. 
• Thuộc tính CursorLocation giúp chỉ định cách data provider cung cấp các chức 
năng thao tác với CSDL với hai giá trị adUseServer và adUseClient. 
• Sau khi đã gán giá trị cho ConnectionString, sử dụng hành động Open để mở 
kết nối. 
• Thuộc tính State giúp kiểm tra trạng thái của kết nối. 
• adStateOpen [1] : kết nối đang mở 
• adStateClosed [0] : kết nối đang đóng 
Menu 
Sau khi đã kết nối với CSDL, người dùng có thể làm việc ngay với dữ liệu 
thông qua các câu truy vấn. Hành động Execcute của đối tượng Connection 
giúp thực hiện một câu lệnh SQL 
2, Thực hiện các câu truy vấn SQL 
VD 1 : Thêm mới môn Ngoại Ngữ 1 vào bảng Monhoc 
sql = "INSERT INTO MonHoc(MaMH,TenMH) VALUES('NN01','Ngoai Ngu 1')" 
cnn.Execute sql 
VD 2 : Sửa tên môn Toán Thực Hành thành môn Toán 2 
sql = "UPDATE MonHoc SET TenMH='Toan 2' WHERE MaMH = 'T02'" 
cnn.Execute sql 
VD 3 : Xoá môn học Ngoại Ngữ 1 vừa nhập khỏi CSDL 
sql = "DELETE FROM MonHoc WHERE MaMH = 'NN01'" 
cnn.Execute sql 
Menu Tiếp 
• RecordSet đáp ứng các yêu cầu của người lập trình như hiển thị dữ liệu, 
thêm, xoá, sửa dữ liệu, làm việc trên từng dòng dữ liệu thay vì một tập hợp 
nhiều mẩu tin, Có thể coi RecordSet như đại diện của một bảng hay một view 
trong CSDL. 
• Người dùng có thể mở RecordSet để lấy dữ liệu từ một bảng hay nhiều bảng 
trong CSDL bằng một câu truy vấn SQL hay đơn giản bằng cách chỉ ra tên bảng. 
• Việc mở RecordSet được thực hiện qua hành động Open. 
• Khai báo RecordSet như sau : 
Dim As New ADODB.RecordSet 
1, Tạo nguồn dữ liệu cho ứng dụng 
Menu Về Tiếp 
.Open [Source], [ActiveConnection], [CursorType], [LockType] 
Cú pháp : 
Mô tả : 
• Source : Nội dung cần truy xuất 
• ActiveConnection : Nội dung khai báo ConnectionString hoặc tên Connection 
đang được mở 
• CursorType : Phân loại recordset. Có các giá trị sau : 
 + adOpenStatic [3] : mẩu tin tạo tại máy con. Không tự động cập nhật 
 + adOpenDynamic [2] : mẩu tin tạo trên máy chủ. Tự động cập nhật. 
 + adOpenKeySet [1] : không tự động cập nhật các mẩu tin 
 + adOpenForewardOnle [0] : Chỉ di chuyển bằng MoveNext 
Menu Về 
• CursorType : Xác định cách khoá dữ liệu khi cập nhật. Có các giá trị sau : 
+ adLockReadOnly : [1] chỉ cho phép đọc (luôn luôn khoá) 
+ adLockOptimistic : [2] chỉ khoá khi cập nhật mẩu tin 
+ adLockBatchOptimistic : [3] giống [2] nhưng cho phép cập nhật đồng thời 
nhiều mẩu tin. 
+ adLockPessimistic : [4] mẩu tin sẽ khoá ngay khi thực hiện Update hay 
AddNew. chỉ dùng khi CursorLocation là adUseServer 
Dim rsSinhVien As New ADODB.Recordset 
Sub Lay_Nguon_SinhVien() 
 sql = "SINHVIEN" 
 If rsSinhVien.State = 1 Then rsSinhVien.Close 
 rsSinhVien.Open sql, cnn, 3, 3 
End Sub 
Ví dụ : Mở recordset với nguồn dữ liệu là bảng sinh viên. 
Menu 
2, Các thuộc tính của RecordSet 
RecordCount : tổng số mẩu tin trong RecordSet 
AbsolutePosition : vị trí mẩu tin hiện hành 
BOF, EOF : vị trí đầu và cuối trong cấu trúc RecordSet 
BOF Record 1 Record 2  Record n -1 Record n EOF 
Menu Tiếp 
3, Các hành động của RecordSet 
a, Hiển thị dữ liệu : 
• RecordSet được dùng làm nguồn dữ liệu (data source) cung cấp dữ liệu cho 
các control khác để hiển thị thông tin trong chương trình. 
• Các control liên kết dữ liệu với RecordSet thông qua hai thuộc tính DataSource 
và DataField. 
Dim rsSinhVien As New ADODB.Recordset 
Sub Lay_Nguon_SinhVien() 
 sql = "SINHVIEN" 
 If rsSinhVien.State = 1 Then rsSinhVien.Close 
 rsSinhVien.Open sql, cnn, 3, 3 
 Set txtMaSV.DataSource = rsSinhVien 
 txtMaSV.DataField = "MaSV" 
 Set txtHoTenSV.DataSource = rsSinhVien 
 txtHoTenSV.DataField = "HoTen" 
End Sub 
Ví dụ : Lấy nguồn sinh viên và hiển thị lên TextBox 
Menu Về Tiếp 
3, Các hành động của RecordSet 
b, Di chuyển qua lại giữa các bản ghi : 
Sử dụng hành động Move 
 MoveFirst : di chuyển về bản ghi đầu tiên 
 Move Previous : di chuyển về bản ghi phía trước 
 MoveNext : di chuyển đến bản ghi kế tiếp 
 MoveLast : di chuyển tới bản ghi cuối cùng 
Menu Về Tiếp 
3, Các hành động của RecordSet 
Dim rsSinhVien As New ADODB.Recordset 
Private Sub cmdDau_Click() 
 rsSinhVien.MoveFirst 
End Sub 
Private Sub cmdTruoc_Click() 
 If rsSinhVien.AbsolutePosition > 1 Then 
 rsSinhVien.MovePrevious 
 End If 
End Sub 
Private Sub cmdSau_Click() 
 If rsSinhVien.AbsolutePosition < rsSinhVien.RecordCount Then 
 rsSinhVien.MoveNext 
 End If 
End Sub 
Private Sub cmdCuoi_Click() 
 rsSinhVien.MoveLast 
End Sub 
Menu Về Tiếp 
3, Các hành động của RecordSet 
c, Cập nhật dữ liệu : 
 AddNew : dùng để thêm mới 1 bản ghi 
 Update / UpdateBatch : chấp nhận cập nhật sự thay đổi 
 CancelUpdate / CancelBatch : bỏ qua sự thay đổi 
 Delete : Xoá bỏ bản ghi 
Menu Về Tiếp 
Dim rsSinhVien As New ADODB.Recordset 
Private Sub cmdThemMoi_Click() 
 rsSinhVien.AddNew 
End Sub 
Private Sub cmdSuaDoi_Click() 
 rsSinhVien.Update 
End Sub 
Private Sub cmdXoaBo_Click() 
 rsSinhVien.Delete 
End Sub 
3, Các hành động của RecordSet 
Menu Về 
d, Lọc, tìm kiếm và sắp xếp mẩu tin 
• Trong những trường hợp chỉ muốn làm việc hay hiển thị trong chương trình 
một số mẩu tin thoả điều kiện nào đó, người dùng có thể thuộc tính Filter để 
lọc ra những mẩu tin muốn làm việc. 
Ví dụ: 
 rsSinhVien.Filter = “MaKhoa = „TH01‟ And DiemTB >= 5” 
• Để tìm ra một mẩu tin thoả điều kiện, RecordSet cung cấp sẵn hành động 
Find. Điểm giới hạn của ADODB là hành động Find của RecordSet chỉ có thể 
tìm trên một điều kiện đơn (không có mệnh đề AND, OR,) 
Ví dụ: 
 rsSinhVien.Find “MaKhoa = „TH01‟”, 0, adSearchForward,1 
• Thay vì phải sắp xếp các mẩu tin lại thời điểm mở RecordSet trong câu truy 
vấn, RecordSet cung cấp thuộc tính Sort cho phép người dùng thay đổi cách 
sắp xếp các mẩu tin tuỳ ý. 
Ví dụ: 
 rsSinhVien.Sort “MaKhoa, DiemTB Desc, MaSV” 
Menu Tiếp 
Command cho phép thi hành : 
A, Các câu SQL tĩnh, ví dụ: 
Dim rsSinhVien As ADODB.Recordset, Cmd As ADODB.Command 
Set Cmd = New ADODB.Command 
Set Cmd.ActiveConnection = CN 
Cmd.CommandText = "Select * From SinhVien Where DiemTB>=5" 
Cmd.CommandType = adCmdText 
set rsSinhVien=cmd.Execute 
B, Các câu SQL có tham số, ví dụ: 
Dim rsSinhVien As ADODB.Recordset, Cmd As ADODB.Command 
Set Cmd = New ADODB.Command 
Set Cmd.ActiveConnection = CN 
Cmd.CommandText = "Select * From SinhVien Where DiemTB>=? And MaKhoa=?" 
Cmd.CommandType = adCmdText 
Set rsSinhVien = Cmd.Execute(, Array(5, "TH01")) 
III, Đối tượng Command 
Menu Về 
III, Đối tượng Command 
C, Các stored procedure (query trong Access) 
Dim rsSinhVien As ADODB.Recordset, Cmd As ADODB.Command 
Set Cmd = New ADODB.Command 
Set Cmd.ActiveConnection = CN 
Cmd.CommandText = "Q_DS_SV_TotNghiep" 
Cmd.CommandType = adCmdStoredProc 
set rsSinhVien=cmd.Execute 
Chú ý : 
Với các query (stored procedure) có tham số, có thể dùng tập hợp 
Parameters hay hành động CreateParameter để truyền tham số cho query 
trước khi thực hiện cũng như nhận các giá trị trả về. 

File đính kèm:

  • pdfbai_giang_microsoft_visual_basic_bai_2_cac_doi_tuong_trong_a.pdf