Wend
rec.Close : cn.close: set cn = Nothing
4. Đối tượng Record
Là một bản ghi (row) của đối tượng Recordset.
5. Field
Thể hiện một cột (column) dữ liệu của đối tượng Recordset.
6. Property
Chứa các thuộc tính động của đối tượng ADO được định nghĩa bởi provider
Có thể bạn quan tâm!
- Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 10
- Các Đối Tượng Và Mối Quan Hệ Giữa Chúng Trong Kiến Trúc Ado
- Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 12
- Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 14
Xem toàn bộ 114 trang tài liệu này.
7. Parameter
Chứa các tham số của đối tượng Command. Đó là các tham số cho truy vấn tham số và thủ tục nội
8. Đối tượng Error
Chứa chi tiết về các lỗi truy cập dữ liệu.
9. Đối tượng Stream
Là một dòng (stream) dữ liệu dạng nhị phân.
10. Tập hợp Errors
Chứa tất cả các đối tượng Error được sinh ra khi truy cập với dữ liệu.
11. Tập hợp Fields
Chứa tất cả các đối tượng Field của đối tượng Recordset.
12. Tập hợp Parameters
Chứa tất cả các đối tượng Parameter của đối tượng Command
13. Tập hợp Properties
Chứa tất cả các đối tượng Property của một đối tượng cụ thể.
Ví dụ:
Sau đây chúng tôi sẽ minh họa lại chương trình trong phần kiến trúc DAO theo kiến trúc ADO.
Lưu ý một số khác biệt bao gồm:
+ Câu lệnh SELECT với toán tử LIKE, ADO yêu cầu sử dụng ký tự % để đại diện cho mọi ký tự trong khi DAO sử dụng ký tự *
+
Option Compare Database Dim editingCID As Integer
Dim con As ADODB.Connection
Const cnstr As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Private Sub cmdAddNew_Click()
'Lay cac du lieu nguoi dung nhap tu form 'Dua vao bang Course
'Hien thi ket qua ra ListBox
cmdEdit.SetFocus: cmdEdit.Caption = "Edit": editingCID = -1 Dim cn As String: txtCN.SetFocus: cn = txtCN.Text
Dim Duration As String: txtDuration.SetFocus: Duration = txtDuration.Text
Dim Des As String: txtDes.SetFocus: Des = txtDes.value If (cn = "") Then
MsgBox "The name of the course must be required!" Exit Sub
End If
Dim rec As ADODB.Recordset If (con Is Nothing) Then
Set con = New ADODB.Connection con.Open cnstr
End If
If (IsNull(con)) Then
Set con = New ADODB.Connection con.Open cnstr
End If
If (IsEmpty(con)) Then
Set con = New ADODB.Connection con.Open cnstr
End If
Set rec = New ADODB.Recordset
rec.Open "SELECT * FROM Course", con, adOpenKeyset, adLockOptimistic rec.AddNew
rec.Fields("CName").value = cn
'Kiem tra Duration phai la mot so nguyen nho hon 500 If (Duration <> "") Then
If (IsNumeric(Duration) = False) Then
MsgBox "Duration must be less than or equal 500!" rec.Close: con.Close
Set con = Nothing Exit Sub
End If
Dim pos1, pos2 As Integer pos1 = -1
pos2 = -1
pos1 = InStr(1, Duration, ",", vbTextCompare) pos2 = InStr(1, Duration, ".", vbTextCompare) If (pos1 > 0) Or (pos2 > 0) Then
MsgBox "Duration must be less than or equal 500!" rec.Close: con.Close
Set con = Nothing Exit Sub
End If
Dim num As Integer num = CInt(Duration)
If (num = Null) Or (num > 500) Then
MsgBox "Duration must be less than or equal 500!" rec.Close: con.Close
Set con = Nothing Exit Sub
End If
rec.Fields("DurationInHour").value = num End If
If (Des <> "") Then rec.Fields("Description").value = Des
End If
rec.Update: rec.Close: con.Close Set con = Nothing LoadDataToListBox
End Sub
Private Sub cmdDelete_Click()
'Lay ra cac dong (item) ma nguoi dung chon trong ListBox 'Xoa ban ghi do trong bang Course
'Hien thi lai ket qua trong ListBox
cmdEdit.SetFocus: cmdEdit.Caption = "Edit": editingCID = -1 If (lbCourse.ItemsSelected.count = 0) Then
MsgBox "You must select at least 1 item in the ListBox to delete!" Exit Sub
End If
Dim count As Integer: count = lbCourse.ItemsSelected.count Dim varitem As Variant, i As Integer
Dim sql As String
sql = "SELECT * FROM Course WHERE (CID = " & CStr(lbCourse.Column(0, lbCourse.ItemsSelected.item(0))) & ")"
For i = 1 To lbCourse.ItemsSelected.count - 1
sql = sql & " OR (CID=" & CStr(lbCourse.Column(0, lbCourse.ItemsSelected(i))) & ")"
Next
If (con Is Nothing) Then
Set con = New ADODB.Connection con.Open cnstr
End If
If (IsNull(con)) Then
Set con = New ADODB.Connection con.Open cnstr
End If
If (IsEmpty(con)) Then
Set con = New ADODB.Connection con.Open cnstr
End If
Dim rec As ADODB.Recordset Set rec = New ADODB.Recordset
rec.Open sql, con, adOpenDynamic, adLockOptimistic While (rec.EOF = False)
rec.Delete rec.MoveNext
Wend
rec.Close: con.Close: Set con = Nothing LoadDataToListBox
End Sub
Private Sub cmdEdit_Click()
'Thay lai Text trong Caption cua nut cho phu hop 'kiem tra nguoi dung chi duoc chon 1 item de sua 'tai item do vao cac dieu khien tren form
'nguoi dung sua cac gia tri
'cap nhat lai bang Course cac gia tri moi 'Hien thi ket qua sua item do
Dim cap, cn, Dur, Des As String cn = "": Dur = "": Des = ""
cmdEdit.SetFocus: cap = cmdEdit.Caption cap = Trim(cap): cap = LCase(cap)
If (cap = "edit") Then cap = "Save Edit"
If (lbCourse.ItemsSelected.count = 0) Then
MsgBox "You must select only 1 item in the ListBox to edit!" Exit Sub
End If
Dim count As Integer: count = lbCourse.ItemsSelected.count
If (count > 1) Then
MsgBox "You must select only 1 item in the ListBox to edit!" Exit Sub
End If
editingCID = lbCourse.Column(0, lbCourse.ItemsSelected.item(0))
If (lbCourse.Column(1, lbCourse.ItemsSelected.item(0)) <> "") Then cn = lbCourse.Column(1, lbCourse.ItemsSelected.item(0))
End If
If (lbCourse.Column(2, lbCourse.ItemsSelected.item(0)) <> "") Then Dur = lbCourse.Column(2, lbCourse.ItemsSelected.item(0))
End If
If (lbCourse.Column(3, lbCourse.ItemsSelected.item(0)) <> "") Then Des = lbCourse.Column(3, lbCourse.ItemsSelected.item(0))
End If
txtCN.SetFocus: txtCN.Text = cn txtDuration.SetFocus: txtDuration.Text = Dur txtDes.SetFocus: txtDes.value = Des
Else
cap = "Edit"
txtCN.SetFocus: cn = txtCN.Text txtDuration.SetFocus: Dur = txtDuration.Text txtDes.SetFocus: Des = txtDes.value
If (cn = "") Then
MsgBox "The name of the course must be required!" Exit Sub
End If
Dim sql As String: sql = "SELECT * FROM Course WHERE CID=" & CStr(editingCID)
If (con Is Nothing) Then
Set con = New ADODB.Connection con.Open cnstr
End If
If (IsNull(con)) Then
Set con = New ADODB.Connection con.Open cnstr
End If
If (IsEmpty(con)) Then
Set con = New ADODB.Connection con.Open cnstr
End If
Dim rec As ADODB.Recordset Set rec = New ADODB.Recordset
rec.Open sql, con, adOpenDynamic, adLockOptimistic rec.Fields("CName").value = cn
If (Dur <> "") Then
If (IsNumeric(Dur) = False) Then
MsgBox "Duration must be less than or equal 500!" Exit Sub
End If
Dim pos1, pos2 As Integer pos1 = -1
pos2 = -1
pos1 = InStr(1, Dur, ",", vbTextCompare) pos2 = InStr(1, Dur, ".", vbTextCompare) If (pos1 > 0) Or (pos2 > 0) Then
MsgBox "Duration must be less than or equal 500!" Exit Sub
End If
Dim num As Integer num = CInt(Dur)
If (num = Null) Or (num > 500) Then
MsgBox "Duration must be less than or equal 500!" Exit Sub
End If rec.Fields("DurationInHour").value = num
End If
If (Des <> "") Then rec.Fields("Description").value = Des
End If rec.Update
rec.Close: con.Close: Set con = Nothing End If
cmdEdit.SetFocus cmdEdit.Caption = cap LoadDataToListBox
End Sub
Private Sub cmdRefresh_Click() txtCN.SetFocus: txtCN.Text = "" txtDes.SetFocus: txtDes.value = ""
txtDuration.SetFocus: txtDuration.Text = "" editingCID = -1
cmdEdit.SetFocus cmdEdit.Caption = "Edit"
LoadDataToListBox End Sub
Private Sub cmdSearch_Click()
'Lay cac du lieu nguoi dung nhap tu form 'SELECT du lieu theo dieu kien tim kiem 'Hien thi ket qua ben duoi ListBox
cmdEdit.SetFocus: cmdEdit.Caption = "Edit": editingCID = -1 Dim cn As String: txtCN.SetFocus: cn = txtCN.Text
Dim Duration As String: txtDuration.SetFocus: Duration = txtDuration.Text
Dim Des As String: txtDes.SetFocus: Des = txtDes.value Dim foundCN As Boolean: foundCN = False
Dim foundDur As Boolean: foundDur = False Dim foundDes As Boolean: foundDes = False If (cn <> "") Then
foundCN = True