<< 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 size 12{ drarrow } {} 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:

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