End If End Sub
„---------------------------------------------------------------------------------------
Private Sub cmdfirst_Click()
If datadocgia.Recordset.RecordCount > 0 Then datadocgia.Recordset.MoveFirst
End If End Sub
„---------------------------------------------------------------------------------------Private
Sub cmdlast_Click()
If datadocgia.Recordset.RecordCount > 0 Then datadocgia.Recordset.MoveLast
End If End Sub
„---------------------------------------------------------------------------------------
Private Sub cmdnext_Click()
If datadocgia.Recordset.RecordCount > 0 Then If datadocgia.Recordset.EOF = False Then
datadocgia.Recordset.MoveNext End If
End If End Sub
„---------------------------------------------------------------------------------------
Private Sub cmdpre_Click()
If datadocgia.Recordset.RecordCount > 0 Then If datadocgia.Recordset.BOF = False Then
datadocgia.Recordset.MovePrevious End If
End If End Sub
Bước 5. Tạo form Mượn trả và lập trình sự kiện cho các nút lệnh
Từ menu hệ thống chọn Project/Add Form/Open để bổ sung một form mới vào project hiện hành, sau đó bổ sung vào form các điều khiển và gán cho một số điều khiển các giá trị theo bảng sau:
Điều khiển | Thuộc tính | Giá trị | Ghi chú | |
1 | Form | Name | frmMuontra | |
Caption | Mượn trả |
Có thể bạn quan tâm!
- Nhắc Lại Một Số Khái Niệm Về Cơ Sở Dữ Liệu
- Lập trình Window - 18
- Truy Xuất Dữ Liệu Thông Qua Data Control
- Lập trình Window - 21
- Lập trình Window - 22
- Lập trình Window - 23
Xem toàn bộ 248 trang tài liệu này.
CommandButton | Name | cmdfirst | ||
Caption | Về đầu | |||
3 | CommandButton | Name | cmdpre | |
Caption | Về trước | |||
4 | CommandButton | Name | cmdadd | |
Caption | Thêm | |||
5 | CommandButton | Name | cmdedit | |
Caption | Sửa | |||
6 | CommandButton | Name | cmddel | |
Caption | Xóa | |||
7 | CommandButton | Name | cmdnext | |
Caption | Về sau | |||
8 | CommandButton | Name | cmdlast | |
Caption | Về cuối | |||
9 | CommandButton | Name | cmdfind | |
Caption | Tìm | |||
10 | OptionButton | Name | optMadg | |
Caption | Mã độc giả | |||
11 | OptionButton | Name | optMas | |
Caption | Mã sách | |||
12 | Label | Caption | Mã độc giả | |
13 | Label | Caption | Mã sách | |
14 | Label | Caption | Ngày mượn | |
15 | Label | Caption | Ngày hẹn trả | |
16 | Label | Caption | Ngày trả | |
17 | Frame | Caption | Tìm kiếm theo | |
18 | Data | Databasename | D:Bai tap VB QLTVqltv.mdb | |
Name | DataMuontra | |||
RecordSource | Muontra | |||
Visible | False | |||
19 | TextBox | Name | txtmadg | |
DataSource | DataMuontra | |||
DataField | Madg | |||
20 | TextBox | Name | txtmas |
2
DataSource | DataMuontra | |||
DataField | Mas | |||
21 | TextBox | Name | TxtNgaym | |
DataSource | DataMuontra | |||
DataField | Ngaym | |||
22 | TextBox | Name | txtNgayht | |
DataSource | DataMuontra | |||
DataField | Ngayht | |||
23 | TextBox | Name | txtNgayt | |
DataSource | DataMuontra | |||
DataField | Ngayt |
Sau khi thiết lập giá trị cho các thuộc tính ta thu được form kết quả như sau:
Private Sub cmdAdd_Click()
If cmdadd.Caption = "Thêm" Then datamuontra.Recordset.AddNew cmdadd.Caption = "Lưu" txtmadg.SetFocus
Else datamuontra.UpdateRecord
datamuontra.Recordset.Bookmark = datamuontra.Recordset.LastModified cmdadd.Caption = "Thêm"
End If End Sub
„---------------------------------------------------------------------------------------------
Private Sub cmddel_Click() Dim traloi As Byte
traloi = MsgBox("Ban muon xoa ban ghi nay khong", vbYesNo + vbQuestion, "Xoá dữ liệu")
If traloi = 6 Then
If cmddel.Caption = "Xoá" Then datamuontra.Recordset.Delete cmddel.Caption = "Lưu"
Else
datamuontra.UpdateRecord cmddel.Caption = "Xoá" cmdnext_Click
End If End If
End Sub
„-------------------------------------------------------------------------------------------Private
Sub cmdedit_Click()
If cmdedit.Caption = "Sửa" Then datamuontra.Recordset.Edit cmdedit.Caption = "Lưu" txtmadg.SetFocus
Else
datamuontra.UpdateRecord
datamuontra.Recordset.Bookmark = datamuontra.Recordset.LastModified cmdedit.Caption = "Sửa"
End If End Sub
„-------------------------------------------------------------------------------------------Private
Sub cmdfind_Click()
If optmas.Value = True Then Dim masach As String * 3
masach = InputBox("Nhập mã sách cần tìm") datamuontra.Recordset.FindFirst "mas = '" & masach & "'" If datamuontra.Recordset.NoMatch = True Then
MsgBox "Không tìm thấy", , "Kết quả tìm kiếm" End If
Else
Dim madocgia As String * 3
madocgia = InputBox("Nhập mã độc giả cần tìm")
datamuontra.Recordset.FindFirst "madg = '" & madocgia & "'" If datamuontra.Recordset.NoMatch = True Then
MsgBox "Không tìm thấy", , "Kết quả tìm kiếm" End If
End If End Sub
„-------------------------------------------------------------------------------------------
Private Sub cmdfirst_Click()
If datamuontra.Recordset.RecordCount > 0 Then datamuontra.Recordset.MoveFirst
End If End Sub
„-------------------------------------------------------------------------------------------
Private Sub cmdlast_Click()
If datamuontra.Recordset.RecordCount > 0 Then datamuontra.Recordset.MoveLast
End If End Sub
„-------------------------------------------------------------------------------------------Private
Sub cmdnext_Click()
If datamuontra.Recordset.RecordCount > 0 Then If datamuontra.Recordset.EOF = False Then
datamuontra.Recordset.MoveNext End If
End If End Sub
„-------------------------------------------------------------------------------------------Private
Sub cmdpre_Click()
If datamuontra.Recordset.RecordCount > 0 Then If datamuontra.Recordset.BOF = False Then
datamuontra.Recordset.MovePrevious End If
End If End Sub
5.5. Truy xuất dữ liệu thông qua DAO
Ta có thể dùng DAO ( đối tượng truy vấn cơ sở dữ liệu –Data Access Object)
để thao tác với cơ sở dữ liệu thông qua lập trình với Visual Basic. Với DAO, ta có
thể thi hành các câu truy vấn, cập nhật giá trị trong các bảng cơ sở dữ liệu và tạo cấu trúc cơ sở dữ liệu bao gồm các bảng , các câu truy vấn chứa sẵn và mối quan hệ giữa các bảng.
DAO được các nhà lập trình Visual Basic sử dụng để truy cập các cơ sở dữ liệu trên máy tính cá nhân hay Client / Server. Nhưng với sự ra đời của ADO, giờ đây nó chỉ thích hợp để dùng cơ sở dữ liệu Jet mà thôi. Còn đối với việc phát triển các hệ Client / Server mới, chủ yếu ta tận dụng thế mạnh của ADO.
5.5.1. Tham chiếu đến thư viện đối tượng của DAO
DAO cung cấp nhiều đối tượng cho phép ứng dụng truy cập dữ liệu trên cơ sở dữ liệu. Để dùng các đối tượng được cung cấp bởi DAO, ta thực hiện các thao tác sau:
Từ menu Project, chọn References. Hộp thoại References xuất hiện.
Từ danh sách các thư viện, chọn và tích vào “Microsoft DAO 3.5.1 Object Library”.
Nhấn OK. Giờ đây, ta có thể dùng đối tượng được cung cấp bởi thư viện đối tượng DAO.
QueryDef
Field
Container
TableDef
Field
Recordset | ||
Field | ||
Relation | ||
Field | ||
Mô hình cây phân cấp của đối tượng DAO:
DBEngine
Workspace
Database
Index
Parameter
Document
Group
User
Error
object only
Object and Collection
Field
User
Group
Hình 5.9. Mô hình cây phân cấp của đối tượng DAO
Giả sử cho cơ sở dữ liệu Education.mdb trong đó có bảng Student có cấu trúc như sau:
Tên trường | Kiểu dữ liệu | Độ rộng | Ghi chú | |
1 | ID | Text | 5 | Mã sinh viên (khoá chính-IDindex) |
2 | Name | Text | 30 | Họ tên (Nameindex) |
3 | Age | Byte | 1 | Tuổi |
4 | Sex | Boolean | 1 | Giới tính |
5 | Add | Text | 30 | Địa chỉ |
Yêu cầu: Lập một chương trình, trong đó có form Student cho phép người sử dụng thực hiện các thao tác: duyệt danh sách sinh viên, bổ sung, sửa, xoá, tìm kiểm thông tin về sinh viên được lưu trữ trong bảng Student. Form Student có dạng:
Điều khiển | Thuộc tính | Giá trị | Ghi chú | |
1 | Form | Name | frmStudent | |
Caption | Student | |||
2 | Label | Name | lblID | |
Caption | ID | |||
3 | Label | Name | lblName | |
Caption | Name | |||
4 | Label | Name | lblAge | |
Caption | Age | |||
5 | Label | Name | lblSex | |
Caption | Sex | |||
6 | Label | Name | lblAdd | |
Caption | Add | |||
7 | Textbox | Name | txtID |
Textbox | Name | txtName | ||
9 | Textbox | Name | txtAge | |
10 | Textbox | Name | txtAdd | |
11 | CommandButton | Name | cmdFirst | Chuyển về bản ghi đầu tiên |
Caption | &First | |||
12 | CommandButton | Name | cmdPrevious | Chuyển về bản ghi tiếp theo |
Caption | &Previous | |||
13 | CommandButton | Name | cmdAdd | Bổ sung một bản ghi |
Caption | &Add | |||
14 | CommandButton | Name | cmdEdit | Sửa nội dung bản ghi hiện hành |
Caption | &Edit | |||
15 | CommandButton | Name | cmdDelete | Xoá bản ghi hiện hành |
Caption | &Delete | |||
16 | CommandButton | Name | cmdSearch | Tìm kiếm bản ghi |
Caption | &Search | |||
17 | CommandButton | Name | cmdNext | Chuyển về bản ghi tiếp theo |
Caption | &Next | |||
18 | CommandButton | Name | cmdLast | Chuyển về bản ghi cuối cùng |
Caption | &Last | |||
19 | OptionButton | Name | optMale | |
Caption | Male | |||
20 | OptionButton | Name | optFemale | |
Caption | Female | |||
21 | OptionButton | Name | optID | |
Caption | ID | |||
22 | OptionButton | Name | optName | |
Caption | Name | |||
23 | Frame | Name | fraSearchfor | |
Caption | Search for |
8
5.5.2. Đối tượng Workspace
Đối tượng Workspace cung cấp phương thức OpenDatabase dùng để mở cơ sở dữ liệu. Phương thức này trả về một đối tượng Database. Cú pháp: OpenDatabase(dbName, [options], [readonly],[connect])
Mô tả | |
dbName | Tên cơ sở dữ liệu cần mở (đây là tham số bắt buộc) |
Nếu tham số này là True, cơ sở dữ liệu mở trong chế độ loại trừ; không ai có thể mở cơ sở dữ liệu trong chế độ loại trừ. Nếu giá trị này là False, những người khác có thể mở cơ sở dữ liệu. | |
Readonly | Nếu tham số này là True, ta không thể sửa đổi cơ sở dữ liệu. |
Connect | Là một xâu ký tự chỉ ra cách thức kết nối với cơ sở dữ liệu; chuỗi thường chỉ được dùng cho những nguồn dữ liệu Client / Server và ODBC. |