<< Chapter < Page | Chapter >> Page > |
Bước 11: Trong Sub SetControls dưới đây, ta dùng một tham số gọi là Editing với trị số False hay True tùy theo người dùng đang xem (browse) hay sửa đổi (Edit), ta gọi là Browse mode và Edit mode. Trong Edit mode, các Textboxes được unlocked (mở khóa) và các nút cmdNew, cmdDelete và cmdEdit trở nên vô hiệu lực:
Sub SetControls(ByVal Editing As Boolean)
' Lock/Unlock textboxes
txtTitle.Locked = Not Editing
txtYearPublished.Locked = Not Editing
txtISBN.Locked = Not Editing
txtPublisherID.Locked = Not Editing
' Enable/Disable buttons
CmdUpdate.Enabled = Editing
CmdCancel.Enabled = Editing
CmdDelete.Enabled = Not Editing
cmdNew.Enabled = Not Editing
CmdEdit.Enabled = Not Editing
End Sub
Trong Browse mode, Form có dạng như sau:
Hình IV.7: Kết quả thực thi
Bước 12: Thủ tục SetControls được gọi trong Sub Form_Load khi chương trình khởi động và sự kiện CmdEdit_Click được xử lý như sau:
Private Sub Form_Load()
duongdan = App.Path
If Right(duongdan, 1)<>"\" Then duongdan = duongdan&"\"
Data1.DatabaseName = duongdan&"BIBLIO.MDB"
SetControls (False)
End Sub
Private Sub CmdEdit_Click()
SetControls (True)
End Sub
Bước 13: Khi ta xóa một record trong recordset, vị trí của record hiện tại (current record) vẫn không thay đổi. Do đó, sau khi xóa một record ta phải MoveNext. Tuy nhiên, nếu ta vừa xóa record cuối của Recordset thì sau khi MoveNext, thuộc tính EOF của Recordset sẽ thành True. Thành ra ta phải kiểm tra điều đó, nếu đúng vậy thì lại phải MoveLast để hiển thị record cuối của Recordset như trong đoạn mã của Sub cmdDelete_Click dưới đây:
Private Sub CmdDelete_Click()
On Error GoTo DeleteErr
With Data1.Recordset
' Xoa record
.Delete
' Nhay den record ke
.MoveNext
If .EOF Then .MoveLast
Exit Sub
End With
DeleteErr:
MsgBox Err.Description
Exit Sub
End Sub
Bước 14: Ta có thể Update (cập nhật) một record trong Recordset bằng hàm Update. Nhưng ta chỉ có thể gọi hàm Update của một Recordset khi Recordset đang ở trong Edit hay AddNew mode. Ta đặt một Recordset vào Edit mode bằng cách gọi hàm Edit của Recordset, thí dụ như Data1.Recordset.Edit. Tương tự như vậy, ta đặt một Recordset vào AddNew mode bằng cách gọi hàm AddNew của Recordset, thí dụ như Data1.Recordset.AddNew.
Private Sub cmdNew_Click()
Data1.Recordset.AddNew
SetControls (True)
End Sub
Private Sub cmdUpdate_Click()
Data1.Recordset.Edit
Data1.Recordset.Update
SetControls (False)
End Sub
Bước 15: Lưu dự án và chạy chương trình.
CÁC ĐỐI TƯỢNG CƠ BẢN CỦA DAO
Bước 1: Tạo thư mục Basic\Bt4-2. Tạo giao diện cho chương trình như sau:
Hình IV.8: Giao diện ban đầu
Các tên của thành phần menu lần lượt là: mnuFile, mnuOpen, mnuExit.
Sau đó vào Project\References…, đánh dấu vào Microsoft DAO 3.51 Object Library; chọn OK.
Bước 2: Thêm một Common Dialog vào Form1, tên là dlgDatabase.
Bước 3: Thêm một DBGrid vào form bằng cách chọn: Project\Components…, đánh dấu Microsoft Data Bound Grid Control 5.0 (SP3); rồi chọn DBGrid trên ToolBox. Sau đó thêm một TextBox và một Data Control vào form1. Ta có các tên của điều khiển là: DBGrid1, Text1, Data1 với các thuộc tính như sau:
Notification Switch
Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?