Lập trình cơ sở dữ liệu với Visual Basic 6.0

Chia sẻ bởi Hoàng Giang | Ngày 29/04/2019 | 68

Chia sẻ tài liệu: Lập trình cơ sở dữ liệu với Visual Basic 6.0 thuộc Bài giảng khác

Nội dung tài liệu:

Trường ĐH Quang Trung
Khoa KT – CN
Lớp K2 - 101
VISUAL BASIC 6.0
Lập Trình Cơ Sở Dữ Liệu

GV: Đỗ Minh Đức
Nhóm 3:
1. Hoàng Thị Giang.
2. Hồ Đức Hòa.
3. Nguyễn Chí Trung.
1
Hiện nay đang tồn tại khá nhiều các kỹ thuật lập trình CSDL, tuy nhiên nhóm chỉ trình bày hai kỹ thuật căn bản là DAO (Data Access Objects) và ADO (ActiveX Data Objects) thông qua các bài toán lập trình CSDL cụ thể như:
- Bài toán cập nhập dữ liệu.
- Các phương pháp trình bày dữ liệu.
- Bài toán tìm kiếm, đặt lọc dữ liệu.
- Bài toán thiết kế in dữ liệu.
2
I. Cơ sở dữ liệu:
1. Cách tạo CSDL:
Có nhiều cách tạo CSDL như:
Tạo CSDL bằng cách sử dụng Data Form Wizard.
Tạo CSDL với MS Access.
Tạo CSDL với SQL.
Tạo CSDL với Visual Foxpro.
……
3
2. CSDL của phần lý thuyết và các ví dụ sẽ được trình bày thông qua hệ CSDL mẫu trên Access như sau:
4
II. Kỹ thuật DAO:
DAO (Data Access Objects - Các đối tượng truy xuất dữ liệu) là tập hợp bao gồm lớp các đối tượng có thể dùng để lập trình truy cập và xử lý dữ liệu trong các hệ CSDL. Ở đây là CSDL Access, ngôn ngữ lập trình VB.
5
Cách thức lập trình trên một hệ CSDL được mô tả tổng quát như sau:
6
Trong đó:
- Tầng ứng dụng: bao gồm những giao diện người sử dụng cũng như những công cụ đơn giản mà người lập trình có thể dùng để xử lý dữ liệu theo các bài toán.
- Tầng Kết nối dữ liệu: bao gồm tập hợp các công cụ, phương thức để kết nối tới những dữ liệu cần làm việc trong CSDL.
- Tầng Cơ sở dữ liệu: bao gồm các bảng, các query trong cơ sở dữ liệu thực tại.
7
1. Lớp đối tượng DAO:
Cấu trúc một CSDL bao gồm nhiều thành phần, đòi hỏi việc lập trình cũng cần có
những thành phần tương ứng
để làm việc. Lớp các thành phần
tương ứng để có thể lập trình
được trên toàn bộ cấu trúc CSDL
là lớp các đối tượng DAO.
Cây phân cấp lớp các đối tượng
DAO sau đây thể hiện điều đó:
8
Trong đó:
• Workspaces - định nghĩa tập hợp các vùng làm việc.
• Databases - định nghĩa tập hợp các CSDL Access cần làm việc trên một dự án.
• RecordSets- định nghĩa các tập hợp bản ghi (Records) cần làm việc.
• QueryDefs - định nghĩa tập hợp các Query để làm việc. Querydefs và Recordsets là khả năng truy xuất, xử lý dữ liệu (Data Manipulation) của DAO.
• TableDefs - định nghĩa tập hợp các bảng (Table) cần làm việc.
• Relations - định nghĩa tập hợp các quan hệ (Relationship) cần làm việc.
9
2. Đối tượng Database:
Database là đối tượng dùng làm việc với một CSDL (trong trường hợp này có thể hiểu một CSDL như một tệp Access .MDB).
Khai báo:
Dim db As DAO.Database
` Gán db cho một CSDL cụ thể
Set db = OpenDatabase(“C:BaitapQuanly.mdb”)
Lệnh đóng khi không làm việc với CSDL nào đó:
db.Close
10
3. Đối tượng RecordSet:
Recordset là đối tượng dùng để miêu tả tập hợp các bản ghi của một bảng, của một query hoặc tập các bản ghi kết quả của việc thi hành một câu lệnh SQL nào đó.
Khai báo:
Set rs=db.OpenRecordset()
Trong đó:
- Set rs = db.OpenRecordset là lệnh để tạo ra tập hợp các bản ghi từ CSDL db gán vào biến kiểu recordset rs.
- là một xâu ký tự chỉ ra nguồn dữ liệu sẽ trả về cho Recordset. Xâu này có thể là tên một bảng, một Query hoặc một câu lệnh SQL.
11
Một số thuộc tính của Recordset:
Thuộc tính Name: Trả về xâu ký tự trong tham số của lệnh gọi Recordset.  
Thuộc tính AbsolutePosition: Cho biết vị trí bản ghi hiện tại (được tính từ 0).
Thuộc tính RecordCount: Cho biết tổng số bản ghi trả về trên Recordset
Thuộc tính EOF: Cho biết con trỏ bản ghi hiện tại có nằm ở EOF hay không? Nếu có giá trị thuộc tính này là True, trái lại là False.
Thuộc tính Fields: Dùng tham chiếu tới các trường (Fields) trên tập hợp các bản ghi mà Recordset trả về. Với Field của Recordset thông thường người ta hay sử dụng thuộc tính Value.
12
Ví dụ: Hiển thị giá trị trường tendouong trong Recordset rs  
Msgbox rs.Fields(“tendouong").Value
hoặc
Msgbox rs.Fields(“tendouong")
13
Một số phương thức của Recordset:
Phương thức Close: Để đóng Recordset, giải phóng bộ nhớ. Chỉ thực hiện hành động này khi không làm việc với Recordset nào đó.
* Các phương thức di chuyển bản ghi của Recorset:
Phương thức MoveFirts: Để chuyển con trỏ về bản ghi đầu tiên.
Phương thức MoveLast: Để di chuyển con trỏ về bản ghi cuối cùng.
Phương thức MoveNext: Dịch đến bản ghi kề sau.
Phương thức Moverevious: Dịch đến bản ghi kề trước.
14
Ví dụ 3: Duyệt và hiển thị toàn bộ Tendouong của bảng Thucdon:
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset(“Thucdon")  
If rs.RecordCount > 0 Then
rs.MoveFirst
While rs.EOF = False
MsgBox rs.Fields(“Tendouong").Value rs.MoveNext
Wend
End If
15
Phương thức AddNew, Update: Để thêm mới một bản ghi vào Recordset. Qui trình thêm một bản ghi mới như sau:
1. Ra lệnh Addnew
2. Gán giá trị cho các trường của bản ghi mới
3. Ra lệnh Update.
Ví dụ: Thêm mới một đồ uống vào bảng Thucdon.
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset(“Thucdon")
rs.AddNew
rs.Fields(“Maloai") = “B"
rs.Fields(“Madouong") = “B10"
rs.Fields(“Tendouong") = “Sting”
rs.Fields(“Giatien") = 8000
rs.Update
16
Phương thức Edit, Update: để sửa dữ liệu một bản ghi nào đó trên recordset. Qui trình để sửa một bản ghi như sau:
1. Định vị tới bản ghi cần sử trên recordset
2. Ra lệnh Edit
3. Gán giá trị mới cho các trường cần sửa
4. Ra lệnh Update.
Ví dụ: Sửa tên đồ uống có mã B10:
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset(“SELECT * FROM Thucdon WHERE Madouong=‘B10’ “)
If rs.RecordCount > 0 Then
rs.MoveFirst
rs.Edit
rs.Fields(“Tendouong") = “Number One"
rs.Update
End If
17
Phương thức Delete: Để xoá bản ghi hiện tại ra khỏi Recordset. Khi đó bản ghi hiện tại sẽ bị xoá bỏ khỏi CSDL.
Ví dụ:
Private Sub cmDelete_Click()
Dim tbao
tbao = MsgBox(“Da chac chan xoa chua?", vbYesNo + vbCritical)
If tbao = vbYes Then
rs.Delete
rs.MoveNext
End If
End Sub
18
4. Đối tượng QueryDef.
Đối tượng Querydef dùng để tham chiếu tới các Query có sẵn (Buil-in) trên CSDL Access, hoặc cũng có thể lập trình tạo các Query từ các câu lệnh SQL.
Cú pháp:
- Tạo một Query mới:
Set qr = db.CreateQueryDef()
- Gán chuỗi lệnh SQL vào thuộc tính SQL của query
qr.SQL = “Câu lệnh SQL”
Trong đó: - Lệnh Set qr = db.CreatQueryDef() để tạo một query mới lên CSDL.
- Lệnh qr.SQL= để gán lệnh SQL cần thực thi vào Query.
19
5. Đối tượng TableDef:
Đối tượng TableDef được dùng để tham chiếu tới các bảng dữ liệu (Table) trên CSDL. Thông qua đối tượng này có thể thiết kế, chỉnh sửa được cấu trúc các bảng dữ liệu trong chế độ Run-time của VB như trên chế độ thiết kế bảng Design View trên Access.

Thuộc tính Name: Cho biết tên bảng được gán vào biến kiểu TableDef.
Thuộc tính RecordCount: Cho biết tổng số bản ghi hiện có trên bảng được gán bởi biến TableDef.
Thuộc tính DateCreated: Cho biết thời gian tạo ra bảng được gán vào biển kiểu TableDef.
20
Một số thuộc tính của Recordset:
Thuộc tính Fields: Để tham chiếu tới các trường của bảng.
Ví dụ: Hiển thị tên của tất cả các trường trong một bảng Thucdon.
Sub LietKeTenTruong(Thucdon As String)
Dim tbl As DAO.TableDef
Set tbl = db.TableDefs(Thucdon)
For i = 0 To tbl.Fields.Count - 1
MsgBox tbl.Fields(i).Name
Next
End Sub
21
Một số phương thức của TableDef:
Phương thức CreateTableDef: Để tạo ra một bảng mới từ VB.
Cú pháp:
Set tbl = db.CreateTableDef()
- Lệnh ghi cấu trúc trên bảng đang khai báo trên CSDL đã chỉ định.
db.TableDefs.Append tbl
Phương thức CreateField: Để tạo ra các trường cho một bảng kiểu TableDef nào đó.
Cú pháp:
tbl.Fields.Append tbl.CreateField(,,<độlớn>
22
6. Đối tượng Relation:
Đối tượng Relation dùng để tạo kết nối (RelationShip) giữa 2 bảng trong CSDL.
Ví dụ: tạo kết nối giữa 2 bảng Thucdon và Loai trong CSDL.
Sub CreatRelationShip()
Dim rls As DAO.Relation
Set rls = db.CreateRelation("TaoQuanHe", “Thucdon", “Loai", dbRelationUpdateCascade)
rls.Fields.Append rls.CreateField(“Maloai") rls.Fields(“Maloai").ForeignName = “Maloai" db.Relations.Append rls
End Sub
23
III. Kỹ thuật ADO:
ADO (ActiveX Data Objects)
là công nghệ mới hơn, khắc
phục được một số các nhược
điểm của DAO và thích nghi
trên nhiều hệ CSDL.
Kiến trúc ADO:
Như vậy, để có thể sử dụng VB
lập trình CSDL sử dụng công
nghệ ADO ta cần qua 2 lớp:
ADO và OLE DB.
- ADO cung cấp tập hợp các đối tượng, công cụ để có thể lập trình xử lý hệ CSDL;
- Trong khi đó, OLE DB là một trình cung cấp các dịch vụ giúp điều khiển các yêu cầu xử lý dữ liệu từ ADO.
24
Đối tượng Connection dùng để kết nối tới nguồn dữ liệu vật lý cần làm việc.
Để thiết lập một Connection cần phải khai báo một biến có kiểu ADODB.Connection;
Các thuộc tính kết nối tới CSDL được thể hiện qua một chuỗi kết nối (thường gọi chuỗi này là Connection String). Trên chuỗi này có chỉ định các thuộc tính như:
+ Provider - tên trình cung cấp dịch vụ truy cập CSDL. Ở đây dùng Microsoft.JET.OLEDB.3.51;
+ Data Source - chỉ định nguồn dữ liệu truy cập. Ở đây chỉ định đường dẫn tới tệp CSDL Access cần làm việc.
Ví dụ: C:ProjectQLTVDataQuanly.mdb
25
1. Đối tượng Connection.
Đối tượng Command trong ADO thường dùng để thực thi một câu lệnh truy vấn SQL nào đó. Ví dụ như: việc xóa, thêm, cập nhật các bản ghi trong CSDL. Cách sử dụng đối tượng này như sau:
- Bước 1: Khai báo một biến đối tượng Command như sau:
Dim cmd As New ADODB.Command
- Bước 2: Thiết lập chuỗi kết nối cho Command này thông qua thuộc tính ActiveConnection. Chuỗi này hệt như chuỗi đã sử dụng để khởi tạo Connection.
cmd.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;”
& "Data Source= " + App.Path + "Quanly.mdb"
Hoặc có thể sử dụng thông qua Connection đã khởi tạo như sau:
cmd.ActiveConnection = cnn.ConnectionString
26
2. Đối tượng Command.
Bước 3: Gán câu lệnh SQL cần thực thi thông qua thuộc tính CommandText của đối tượng Command. Giả sử muốn chèn thêm một bản ghi mới lên bảng NXB có giá trị (Maloai= ‘B`, Madouong=‘B11`, Tendouong=‘‘Pepsi’, Giatien=‘8000’):
cmd.CommandText = "INSERT INTO Thucdon (Maloai, Madouong, Tendouong, Giatien)“ & "VALUES (‘B`, ‘B11`, ‘Pepsi’, ‘8000’)"
Bước 4: Ra lệnh thực thi Command bởi phương thức Excute.
cmd.Execute
Về cơ bản, đối tượng Command trong ADO gần giống với đối tượng QueryDef trong DAO!
27
Đối tượng Recordset trong ADO cũng gần giống như trong DAO, tức là có thể trích lọc dữ liệu từ CSDL. Điểm khác biệt chủ yếu giữa Recorset trong ADO và DAO là: Recordset trong ADO chỉ có khả năng chỉ đọc, không thể cập nhật được dữ liệu. Như vậy những phương thức như Delete, Addnew hay Update là không có trên đối tượng recorset trong ADO.
Bước 1: Khai báo một biến đối tượng RecordSet như sau:
Dim rs As New ADODB.RecorSet
Bước 2: Ra lệnh thực thi câu lệnh lựa chọn SQL và gán tập hợp các bản ghi trả về vào biến Recordset này.
28
3. Đối tượng RecordSet.
Sử dụng Data Form Wizard
Tạo form:
29
Giao diện form:
30
Bài toán cập nhật dữ liệu:
Thiết kế giao diện:
31
Mã lệnh của các nút lệnh:
Private Sub cmdadd_Click(Index As Integer)
Data1.Recordset.AddNew
Text1.SetFocus
End Sub
--------------------------------------------
Private Sub cmdclose_Click(Index As Integer)
Unload Me
End Sub
-------------------------------------------------
Private Sub cmddelete_Click(Index As Integer)
Dim tbao
tbao = MsgBox("da chac chan xoa chua?", vbYesNo)
If tbao = vbYes Then
Data1.Recordset.Delete
End If
End Sub
32
33
Sử dụng DbGrid:
Mã lệnh của các nút lệnh:
Private Sub cmddelete_Click()
Dim tbao
tbao = MsgBox("Da chac chan xoa chua? ", vbYesNo)
If thongbao = vbYes Then
Data1.Recordset.Delete
End If
End Sub
--------------------------------------------------
Private Sub cmdclose_Click()
Unload Me
End Sub
34
Bài toán tìm và lọc dữ liệu:
Thiết kế giao diện:
35
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Hoàng Giang
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)