Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 13


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!

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

Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 13

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

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 19/01/2024