Khoa công nghệ thông tin
Lương Văn Vân
BÀI GIẢNG
BÀI GIẢNG
VISUAL BASIC 2
VISUAL BASIC 2
Khoa công nghệ thông tin
MỘT SỐ TIÊU ĐIỂM CỦA MÔN HỌC
Tổng số tiết: 90 tiết
Lý thuyết: 30 tiết
Bài tập: 15 tiết
Thực hành: 45 tiết
Sinh viên cần phải được học trước các môn
Visual Basic 1
Hệ quản trị CSDL (Access hoặc SQL Server)
Câu lệnh SQL để truy vấn dữ liệu
Thi kết thúc môn học bằng hình thức thi viết hoặc thi thực
hành.
Lập trình Visual Basic 2
2
Khoa công nghệ thông tin
TÀI LIỆU THAM KHẢO
1. Đặng Thế Khoa, Giáo trình lập trình ứng dụng Visual Basic,
Trung tâm tin học, ĐH Khoa học tự nhiên - Đại học Quốc gia TP.Hồ
Chí Minh.
2. VN-Guide, Giáo trình học và thực hành Visual Basic căn bản,
Nhà xuất bản thống kê.
3. TS. Võ Trung Hùng, Bài giảng Lập trình Visual Basic, Đại Học
Bách Khoa Đà nẵng, 2008.
4. Giáo trình Visual Basic 6.0, Đại học FPT 2007.
Lập trình Visual Basic 2
3
Khoa công nghệ thông tin
Lập trình Visual Basic 2
4
NỘI DUNG
TỔNG QUAN VỀ LẬP TRÌNH CSDL VỚI VB
1
CÁC ĐT CƠ SỞ TRONG MÔ HÌNH LT CSDL
2
CÁC ĐIỀU KHIỂN DỮ LIỆU
3
XÂY DỰNG CÁC ỨNG DỤNG
4
BÁO BIỂU
5
Khoa công nghệ thông tin
Lập trình Visual Basic 2
5
Chương 1: TỔNG QUAN VỀ LẬP TRÌNH CSDL VỚI VB
CÁC KỸ THUẬT LIÊN KẾT CSDL
CÁC ĐỐI TƯỢNG LẬP TRÌNH CƠ SỞ
ĐIỀU KHIỂN ADO DATA
Khoa công nghệ thông tin
CÁC KỸ THUẬT LIÊN KẾT CSDL
Kỹ thuật ODBC
ODBC (Open DataBase Connectivity) là lớp giao tiếp mở chung,
cấp thấp (giao tiếp theo các lệnh API) hỗ trợ chương trình liên kết
và làm việc với các CSDL khác nhau.
Lập trình Visual Basic 2
6
Khoa công nghệ thông tin
CÁC KỸ THUẬT LIÊN KẾT CSDL (tt)
Kỹ thuật DAO
DAO (Data Access Object) là lớp giao tiếp cấp cao gồm các đối
tượng cho phép chương trình liên kết trực tiếp đến CSDL Access
thông qua một cơ chế truy xuất dữ liệu Microsoft Jet.
Lập trình Visual Basic 2
7
Khoa công nghệ thông tin
CÁC KỸ THUẬT LIÊN KẾT CSDL (tt)
Kỹ thuật OLE DB
OLE DB là kỹ thuật truy cập dữ liệu cấp thấp, được phát triển từ kỹ
thuật ODBC, cung cấp bộ giao tiếp API chung cho các ứng dụng
cho phép truy xuất các CSDL có cấu trúc và không cấu trúc thông
qua một trình giao tiếp OLE DB Provider.
Lập trình Visual Basic 2
8
Khoa công nghệ thông tin
CÁC KỸ THUẬT LIÊN KẾT CSDL (tt)
Kỹ thuật ADO
ADO (ActiveX Data Object) là lớp giao tiếp cấp cao được xây dựng
dựa trên kỹ thuật OLE DB.
Lập trình Visual Basic 2
9
Khoa công nghệ thông tin
CÁC ĐỐI TƯỢNG LẬP TRÌNH ADO CƠ SỞ
Lập trình Visual Basic 2
10
Connection: Là đối tượng được sử dụng dùng để tạo liên kết
chương trình với CSDL
Provider: Tên của chương trình giao tiếp dữ liệu (OLE DB Provider)
Data source: Tên đầy đủ của tập tin CSDL cần liên kết
Username: Là thông tin tùy chọn quy định tên của người dùng được tổ chức bên trong CSDL
Password: Chuỗi mật khẩu tương ứng với Username truy cập CSDL
Khoa công nghệ thông tin
CÁC ĐỐI TƯỢNG LẬP TRÌNH ADO CƠ SỞ
Lập trình Visual Basic 2
11
Command:
Đối tượng Command cho phép chương trình gọi thực hiện một câu truy vấn SQL trên CSDL hay gọi thực
hiện một thủ tục xử lý đã được cài đặt trong CSDL (Stored procedure).
Parameter
Là đối tượng dùng để nhận và trả về giá trị khi đối tượng Command gọi một thủ tục.
Đối với CSDL Access các truy vấn đã được xây dựng sẵn trong tập tin MDB (bao gồm các truy vấn chọn,
thêm, xóa, sửa…) có thể được xem như thủ tục.
Khoa công nghệ thông tin
CÁC ĐỐI TƯỢNG LẬP TRÌNH ADO CƠ SỞ
Lập trình Visual Basic 2
12
Recordset:
Là đối tượng lưu trữ một tập hợp các mẫu tin được chọn từ các bảng có trong CSDL. Thông qua đối tượng
Recordset, chúng ta có thể thực hiện các xử lý như hiện thị dữ liệu, cập nhật, tìm kiếm, xóa, sửa
Field:
Là đối tượng con cho phép chúng ta truy xuất và làm việc với một trường (cột) dữ liệu có trong một bộ mẫu
tin Recordset. Với đối tượng Field có hai thuộc tính đó là: Name (tên trường dữ liệu) và Type (kiểu dữ liệu
của trường).
Khoa công nghệ thông tin
CÁC ĐỐI TƯỢNG LẬP TRÌNH ADO CƠ SỞ
Lập trình Visual Basic 2
13
Mô hình các đối tượng:
Khoa công nghệ thông tin
ĐIỀU KHIỂN ADO DATA
Lập trình Visual Basic 2
14
Microsoft ADO Data Control :
Cho phép liên kết và truy xuất CSDL theo kỹ thuật ADO
Bình thường, khi ta mới khởi động một project VB6 mới,
Control Data ADO không có sẵn trong IDE. Muốn có nó, bạn
hãy dùng Menu Command Project | Components , rồi chọn
Microsoft ADO Data Control 6.0 (OLEDB) từ giao diện
Components như dưới đây:
Khoa công nghệ thông tin
ĐIỀU KHIỂN ADO DATA (tt)
Lập trình Visual Basic 2
15
Khoa công nghệ thông tin
Lập trình Visual Basic 2
16
Chương 2: CÁC ĐT CƠ SỞ TRONG MÔ HÌNH LT CSDL
CONNECTION
RECORDSET
Khoa công nghệ thông tin
CONNECTION
Lập trình Visual Basic 2
17
Tạo đối tượng Connection dùng lệnh:
Public cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Provider = "Microsoft.Jet.OLEDB.4.0“
cn.ConnectionString = "Data Source="& App.Path & " \TenCsdl.mdb;”
cn.Open
Thuộc tính State:
Thuộc tính State của connection dùng để kiểm tra trạng thái liên kết
của Connection đang đóng hay đang mở hoặc chúng ta có thể dùng
thuộc tính State để kiểm tra kết nối có thành công hay không
adStateClosed: không kết nối
adStateOpen: kết nối
Thuộc tính Open:
Dùng để mở kết nối
Khoa công nghệ thông tin
RECORDSET
Lập trình Visual Basic 2
18
Recordset là bộ mẩu tin. Đây là đối tương chính của mô hình
ADO, đối tượng được dùng để hiển thị và cập nhật dữ liệu
trong lập trình ứng dụng CSDL.
Mỗi một dòng dữ liệu có trong bộ mẩu tin được gọi là mẩu tin.
Tuy bộ mẫu tin có thể chứa nhiều mẩu tin nhưng tại một thời
điểm, chúng ta chỉ có thể làm việc với đúng một mẩu tin gọi là
mẩu tin hiện hành. Mỗi cột dữ liệu có trong bộ mẩu tin được
gọi là trường dữ liệu (Field).
Khoa công nghệ thông tin
RECORDSET (TT)
Lập trình Visual Basic 2
19
Khai báo biến bộ mẩu tin (Recordset)
Dim <tên biến Recordset> as <tên ADO data control>.Recordset
Cấp phát vùng nhớ cho biến Recordset
Set <tên biến Recordset> = New <tên ADO data control>.Recordset
Khởi tạo các giá trị cho biến bộ mẩu tin (Recordset)
<tên biến Recordset>.Open [Source],[Connection],[Type],[Lock],
[Option]
Trong đó:
•
Source: là chuỗi xác định nguồn dữ liệu của bộ mẩu tin là tên một
bảng hay chuỗi câu lệnh SQL.
•
Connection: là chuỗi chứa thông tin kết nối CSDL.
Khoa công nghệ thông tin
RECORDSET (TT)
Lập trình Visual Basic 2
20
•
Type: là các hằng số chỉ ra loại của Recordset. Thông thường khi
viết ứng dụng chạy trên máy đơn chúng ta thường dùng loại
adOpenStatic.
•
Lock: là thuộc tính xác định trạng thái cho phép khóa dữ liệu khi
cập nhật trên bộ mẫu tin.
•
Option: là thuộc tính xác định kiểu nguồn dữ liệu Source
Hằng trị Ý nghĩa Trị
adCmdTable Khi Source là tên bảng trên Access 2
adCmdText Khi Source là truy vấn SQL 1
adCmdStoreProc Khi Source là Stored Procedure trong
SQL Server
4
Khoa công nghệ thông tin
RECORDSET (TT)
Lập trình Visual Basic 2
21
Thuộc tính State của Recordset:
adStateClosed (0) trạng thái đóng
adStateOpen (1) trạng thái mở
Đóng mở bộ mẩu tin (Recordset)
<tên biến recordset>.Close
<tên biến recordset>.Open
VD: if <tên biến recordset>.State = adStateClosed then <tên biến recordset>.Open
Khoa công nghệ thông tin
RECORDSET (TT)
Lập trình Visual Basic 2
22
Truy xuất các trường dữ liệu:
Chúng ta có thể dùng các cách sau:
•
<tên biến recordset>(“<tên trường>”)
Hoặc:
•
<tên biến recordset>!<tên trường>
Hoặc:
•
<tên biến recordset>(index)
Ví dụ:
•
Rs(“mssv”)
•
Rs!mssv
Khoa công nghệ thông tin
RECORDSET (TT)
Lập trình Visual Basic 2
23
Liên kết bộ mẫu tin với các điều khiển dữ liệu:
Set <tên điều khiển>.Datasource= <tên biến recordset>
<tên điều khiển>.DataField= <chuỗi tên trường liên kết>
Trong đó:
Tên điều khiển: TextBox, Label, ComboBox….
Ví dụ:
•
Rs.Open “tên Table”, cn, adOpenStatic, , adCmdTable
•
Set Text1.Datasource=rs
•
Text1.DataField=“mssv”
•
Set Text2.Datasource=rs
•
Text2.DataField=“hoten”
Khoa công nghệ thông tin
RECORDSET (TT)
Lập trình Visual Basic 2
24
Liên kết bộ mẫu tin với các điều khiển dữ liệu:
Set <tên biến Recordset> = New ADODB.Recordset
<tên biến Recordset>.Source = " select <tên trường> from <tên bảng>
"
<tên biến Recordset>.ActiveConnection = <tên chuỗi kết nối>
<tên biến Recordset> .Open
Ví dụ:
•
Set rs = New ADODB.Recordset
•
rs.Source = " select mssv, hoten from sinhvien “
•
rs.ActiveConnection = cn
•
rs.Open
•
Text1.Text = rs!mssv
Khoa công nghệ thông tin
RECORDSET (TT)
Lập trình Visual Basic 2
25
Các thuộc tính mẫu tin thường dùng
RecordCount (trị Long Integer): số lượng mẩu tin
BOF: Trước mẩu tin đầu
EOF: Sau mẩu tin cuối
EditMode: chỉ trình trạng của mẩu tin hiện hành, có các giá trị sau
•
adEditNone 0 Bình thường
•
adEditInProgress 1 Đang sửa đổi chưa cập nhật
•
adEditAdd 2 Đang thêm mới chưa cập nhật
•
adEditDelete 3 Đánh dấu hủy chưa cập nhật