I. Đối tượng và tập hợp:
II. Biến đối tượng:
III. Sử dụng các biến đối tượng:
I. Đối tượng và tập hợp
Các nguồn cung cấp đối tượng trong MS Access:
MS Access: đối tượng hiển thị dữ liệu
MS DAO: đối tượng truy nhập dữ liệu
Visual Basic: đối tượng đem lại sự linh động trong lập trình
Tập hợp: là các đối tượng có cùng kiểu
Tham chiếu tới các đối tượng:
Các đối tượng riêng biệt: tên_đối_tượng
Các đối tượng thuộc về tập hợp:
C1: Tên_tập_hợp!tên_đối_tượng
C2: Tên_tập_hợp(tên_đối_tượng)
C3: Tên_tập_hợp(chỉ số)
Tập thuộc tính:
Xác lập giá trị cho thuộc tính:
Tên_đối_tượng.tên_thuộc_tính = giá trị
Lấy giá trị của thuộc tính:
Tên_biến = tên_đối_tượng.tên_thuộc_tính
II. Biến đối tượng
Biến đối tượng: biến biểu thị một đối tượng cụ thể thuộc vào một kiểu đối tượng
Kiểu đối tượng: phần dữ liệu, các phương thức
Khai báo:
Cú pháp: Dim tên_biến AS tên_kiểu_đối_tượng
Gán các biến đối tượng:
Cú pháp: SET tên_biến = dạng biểu thị
Biểu thị các thành phần đối tượng:
Giữa các đối tượng: !
Thuộc tính, phương thức: .
In tên các điều khiển có trong Form Mật khẩu
Sub Dkhien_Matkhau()
Dim Frm As Form
Dim n As Integer, i As Integer
DoCmd.OpenForm ”Matkhau"
Set Frm = Forms(”Matkhau")
n = Frm.Count
For i = 0 To n - 1
MsgBox Frm(i).Name
Next i
End Sub
Liệt kê các bảng có trong CSDL hiện tại
SUB Inbang()
Dim db As Database
Dim t As TableDef
Set db = CurrentDb()
For Each t In db.TableDefs
MsgBox t.Name
Next t
ENDSUB
III. Sử dụng các biến đối tượng
1. Biến đối tượng Database:
Khai báo:
DIM Tên_biến_DB AS Database
Gán biến đối tượng:
SET Tên_biến_DB=DBEngine.Workspace(0).OpenDatabase(tập tin CSDL)
Ví dụ: Khai báo một biến Db làm việc với CSDL hiện hành
C1: DIM Db AS Database
SET Db= DBEngine.Workspace(0).Database(0)
C2: DIM Db AS Database
SET Db= CurrentDB()
2. Biến đối tượng Recordset: Lưu trữ tập các bản ghi.
Tạo đối tượng Recordset: Dùng phương thức OpenDatabase của đối tượng Database
Khai báo: DIM tên_biến_RS AS Recordset
Ví dụ: Dim Rs As Recordset
Tham chiếu vào một đối tượng cụ thể:
SET tên_biến_RS=tên_biến_DB.OpenRecordSet (“nguồn dl”, loại)
Nguồn dữ liệu: Tên của một bảng, truy vấn, câu lệnh SQL.
Loại dùng 1 trong 3 hằng sau:
DB_OPEN_TABLE: Tham chiếu đến 1 bảng, dữ liệu có thể thay đổi được
DB_OPEN_DYNASET: Tham chiếu đến bảng, query, dliệu có thể thay đổi được
DB_OPEN_SNAPSHOT: Tham chiếu đến 1 bản sao của dliệu, không thay đổi dữ liệu được
Ví dụ:
Dim Db As Database
Dim Rs As Recordset
Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
Tham chiếu đến các trường dữ liệu của biến RecordSet:
Tên_biến_RS!tên_trường
hoặc: Tên_biến_RS.fields(“tên_trường”)
Ví dụ: Truy xuất đến trường mã môn học trong bảng Môn học
Rs!MaMH
Hoặc Rs.fields(“MaMH”)
Tham chiếu đến các phương thức, thuộc tính của biến RecordSet:
Tên_biến_RS.tên_phương_thức/ tên_thuộc_tính
Các phương thức di chuyển:
MOVEFIRST: Đến bản ghi đầu tiên trong biến Recordset
MOVEPREVIOUS
MOVENEXT
MOVELAST
MOVE(n): Đến bản ghi n trong biến Recordset
Ví dụ: Rs.MoveNext
Phương thức đóng : CLOSE
Tên_biến_RS.CLOSE
Ví dụ: Rs.Close
Phương thức đếm số bản ghi: RECORDCOUNT
Ví dụ: Đếm số bản ghi trong bảng môn học
Rs.MoveLast
Rs.RecordCount
Thuộc phát hiện các giới hạn:
BOF = True : trước bản ghi đầu tiên, hoặc không có bản ghi EOF = True : sau bản ghi cuối cùng, hoặc không có bản ghi Tên_biến_RS.BOF
Ví dụ: Rs.BOF
Ví dụ: In ra màn hình trực tiếp danh mục các môn học
SUB InMH()
Dim Db As Database
Dim Rs As Recordset
Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
DO WHILE (Rs.EOF = False)
Debug.Print Rs!MaMH, Rs!TenMH, Rs!Heso
Rs.MoveNext
LOOP
Rs.Close
ENDSUB
III. Sử dụng các biến đối tượng:
Viết thủ tục xử lý sự kiện gắn với nút Xem để khi nhập một mã MH ® Xem: thông tin ứng với môn học hiển thị lên các Textbox của Form
Hiệu chỉnh 1 bản ghi:
- Chuyển đến bản ghi muốn hiệu chỉnh
- Dùng phương thức EDIT
- Tiến hành hiệu chỉnh
- Dùng phương thức UPDATE
Ví dụ: Sửa Tên môn học có Mã số AV1 thành Anh Văn 1
- Tìm bản ghi có MaMH = “AV1”
- Gọi phương thức EDIT
- Thay TenMH = “Anh Văn 1”
- Gọi phương thức UPDATE
SUB SuaTenMH()
Dim Db As Database
Dim Rs As Recordset
Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
DO WHILE (Rs.EOF = False)
IF Rs!MaMH = “AV1” THEN
Rs.EDIT
Rs!TenMH = “Anh Văn 1”
Rs.UPDATE
EXIT DO
ELSE
Rs.MoveNext
LOOP
Rs.Close
ENDSUB
Viết thủ tục xử lý sự kiện gắn với nút Sửa để khi Xem thông tin môn học hiển thị lên các Textbox của Form, thay đổi thông tin ® nút Sửa để lưu lại thông tin vừa sửa.
Thêm 1 bản ghi mới:
- Dùng phương thức ADDNEW
- Nhập dữ liệu cho bản ghi này
- Dùng phương thức UPDATE
Ví dụ: Thêm môn học mới vào bảng MONHOC
MaMH : AV2
TenMH : Anh Văn 2
Heso : 1
SUB ThemMH()
Dim Db As Database
Dim Rs As Recordset
Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
Rs.ADDNEW
Rs!MaMH = “AV2”
Rs!TenMH = “Anh Văn 2”
Rs!Heso = 1
Rs.UPDATE
Rs.Close
ENDSUB
Viết thủ tục xử lý sự kiện gắn với nút Thêm để thêm vào bảng môn học với các thông tin của môn học được nhập vào các Textbox trên Form
Xoá 1 bản ghi:
- Chuyển đến bản ghi cần xoá
- Dùng phương thức DELETE
Ví dụ: Xóa từ bảng MONHOC môn học có mã “AV1”
SUB XoaMH()
Dim Db As Database , Rs As Recordset
Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
DO WHILE (Rs.EOF = False)
IF Rs!MaMH = “AV1” THEN
Rs.DELETE
EXIT DO
ELSE
Rs.MoveNext
LOOP
Rs.Close
ENDSUB
Viết thủ tục xử lý sự kiện gắn với nút Xóa để xóa từ bảng môn học một môn học có mã được nhập vào Textbox trên Form.
Tìm kiếm 1 bản ghi:
Phương thức SEEK (áp dụng với loại mở nguồn dữ liệu là DB_OPEN_TABLE)
- Chỉ ra tên chỉ mục
- Tên_biến_RS.SEEK “toán tử so sánh”,”giá trị so sánh”
Thuộc tính kiểm tra: NOMATCH
NOMATCH=True: không tìm thấy bản ghi
3. Biến đối tượng QueryDef:
Khai báo:
DIM Tên_biến_QD AS QueryDef
Tạo 1 query: dùng phương thức CREATEQUERYDEF của đối tượng Database
SET tên_biến_QD=tên_biến_DB.CREATEQUERYDEF(“tên query”)
Tên_biến_QD.SQL=”câu lệnh SQL”
Tên_biến_DB.Tên_biến_QD.DELETE(“tên query”)
Thi hành: EXECUTE
Tên_biến_QD.EXECUTE
Đóng: CLOSE
Tên_biến_QD.CLOSE
Xoá: DELETE