<< Chapter < Page | Chapter >> Page > |
Item 1: TextBox
Name: Text1
Multiline: True
ScrollBars = 3
Item 2: DBGrid
Name: DBGrid1
DataSource = Data1
Ta được hình dạng của form1 như sau:
Hình IV.9: Giao diện đầy đủ
Sau đó, thêm đoạn mã sau trong thủ tục xử lý sự kiện mnuOpen_Click:
CommonDialog1.FileName = "*.mdb"
CommonDialog1.Filter = "Access DBs (*.mdb)|*.mdb"
CommonDialog1.ShowOpen
Data1.DatabaseName = CommonDialog1.FileName
Bước 4: Thêm một nút nhấn (Button) như hình trên, Caption là Run query. Nút này có mục đích là thực thi câu lệnh SQL mà người dùng nhập vào ô Text1. Để thực thi được lệnh SQL này, ta phải gán thuộc tính Recordsource của Data Control Data1 như trong thủ tục xử lý sự kiện Command1_Click:
Private Sub Command1_Click()
Data1.RecordSource = Text1.Text
Data1.Refresh
End Sub
Bước 5: Trong hàm xử lý sự kiện mnuExit_Click thêm dòng mã sau:
End
Chạy chương trình, trong mục File\Open của menu chọn tập tin C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb. Sau đó ta gõ câu lệnh SQL sau vào Text Box:
Select * from Publishers
Nhấp chuột vào nút nhấn Run query. Quan sát kết quả hiển thị.
Ta đã tạo một chương trình cho phép người sử dụng để mở một CSDL và chạy câu SQL trên CSDL đó. Bây giờ, đối với CSDL được mở ở trên, tìm xem các bảng của nó là gì nhằm mục đích xây dựng các câu truy vấn cho phù hợp.
Bước 6: Thêm đoạn mã sau vào phần khai báo của Form1:
Private db As DAO.Database
Private td As DAO.TableDef
Private qd As DAO.QueryDef
Private fld As DAO.Field
Bước 7: Trong hàm xử lý sự kiện mnuOpen_Click ta cần kiểm tra xem tập tin được chọn có phải là tập tin CSDL của Access hay không (*.mdb)? Sau đó dùng các biến được khai báo ở trên để thao tác Sửa thủ tục mnuOpen_Click như dưới đây:
Private Sub mnuOpen_Click()
CommonDialog1.FileName = "*.mdb"
CommonDialog1.Filter = "Access DBs (*.mdb)|*.mdb"
CommonDialog1.ShowOpen
If UCase(Right(CommonDialog1.FileName, 3))<>"MDB" Then
MsgBox "Khong phai la tap tin cua Microsoft Access"
Else
On Error Resume Next
db.Close
On Error GoTo 0
Screen.MousePointer = vbHourglass
' Mo CSDL
Set db = _
DBEngine.Workspaces(0).OpenDatabase(CommonDialog1.FileName)
Form1.Caption = "Cau SQL: Chon "&CommonDialog1.FileName
Screen.MousePointer = vbDefault
Data1.DatabaseName = CommonDialog1.FileName
End If
End Sub
Bước 8: Ta đã mở được CSDL, bây giờ ta dùng một List Box để hiển thị tất cả các bảng của CSDL được mở ỏ trên.
Thêm một ListBox vào Form tên List1, trong hàm xử lý sự kiện mnuOpen, thêm đoạn mã sau trước lệnh End If:
' Them vao ListBox
List1.Clear
For Each td In db.TableDefs
List1.AddItem td.Name
Next
Chạy chương trình, ListBox sẽ hiển thị tất cả các bảng của CSDL trên.
Bước 9: Thêm một ListBox nữa vào Form, tên List2. Thêm đoạn mã sau trong hàm xử lý sự kiện List1_Click:
Private Sub List1_Click()
' Tim bang duoc chon trong CSDL
Set td = New TableDef
For Each td In db.TableDefs
If td.Name = Me.List1.List(Me.List1.ListIndex) Then
Exit For
End If
Next
' Hien thi cac truong cua bang duoc chon
For Each fld In td.Fields
List2.AddItem fld.Name
Next
End Sub
Bước 10: Chạy chương trình, chọn File\Open để chọn tập tin CSDL, lúc đó List1 sẽ hiển thị các bảng của CSDL. Nhấp chọn một bảng trong List1, List2 sẽ hiển thị tên các trường của bảng đó. Bây giờ ta tiến thêm một bước nữa là hiển thị tất cả các câu truy vấn (SQL) được lưu trong CSDL trên bằng cách:
Notification Switch
Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?