Lập trình cơ sở dữ liệu nâng cao 3 tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩ...
Trang 1MICROSOFT VISUAL BASIC
I, Sử dụng DataGrid hiển thị dữ liệu
1, Thiết lập DataGrid trên Form
2, Kết nối DataGrid với nguồn dữ liệu
3, Truy xuất nội dung trên DataGrid
II, Sử dụng DataCombo và DataList
1, Giới thiệu
2, Chương trình ứng dụng
Bài 3 : Sử dụng DataCombo, DataList và DataGrid
Trang 2Menu Tiếp
a, Đưa DataGrid vào ứng dụng :
DataGrid là một điều khiển ActiveX, nên muốn sử dụng chúng ta phải đưa
vào ứng dụng thông qua chức năng Project – Components –
Microsoft DataGrid Control 6.0
Điều khiển này chứa trong tập tin MSDATGRD.OCX
1, Thiết lập DataGrid trên Form
Trang 3Menu Về
1, Thiết lập DataGrid trên Form
b, Thiết kế lại DataGrid
DataGrid khi đưa vào form mặc định chỉ có hai cột, muốn tăng giảm cột ta có
thể làm như sau :
+ nhấn chuột phải trên DataGrid và chọn Edit trên shortcut menu
+ Sau đó, nhấn chuột phải lần thứ hai trên DataGrid
Delete : để xoá cột đang được chọn trên DataGrid
Insert : để chèn thêm một cột vào trước cột đang được chọn trên DataGrid Append : thêm một cột vào vị trí sau cùng trên DataGrid
Có thể định độ rộng của cột bằng chuột khi thấy xuất hiện con trỏ sau
Trang 42, Kết nối DataGrid với nguồn dữ liệu
Ta liên kết DataGrid với Recordset qua thuộc tính Datsource :
Set <tên DataGrid>.DataSource = <Recordset>
Ví dụ : Dùng DataGrid hiển thị nội dung của bảng sinhvienDim rsSinhVien As New ADODB.Recordset
Trang 6Menu Về
3, Truy xuất nội dung trên DataGrid
b, Cách 2:
Sử dụng thuộc tính Text của đối tượng Columns(<số>) trên DataGrid để lấy
nội dung trên dòng hiện hành :
-Ví dụ : Muốn lấy trị cột thứ 3 của dòng hiện hành :
MsgBox DataGrid1.Columns(2).Text
Trang 7a, Các thuộc tính dùng khi muốn cập nhật dữ liệu :
DataSource : chứa recordset nguồnDataField : chứa Field ( trường dữ liệu)
b, Các thuộc tính hiển thị dữ liệu
RowSource : chứa nội dung các mẩu tin ListField : chọn trường hiển thị nội dung BoundColumn : cột nội dung lưu trữ ( không hiển thị) BoundText : nội dung lưu trữ ( không hiển thị)
Trang 8Set DataCombo1.RowSource = rsKhoa DataCombo1.ListField = "TenKhoa"
DataCombo1.BoundColumn = "MaKhoa"End Sub
Private Sub Form_Load() Call Mo_CSDL
Call Nguon_KhoaEnd Sub
2, Chương trình ứng dụng
a, Ví dụ về cách lấy nguồn cho DataCombo (Trên 1 RecordSet)
Trang 9+ Nhưng ở Datacombo Khoa lại phải hiển thị tên khoa Mà trong bảng Sinh viên chỉ có Mã Khoa.Như vậy, ta phải sử dụng 2 recordset trên DataCombo để lấy được dữ liệu ở Sinh Viên và Khoa.
+ Khi di chuyển thì phải chỉ rõ vị trí bản ghi hiện hành trên tổng
số bản ghi
Trang 10Menu Về Tiếp
2, Chương trình ứng dụng
Các bước giải bài tập trên :
1, Viết chương trình kết nối CSDL (trong Module)
2, Khai báo các Recorset sử dụng cho chương trình
3, Viết thủ tục lấy nguồn hiển thị cho DataCombo (bảng Khoa)
4, Viết thủ tục lấy nguồn chính cho chương trình (bảng SinhVien)
5, Viết thủ tục Form_Load() để thiết lập kết nối dữ liệu
6, Viết lệnh cho các nút lệnh di chuyển
7, Viết lệnh hiển thị vị trí hiện hành / tổng bản ghi
Trang 11Ví dụ b
Public cnn As New ADODB.Connection
Public duong_dan As String, strProvider As String
Sub Mo_CSDL()
duong_dan = App.Path & "\CSDL.MDB"
strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & duong_dan
If cnn.State = 1 Then cnn.Close
Trang 12Ví dụ b
2, Khai báo các Recorset sử dụng cho chương trình
Dim rsSinhVien As New ADODB.Recordset
Dim rsKhoa As New ADODB.Recordset
Trang 15Ví dụ b
5, Viết thủ tục Form_Load() để thiết lập kết nối dữ liệu
Private Sub Form_Load()
Call Mo_CSDL
Call LayNguonKhoa
Call LayNguonSinhVien
End Sub
Trang 16Ví dụ b
6, Viết lệnh cho các nút lệnh di chuyển
Private Sub cmdDau_Click()
Private Sub cmdSau_Click()
If rsSinhVien.AbsolutePosition < rsSinhVien.RecordCount Then rsSinhVien.MoveNext
Trang 17Ví dụ b
7, Viết lệnh hiển thị vị trí hiện hành / tổng bản ghi
Private Sub txtMasv_Change()
On Error Resume Next
lblVT = rsSinhVien.AbsolutePosition & "/" & rsSinhVien.RecordCountEnd Sub
Trang 18Menu Về Tiếp
2, Chương trình ứng dụng
c, Ví dụ về cách kết hợp sử dụng DataCombo và DataGrid
Phân tích : Khi chọn khoa ở Datacombo thì ở dưới DataGrid sẽ liệt kê các sinh viên của khoa đó
1, Kết nối cơ sở dữ liệu
2, Lấy nguồn khoa
3, Viết Form_Load()
4, Lấy nguồn SinhVien
5, Thủ tục dcboKHOA_Click()
Trang 19Ví dụ c
Public cnn As New ADODB.Connection
Public duong_dan As String, strProvider As String
Sub Mo_CSDL()
duong_dan = App.Path & "\CSDL.MDB"
strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & duong_dan
If cnn.State = 1 Then cnn.Close
Trang 21Ví dụ c
3, Viết thủ tục Form_Load để kết nối dữ liệu
Private Sub Form_Load()
Call Mo_CSDL
Call LayNguonKhoa
End Sub
Trang 23Ví dụ c
5, Viết thủ tục dcboKhoa_Click để nối DCBO và DG
Private Sub dcboKhoa_Click(Area As Integer)
Trang 25Ví dụ d
Public cnn As New ADODB.Connection
Public duong_dan As String, strProvider As String
Sub Mo_CSDL()
duong_dan = App.Path & "\CSDL.MDB"
strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & duong_dan
If cnn.State = 1 Then cnn.Close
Trang 27Ví dụ d
3, Viết thủ tục Form_Load để kết nối dữ liệu
Private Sub Form_Load()
Call Mo_CSDL
Call LayNguonKhoa
End Sub
Trang 29Ví dụ d
5, Viết thủ tục txtMaKhoa_Change() để nối TextBox và DataGrid
Private Sub txtMakhoa_Change()
On Error Resume Next
Call LayNguonSinhVien
End Sub
Trang 30Private Sub cmdSau_Click()
If rsKHOA.AbsolutePosition < rsKHOA.RecordCount Then rsKHOA.MoveNext