<< 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.

Bài 4-2

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:

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Giáo trình visual basic. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10777/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?

Ask