<< Chapter < Page | Chapter >> Page > |
Private Function GoodData() As Boolean
GoodData = True
End Function
Private Sub CmdUpdate_Click()
If Not GoodData Then Exit Sub
With myRS
If AddNewRecord Then
.AddNew
Else
.Edit
End If
.Fields("Title") = txtTitle.Text
.Fields("[Year Published]") = txtYearPublished.Text
.Fields("ISBN") = txtISBN.Text
.Fields("PubID") = txtPublisherID.Text
.Update
End With
SetControls (False)
End Sub
Bước 11: Tiếp theo đây, ta muốn liệt kê các sách có tiêu đề chứa một chữ hay câu nào đó, thí dụ như chữ "Guide". Kế đó người dùng có thể chọn một sách bằng cách chọn tiêu đề sách ấy và nhấp nút Go. Chương trình sẽ locate (tìm ra) record của sách ấy và hiển thị chi tiết của nó.
Bây giờ bạn hãy cho vào Form một textbox tên txtSearch và một Image tên ImgSearch. Kế đó đặt một frame tên fraSearch vào Form. Để lên frame nầy một listbox tên List1 để tựa các sách.
Ta sẽ cho ImgSearch hiển thị hình một ống nhòm nên bạn hãy click vào bên phải property Picture trong Properties Window để chọn Icon BINOCULR.ICO từ folder E:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Misc.
Khi người dùng nhấp vào ImgSearch, chương trình sẽ tự động tìm kiếm các sách có tựa được người dùng đánh vào trong TextBox. Sự kiện ImgSearch được xử lý như sau:
Private Sub ImgSearch_Click()
fraSearch.Visible = True
Dim SrchRS As DAO.Recordset
Dim SQLCommand As String
SQLCommand = "Select * from Titles where Title LIKE '"&"*"&txtSearch&"*"&"' ORDER BY Title"
Set SrchRS = myDB.OpenRecordset(SQLCommand)
If SrchRS.RecordCount>0 Then
List1.Clear
With SrchRS
Do While Not SrchRS.EOF
List1.AddItem .Fields("Title")
.MoveNext
Loop
End With
End If
End Sub
Trong câu SELECT trên ta dùng toán tử LIKE, nội dung của TextBox, có dấu * ở hai bên. Dấu * là chỗ có (hay không có) chữ gì cũng được.
Bước 12: Lưu dự án và chạy chương trình. Kiểm tra kết quả.
Bài tập 4-4
THÍ DỤ VỀ SỬ DỤNG DAO
Bài tập này nhằm mục đích giới thiệu về cách thức sử dụng điều khiển dữ liệu và thư viện DAO trong việc thiết kế một Form nhập liệu hoàn chỉnh cho bảng THangHoa trong CSDL HangHoa.mdb. Giao diện cùng với mã lệnh chỉ mang tính chất gợi ý; sinh viên có thể thực hiện theo ý riêng của mình.
Bước 1: Thiết kế form như sau:
Hình IV.13: Sử dụng Data Control
+
*
Với *: DataControl: Điều khiển dữ liệu
DatabaseName: HangHoa.MDB
RecordSource: THangHoa
Name: datHH
Bước 2: Thiết lập các thuộc tính cho các TextBox&ComboBox.
DataSource: DatHH
DataField:
DataSource: datHH
Chạy chương trình, ta được kết quả như trên.
Bước 4: Sự kiện cmdThem_Click
Private Sub cmdThem_Click()
datHH.Recordset.AddNew
DoiTThai False
End Sub
Trong đó:
Private Sub DoiTThai(ByVal TThai As Boolean)
cmdThem.Enabled = TThai
cmdSua.Enabled = TThai
cmdXoa.Enabled = TThai
cmdHuy.Enabled = Not TThai
cmdLuu.Enabled = Not TThai
End Sub
Bước 4: Sự kiện cmdSua_Click&sự kiện cmdXoa_Click:
Private Sub cmdSua_Click()
datHH.Recordset.Edit
DoiTThai False
End Sub
Private Sub cmdXoa_Click()
On Error GoTo Xuly
datHH.Recordset.Delete
Exit Sub
Xuly:
MsgBox Err.Description, vbCritical + vbSystemModal, "Loi"
End Sub
Private Sub cmdHuy_Click()
'dathh.Database =
datHH.Recordset.CancelUpdate
DoiTThai True
End Sub
Private Sub cmdLuu_Click()
datHH.Recordset.Update
DoiTThai True
End Sub
Bước 6: Sự kiện Form_Load:
Private Sub Form_Load()
DoiTThai True
End Sub
- Có nhận xét gì nếu khi chạy chương trình, ta thêm mới một mẩu tin có khóa là Mahang trùng với một MaHang đã có. Để giái quyết ta làm thế nào?
Sử dụng CSDL HangHoa.mdb, anh (chị) hãy:
Bằng cách sử dụng DAO (tương tự 4-3), anh (chị) hãy:
Notification Switch
Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?