SlideShare a Scribd company logo
Phạm Thị Kim Ngoan 1
Phần 2: VISUAL BASIC FOR APPLICATION
(VBA)
Chương 1: TỔNG QUAN VỀ VB
Chương 2: CÁC KHAI BÁO TRONG VB
Chương 3: CÁC CẤU TRÚC ĐIỀU KHIỂN VÀ
KIỂU DỮ LIỆU CÓ CẤU TRÚC
Chương 4: THỦ TỤC CỦA NGƯỜI DÙNG
Chương 5: ĐỐI TƯỢNG VÀ BIẾN ĐỐI TƯỢNG
Phạm Thị Kim Ngoan 2
Chương 1: TỔNG QUAN VỀ VBA
I. Giới thiệu chung
II. Module
III. Cấu trúc của Module
VI. Tạo và thực hiện các thủ tục
V. Một số hiệu ứng khi viết và sửa chữa mã lệnh
Phạm Thị Kim Ngoan 3
I. Giới thiệu chung
Visual Basic là ngôn ngữ lập trình dùng để ràng buộc các đối
tượng trong ứng dụng với nhau thành một hệ thống hợp
nhất. Các chương trình của VBA (Visual Basic for
Application) được tổ chức và hoạt động trong Access nhằm
mục đích xây dựng các ứng dụng phức tạp.
Có thể dùng VB để thực hiện các công việc sau:
- Làm cho ứng dụng dễ bảo trì hơn
- Tạo ra các hàm/thủ tục của người sử dụng để xử lý các thao
tác phức tạp mà chưa được MS Access cung cấp sẵn.
- Xử lý lỗi theo ý người sử dụng.
Phạm Thị Kim Ngoan 4
I. Giới thiệu chung
- Tạo hay thao tác với các đối tượng
- Thực hiện các thao tác cấp hệ thống : thực hiện một ứng
dụng khác, liên kết giữa các ứng dụng.
Đặc điểm:
- Chương trình của VBA hoạt động chủ yếu theo hướng sự
kiện : bấm chuột tại các nút lệnh, di chuyển vào hay ra đối
tượng điều khiển của form, report …
- Các thủ tục và hàm của VBA nằm rải rác trong các module
của form, report hoặc module chung của CSDL và chúng có
thể gọi lẫn nhau.
Phạm Thị Kim Ngoan 5
II. Module
1. Khái niệm Module: Là tập các tuỳ chọn, các khai báo, các
thủ tục cùng được lưu trữ trong một đơn vị chương trình.
2. Phân loại Module:
- Module chuẩn: Có thể thi hành bất cứ nơi nào trong ứng
dụng.
- Module lớp: Các thủ tục định nghĩa trong Module lớp sẽ
trở thành các phương thức của đối tượng này.
* Mỗi Form/Report đều có thể kết hợp với một Module lớp
(Form Module/Report Module), Module lớp này được lưu
cùng với Form/Report.
Phạm Thị Kim Ngoan 6
III. Cấu trúc của Module
1. Module chuẩn:
- Các tuỳ chọn
- Các khai báo toàn cục (Public)
- Các khai báo cấp module (Dim)
- Các thủ tục sử dụng toàn cục
- Các thủ tục sử dụng cấp module
2. Module loại:
- Các tuỳ chọn
- Các khai báo cấp module
- Các thủ tục xử lý sự kiện
- Các thủ tục sử dụng cấp module
Phạm Thị Kim Ngoan 7
Module chuẩn
Phạm Thị Kim Ngoan 8
Module loại
Phạm Thị Kim Ngoan 9
III. Cấu trúc của Module
3. Cấu trúc một thủ tục:
a. Cấu trúc Sub procedure :
Sub Tên_thủ _tục ([Các tham số])
Các lệnh
End Sub
b. Cấu trúc Function procedure :
Function Tên_hàm ([Các tham số]) [AS kiểu dữ liệu]
Các lệnh
Tên_hàm = biểu thức giá trị
End Sub
c. Cấu trúc thủ tục xử lý sự kiện :
Private Sub Tênđốitượng__tênsựkiện ([Các tham số])
Các lệnh
End Sub
Phạm Thị Kim Ngoan 10
VI. Tạo và thực hiện các thủ tục
1. Thủ tục xử lý sự kiện: Thường là các thủ tục gắn với các
điều khiển của Form (nút lệnh, …) đặt trong Module loại
- Tạo mới:
• Mở Form có điều khiển cần gắc thủ tục ở dạng thiết kế.
• Chọn Properties của điều khiển cần gắn thủ tục, chọn ngăn
sự kiện (Event)
• Chọn sự kiện cần gắn (On Click, …), chọn nút …, chọn
Code Builder, MS Access đưa ra khuôn dạng của thủ tục với
tên tương ứng, tại vị trí con trỏ: gõ các lệnh cần thực hiện
trong thủ tục.
- Thực thi: Mở Form, tác động sự kiện vừa gắn lên nút
lệnh.
Phạm Thị Kim Ngoan 11
VI. Tạo và thực hiện các thủ tục
2. Thủ tục Sub procedure và Function procedure: Đặt trong
Module loại hoặc chuẩn.
- Tạo mới: Mở màn hình viết mã lệnh, viết thủ tục theo cấu
trúc tương ứng.
- Thực thi:
• Biên dịch cho đến khi không còn lỗi cú pháp
Menu Debug → Complie Loaded Modules
• Chạy xem kết quả trong khung trực tiếp:
Mở mà hình trực tiếp: Menu View → DebugWindow /
Immediate Window
Phạm Thị Kim Ngoan 12
VI. Tạo và thực hiện các thủ tục
Chạy thủ tục:
Thủ tục không có tham số:
Tên_Module.Tên_thủ_tục
Call Tên_Module.Tên_thủ_tục
Call Tên_Module.Tên_thủ_tục ()
Ví dụ: Tinhtoan.Tong
Call Tinhtoan.Tong
Call Tinhtoan.Tong()
Phạm Thị Kim Ngoan 13
VI. Tạo và thực hiện các thủ tục
Thủ tục có tham số:
Call Tên_Module.Tên_thủ_tục (Các tham số thực sự)
Ví dụ: Call Tinhtoan.Tongab(15, 56)
Hàm (Function procedure):
? Tên_Module.Tên_hàm ()
? Tên_Module.Tên_hàm
? Tên_Module.Tên_hàm (Các tham số thực sự)
Ví dụ: ?Tinhtoan.Tong1()
?Tinhtoan.Tong2(25, 35)
Phạm Thị Kim Ngoan 14
VI. Tạo và thực hiện các thủ tục
Gọi thủ tục từ các thủ tục khác:
Thủ tục:
Call Tên_Module.Tên_thủ_tục (Các tham số thực sự)
Hàm: đặt trong các biểu thức
Tên_Module.Tên_hàm (Các tham số thực sự)
Phạm Thị Kim Ngoan 15
V. Một số hiệu ứng khi viết và sửa chữa mã lệnh
- Tự động xây dựng các phát biểu:
Tools -> Options -> Module -> Auto list Members
- Thông tin nhanh:
Tools -> Options -> Module -> Auto QuickInfo
- Tự động kiểm tra cú pháp:
Tools -> Options -> Module -> Auto Syntax Check
- Di chuyển giữa các thủ tục trong module:
Ctrl + Page Down / Ctrl + Page Up
Phạm Thị Kim Ngoan 16
Chương 2: CÁC KHAI BÁO TRONG VB
I. Các tuỳ chọn
II. Các kiểu dữ liệu cơ bản
II. Khai báo
IV. Các hàm/thủ tục nhập xuất dữ liệu
V. Một số hàm / thủ tục của VB
Phạm Thị Kim Ngoan 17
I. Các tuỳ chọn
Option Explicit: người dùng phải khai báo tường minh các
biến
Option Compare Binary: phân biệt chữ thường và hoa khi
viết chương trình
Option Compare Text: phân biệt chữ thường và hoa khi so
sánh
Option Base n: qui định chỉ số đầu tiên trong kiểu dữ liệu
mảng
Phạm Thị Kim Ngoan 18
II. Các kiểu dữ liệu cơ bản
Kiểu dl Kích thước Phạm vi
Byte 1 byte 0 … 255
Boolean 1 byte True/False
Integer 2 bytes -32.768 … 32.767
Long 4 bytes -2.147.483.648 … 2.147.483.647
Single 4 bytes -3,402823E+38 …3,402823E+38
Double 8 bytes -1,7976E+308 … 1,7976E+308
Currency 8 bytes -9,223E+14 … 9,223E+14
Phạm Thị Kim Ngoan 19
II. Các kiểu dữ liệu cơ bản
Kiểu dl Kích thước Phạm vi
Date 8 bytes 1/1/100…31/12/9999
Object 4 bytes Các đối tượng
String(variable – length) 10 bytes + string length 0 … 231
ký tự
String(fixed – length) Length of string 1…65.400 ký tự
Variant (with numbers) 16 bytes Như kiểu double
Variant (with characters) 10 bytes + string length Như kiểu string có độ dài
thay đổi
Phạm Thị Kim Ngoan 20
III. Khai báo
1. Khai báo hằng:
Public/Private CONST Tên_hằng [AS Kiểu dữ liệu] =
Biểu thức
giá trị
Ví dụ: Const Pi=3.14
Public Const S = “Đây là ví dụ”
Private Const so As Integer = 5
2. Khai báo biến:
Public/Private/Dim/Static Tên_biến [AS Kiểu dữ liệu]
Ví dụ: Public Hoten As String, DTB As Double
Private Diachi As String
Phạm Thị Kim Ngoan 21
III. Khai báo
Phạm vi sử dụng:
- Mức thủ tục : Các khai báo bên trong thủ tục.
- Mức module : Các khai báo Private Const trong phần khai
báo của module.
- Mức project : Khai báo Public
Tên:
- Gồm chữ cái, chữ số và dấu gạch chân, bắt đầu là chữ cái.
- Không trùng với từ khoá của Access.
- Độ dài không vượt quá 40 ký tự.
Phạm Thị Kim Ngoan 22
IV. Các hàm/thủ tục nhập xuất dữ liệu
1. Nhập dữ liệu: hàm InputBox, InputBox$
Cú pháp: INPUTBOX[$](Dòng nhắc [[,tiêu đề]
[, giá trị mặc định][,x, y] ])
- Hàm InputBox trả về giá trị Variant
- Chức năng : Hiển thị dòng nhắc trong một hộp thoại, đợi
nhập liệu và trả về giá trị trong textbox
Ví dụ: Nhập 1 số nguyên từ bàn phím và lưu trong biến a
Dim a as Integer
a = Inputbox(“Nhập a=”, “Nhập số liệu”)
Phạm Thị Kim Ngoan 23
IV. Các hàm/thủ tục nhập xuất dữ liệu
2. Xuất dữ liệu:
a. Thủ tục Msgbox
Cú pháp: MsgBox Dòng thông báo, kiểu hộp thoại, tiêu đề
b. Hàm Msgbox
Cú pháp: MsgBox (Dòng thông báo, kiểu hộp thoại, tiêu đề)
Kiểu hộp thoại: Giá trị cho biết các nút lệnh nào sẽ hiển thị và
các biểu tượng sẽ hiển thị trong hộp thoại.
Chức năng : Hiển thị một thông điệp trong hộp hội thoại và đợi
người sử dụng chọn một nút lệnh.
Khác nhau giữa hàm và thủ tục MsgBox : Hàm MsgBox trả về
giá trị cho biết đã chọn nút lệnh nào, còn thủ tục thì không.
Phạm Thị Kim Ngoan 24
IV. Các hàm/thủ tục nhập xuất dữ liệu
* Tham số kiểu hộp thoại gồm 3 thành phần: Nút lệnh nào sẽ
hiển thị, kiểu biểu tượng hiển thị, nút ngầm định.
- Nút lệnh hiển thị:
0 / vbOnlyOK OK
1 / vbOKCancel OK, Cancel
2 / vbAbortRetryIgnore Abort, Retry, Ignore
3 / vbYesNoCancel Yes, No, Cancel
4 / vbYesNo Yes, No
5 / vbRetryCancel Retry, Cancel
Phạm Thị Kim Ngoan 25
IV. Các hàm/thủ tục nhập xuất dữ liệu
- Xác định biểu tượng:
0 không
16 / vbCritical Critical (Stop)
32 / vbQuestion Warning query
48 / vbExclamation Warning Message
64 / vbInformation Information
Phạm Thị Kim Ngoan 26
IV. Các hàm/thủ tục nhập xuất dữ liệu
- Xác định nút ngầm định:
0 / vbDefaultButton1 nút thứ 1
256 / vbDefaultButton2 nút thứ 2
512 / vbDefaultButton3 nút thứ 3
* Giá trị của hàm khi nút lệnh được chọn:
1 OK 4 Retry
2 Cancel 5 Ignore
3 Abort 6 Yes 7 No
c. In ra màn hình trực tiếp: Debug.print biểu thức
Phạm Thị Kim Ngoan 27
IV. Các hàm/thủ tục nhập xuất dữ liệu
Ví dụ: In ra dưới dạng hộp thoại tổng của a+ b (dùng thủ tục)
Msgbox “Tổng của a+b=” & a+b,
vbOkCancel + vbInformation, “Kết quả”
In ra dưới dạng hộp thoại tổng của a+ b có kiểm tra nút lệnh
bấm (dùng hàm Msgbox)
IF Msgbox (“Tổng của a+b=” & a+b,
vbOkCancel+vbInformation, “Kết quả”)= vbOk THEN
Phạm Thị Kim Ngoan 28
V. Một số hàm / thủ tục của VBA
Các hàm về chuỗi:
LTRIM(St) cắt các ký tự trắng bên trái chuỗi
RTRIM(St) cắt các ký tự trắng bên phải chuỗi
TRIM(St) cắt các ký tự trắng bên phải và bên trái chuỗi
LEN(St) độ dài chuỗi
LEFT(St,n) lấy n ký tự bên trái chuỗi
RIGHT(St,n) lấy n ký tự bên phải chuỗi
MID(St,i,n) lấy n ký tự bắt đầu từ vị trí i trong chuỗi
STR(n) đổi số thành chuỗi
Phạm Thị Kim Ngoan 29
V. Một số hàm / thủ tục của VB
LCASE(St) đổi các ký tự trong chuỗi thành chữ thường
UCASE(St) đổi các ký tự trong chuỗi thành chữ in
Các hàm tính toán:
ABS(n) trị tuyệt đối
FIX(r) lấy phần nguyên của số thực
INT(r) lấy phần nguyên gần nhất và nhỏ hơn r
SQR(n) căn bậc 2 của n
EXP(n) hàm e mũ n
VAL(St) đổi chuỗi thành số
Các hàm về ngày, giờ:
NOW() lấy ngày giờ của hệ thống
DATE() ngày hệ thống
TIME() giờ hệ thống
Phạm Thị Kim Ngoan 30
V. Một số hàm / thủ tục của VB
DATEPART(dt) lấy một phần của ngày/tháng/năm
DATEPART(“d”, dt) lấy phần ngày
DAY(dt)
DATEPART(“m”, dt) lấy phần tháng
MONTH(dt)
DATEPART(“yyyy”, dt) lấy phần năm
YEAR(dt)
Các hàm kiểm tra:
ISNUMERIC(n) kiểm tra n có phải là một số không?
ISDATE(d) kiểm tra d có phải là kiểu ngày không?
Chú ý:
‘ dòng chú thích
Viết lệnh trên nhiều dòng dùng dấu space và gạch dưới ( _)
Phạm Thị Kim Ngoan 31
Chương 3: CÁC CẤU TRÚC ĐIỀU KHIỂN
VÀ KIỂU DỮ LIỆU CÓ CẤU TRÚC
I. Các cấu trúc điều khiển:
1. Cấu trúc lựa chọn:
2. Cấu trúc lặp:
3. Lệnh Exit:
II. Kiểu dữ liệu có cấu trúc:
1. Mảng:
2. Bản ghi:
Phạm Thị Kim Ngoan 32
I. Các cấu trúc điều khiển
1. Cấu trúc lựa chọn:
a. IF .. THEN
Cú pháp1:
IF (điều kiện) THEN khối lệnh viết trên cùng 1 dòng
Cp2: IF (điều kiện) THEN
khối lệnh
ENDIF
Phạm Thị Kim Ngoan 33
I. Các cấu trúc điều khiển
Ví dụ:
Cp1: IF a >= b THEN Debug.Print a
Cp2: IF a >= b THEN
Debug.Print a
ENDIF
Phạm Thị Kim Ngoan 34
I. Các cấu trúc điều khiển
b. IF .. THEN .. ELSE
Cú pháp: IF (điều kiện) THEN
khối lệnh 1
ELSE
khối lệnh 2
ENDIF
c. IF .. THEN .. ELSEIF
Cú pháp: IF (điều kiện1) THEN
khối lệnh 1
ELSEIF (điều kiện2) THEN
khối lệnh 2
…
ELSE
khối lệnh
ENDIF
Phạm Thị Kim Ngoan 35
I. Các cấu trúc điều khiển
Ví dụ: IF a >= b THEN
Debug.Print a
ELSE
Debug.Print b
ENDIF
Ví dụ: IF (a >= b) and (a >=c) THEN
Debug.Print a
ELSEIF (b >= a) and (b >=c) THEN
Debug.Print b
ELSE
Debug.Print c
ENDIF
Phạm Thị Kim Ngoan 36
I. Các cấu trúc điều khiển
d. SELECT CASE … END SELECT:
Cú pháp: SELECT CASE biểu thức giá trị
CASE gtrị1: khối lệnh 1
CASE gtrị2: khối lệnh 2
…
CASE ELSE
khối lệnh
END SELECT
Phạm Thị Kim Ngoan 37
I. Các cấu trúc điều khiển
Ví dụ:
SELECT CASE n
CASE 1: Debug.Print “một”
CASE 2: Debug.Print “hai”
CASE 3: Debug.Print “ba”
CASE 4: Debug.Print “bốn”
CASE 5: Debug.Print “năm”
CASE ELSE
Debug.Print “lớn hơn năm”
END SELECT
Phạm Thị Kim Ngoan 38
I. Các cấu trúc điều khiển
2. Cấu trúc lặp:
a. FOR .. NEXT
Cú pháp:
FOR biến_đếm=giá trị đầu TO giá trị cuối [STEP bước lặp]
khối lệnh
NEXT biến_đếm
Ví dụ: Tính tổng 10 số nguyên dương đầu tiên
Tong = 0
FOR i =1 TO 10 [Step 1]
Tong = Tong + i
NEXT i
Phạm Thị Kim Ngoan 39
I. Các cấu trúc điều khiển
b. DO WHILE .. LOOP:
Cú pháp 1: DO WHILE (điều kiện)
khối lệnh
LOOP
Cú pháp 2: DO
khối lệnh
LOOP WHILE (điều kiện)
Cú pháp 3: WHILE (điều kiện)
khối lệnh
WEND
Phạm Thị Kim Ngoan 40
I. Các cấu trúc điều khiển
Ví dụ: Tính tổng 10 số nguyên dương đầu tiên
Tong = 0: i =1
DO WHILE (i < =10)
Tong = Tong + i : i =i + 1
LOOP
Tong = 0: i =0
DO
Tong = Tong + i : i =i + 1
LOOP WHILE (i < = 10)
Phạm Thị Kim Ngoan 41
I. Các cấu trúc điều khiển
c. DO UNTIL … LOOP:
Cú pháp 1: DO UNTIL (điều kiện)
khối lệnh
LOOP
Cú pháp 2: DO
khối lệnh
LOOP UNTIL (điều kiện)
3. Lệnh Exit:
Exit Do Exit For
Exit Function Exit Sub
Phạm Thị Kim Ngoan 42
I. Các cấu trúc điều khiển
Ví dụ: Tính tổng 10 số nguyên dương đầu tiên
Cp1:
Tong = 0: i =1
DO UNTIL (i > 10)
Tong = Tong + i : i =i + 1
LOOP
Cp2: Tong = 0: i = 0
DO
Tong = Tong + i : i =i + 1
LOOP UNTIL ( i > 10)
Phạm Thị Kim Ngoan 43
II. Kiểu dữ liệu có cấu trúc
1. Mảng:
Khai báo:
DIM Tên_mảng (chỉ số1, chỉ số2, …) AS kiểu dữ liệu
Truy xuất:
Tên_mảng(chỉ số)
Ví dụ:
Option Base 1
Dim A (10) As Integer, B(3, 4) As Integer
Truy xuất đến phần tử thứ 4 của mảng A: A(4)
Truy xuất đến phần tử hàng 2, cột 3 của mảng B: B(2, 3)
Phạm Thị Kim Ngoan 44
II. Kiểu dữ liệu có cấu trúc
Mảng động:
Khai báo: DIM Tên_mảng() AS kiểu dữ liệu
Thay đổi kích thước:
REDIM Tên_mảng(chỉ số1, chỉ số2, …)
Ví dụ:
Option Base 1
Dim A () As Integer
…
REDIM A(5)
Xóa mảng: Erase Tên_mảng
Phạm Thị Kim Ngoan 45
II. Kiểu dữ liệu có cấu trúc
2. Bản ghi:
Định nghĩa kiểu:
TYPE Tên_kiểu_bản_ghi
Thành phần1 AS kiểu dliệu1
Thành phần2 AS kiểu dliệu2
…
END TYPE
Khai báo:
Public/Private/Dim Tên_biến AS Tên_kiểu_bản_ghi
Truy xuất thành phần:
Tên_biến.Tên_thành phần
Phạm Thị Kim Ngoan 46
II. Kiểu dữ liệu có cấu trúc
Ví dụ:
TYPE Hocsinh
Hoten as String
Ngaysinh as Date
Toan as Single
ENDTYPE
Khai báo một biến HS kiểu hocsinh
Dim HS as Hosinh
Truy xuất thành phần Hoten của biến HS
HS.Hoten
Phạm Thị Kim Ngoan 47
Chương 4: THỦ TỤC CỦA NGƯỜI DÙNG
I. Tham biến và tham trị
II. Đệ qui
III. Thi hành Macro trong VB
IV. Kích hoạt các ứng dụng khác
V. Gỡ rối mã VB
Phạm Thị Kim Ngoan 48
I. Tham biến và tham trị
- Truyền theo tham trị(ByVal): các tham số không thay đổi
giá trị
- Truyền theo tham biến: giá trị các tham số thay đổi nếu
thủ tục gọi có câu lệnh là thay đổi giá trị của chúng
Ví dụ truyền theo tham trị và tham biến
Phạm Thị Kim Ngoan 49
I. Tham biến và tham trị
Sub Thamso(ByVal a As Integer, b As Integer)
a = a + 1
b = a
End Sub
‘----------------------
Sub goi()
Dim a As Integer : Dim b As Integer
a = 5: b = 7
Call Thamso(a, b)
Debug.Print "a=", a
Debug.Print "b=", b
End Sub
Phạm Thị Kim Ngoan 50
II. Đệ qui
Trong thủ tục có lời gọi đến chính thủ tục đó
Ví dụ thủ tục đệ qui
Function Dequi(a As Byte, n As Byte)
If n = 0 Then
Dequi = 1
Else
Dequi = Dequi(a, n - 1) * a
End If
End Function
Phạm Thị Kim Ngoan 51
III. Thi hành Macro trong VB
Cú pháp: Docmd.Tên_phương_thức [các tham số]
Các phương thức của Docmd có tên và chức năng giống
như các thao tác (Action) trong Macro
Sub Vedau_Click()
Docmd.GotoRecord , , ac First
EndSub
Phạm Thị Kim Ngoan 52
Thiết kế Form đăng nhập hệ thống, yêu cầu người sử dụng phải
nhập vào mật khẩu khi muốn sử dụng CSDL
Dim dem As Byte
‘-----------------
Private Sub Dongy_Click()
If matkhau = "TTTH" Then
DoCmd.OpenForm "Giaodien"
DoCmd.Maximize
ElseIf dem < 3 Then
MsgBox "Ban nhap sai roi!"
dem = dem + 1 : matkhau = ""
matkhau.SetFocus
Else
MsgBox "Ban da nhap 3 lan"
DoCmd.Quit acQuitPrompt
End If
End Sub
Phạm Thị Kim Ngoan 53
Thiết kế Form đăng nhập hệ thống, yêu cầu người sử dụng phải
nhập vào mật khẩu khi muốn sử dụng CSDL
Private Sub Form_Load()
dem = 1
End Sub
Phạm Thị Kim Ngoan 54
IV. Kích hoạt các ứng dụng khác
1. Hàm Shell: thực hiện một tập tin chương trình
Cú pháp:
SHELL (đường dẫn đến tập tin chương trình [,kiểu của sổ])
2. Lệnh AppActivate: kích hoạt ứng dụng thành ứng dụng
hiện hành
Cú pháp: APPACTIVATE tên ứng dụng
3. Hàm Sendkey: gửi các phím bấm đến một ứng dụng
Cú pháp: SENDKEY chuỗi các phím [,True/False]
Phạm Thị Kim Ngoan 55
V. Gỡ rối mã VB
Các loại lỗi có thể gặp:
Lỗi biên dịch:
Nguyên nhân: lệnh sai cấu trúc
Hạn chế: chọn “Auto Syntax Check”
Lỗi trong lúc thi hành:
Nguyên nhân: do cố gắng thực hiện một hành động không thể
thực hiện được.
Xử lý: dùng phát biểu ON ERROR để đặt bẫy lỗi
Lỗi logic của chương trình: kết quả sai
Nguyên nhân: sai giải thuật
Phát hiện: Chạy từng bước để kiểm tra (Menu Debug -> Step
Phạm Thị Kim Ngoan 56
V. Gỡ rối mã VB
Ví dụ dùng phát biểu On Error để đặt bẫy lỗi
Sub Vedau_Click()
On error goto err_VD
Docmd.GotoRecord , , ac First
err_VD:
Exit Sub
EndSub
Phạm Thị Kim Ngoan 57
Chương 5: ĐỐI TƯỢNG VÀ BIẾN ĐỐI TƯỢNG
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:
Phạm Thị Kim Ngoan 58
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)
Phạm Thị Kim Ngoan 59
I. Đối tượng và tập hợp
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
Phạm Thị Kim Ngoan 60
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: .
Phạm Thị Kim Ngoan 61
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
Phạm Thị Kim Ngoan 62
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
Phạm Thị Kim Ngoan 63
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)
Phạm Thị Kim Ngoan 64
III. Sử dụng các biến đối tượng
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()
Phạm Thị Kim Ngoan 65
III. Sử dụng các biến đối tượng
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.
Phạm Thị Kim Ngoan 66
III. Sử dụng các biến đối tượng
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)
Phạm Thị Kim Ngoan 67
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 68
III. Sử dụng các biến đối tượng
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ạm Thị Kim Ngoan 69
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 70
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 71
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
Phạm Thị Kim Ngoan 72
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 73
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 74
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 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.
Phạm Thị Kim Ngoan 75
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 76
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 77
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 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
Phạm Thị Kim Ngoan 78
III. Sử dụng các biến đối tượng
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”
Phạm Thị Kim Ngoan 79
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 80
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 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.
Phạm Thị Kim Ngoan 81
III. Sử dụng các biến đối tượng
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
Phạm Thị Kim Ngoan 82
III. Sử dụng các biến đối tượng
Ví dụ: In ra màn hình trực tiếp môn học có mã “AV2”
SUB InMH_2()
Dim Db As Database
Dim Rs As Recordset
Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
Rs.Index = “ma”
Rs.Seek “=“, “AV2”
IF Rs.NOMATCH =False THEN
Debug.Print Rs!MaMH, Rs!TenMH, Rs!Heso
ELSE
Debug.Print “Không có môn học này!”
ENDIF
Rs.Close
ENDSUB
Phạm Thị Kim Ngoan 83
III. Sử dụng các biến đối tượng
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”)
Phạm Thị Kim Ngoan 84
III. Sử dụng các biến đối tượng
Thi hành: EXECUTE
Tên_biến_QD.EXECUTE
Đóng: CLOSE
Tên_biến_QD.CLOSE
Xoá: DELETE

More Related Content

What's hot

Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#
An Nguyen
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien KetTony Nhân
 
Bai 02 thong ke mo ta
Bai 02 thong ke mo taBai 02 thong ke mo ta
Bai 02 thong ke mo tatqphi
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
MasterCode.vn
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Huyen Pham
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Thanh Giảng Lê
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
MasterCode.vn
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
thuhuynhphonegap
 
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
nataliej4
 
Thương mại điện tử - Chương 1: Tổng quan về thương mại điện tử
Thương mại điện tử - Chương 1: Tổng quan về thương mại điện tửThương mại điện tử - Chương 1: Tổng quan về thương mại điện tử
Thương mại điện tử - Chương 1: Tổng quan về thương mại điện tử
Share Tài Liệu Đại Học
 
Chương 2: hệ thống thông tin
Chương 2: hệ thống thông tinChương 2: hệ thống thông tin
Chương 2: hệ thống thông tin
Thạc sĩ Vũ Ngọc Hiếu
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trìnhHuy Rùa
 
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnSlide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
The Nguyen Manh
 
Báo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmBáo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmRiTa15
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
MasterCode.vn
 
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
MasterCode.vn
 

What's hot (20)

Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien Ket
 
Bai 02 thong ke mo ta
Bai 02 thong ke mo taBai 02 thong ke mo ta
Bai 02 thong ke mo ta
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
 
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
 
Thương mại điện tử - Chương 1: Tổng quan về thương mại điện tử
Thương mại điện tử - Chương 1: Tổng quan về thương mại điện tửThương mại điện tử - Chương 1: Tổng quan về thương mại điện tử
Thương mại điện tử - Chương 1: Tổng quan về thương mại điện tử
 
Chương 2: hệ thống thông tin
Chương 2: hệ thống thông tinChương 2: hệ thống thông tin
Chương 2: hệ thống thông tin
 
Giáo trình visual basic
Giáo trình visual basicGiáo trình visual basic
Giáo trình visual basic
 
Do hoa may tinh
Do hoa may tinhDo hoa may tinh
Do hoa may tinh
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnSlide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
 
Báo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmBáo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềm
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
 
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
 

Similar to Bài giảng ACCESS - VBA

Giaotrinh vb
Giaotrinh vbGiaotrinh vb
Giaotrinh vb
zuzuzu123
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Kuli An
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010
Nhat Linh Luong
 
Chuong 3 windows forms
Chuong 3   windows formsChuong 3   windows forms
Chuong 3 windows forms
Harees Seni
 
Báo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptxBáo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptx
QuangSn11
 
ASP.NET basic
ASP.NET basicASP.NET basic
ASP.NET basic
meocon21
 
Về Visual Basic 20 5
Về Visual Basic 20 5Về Visual Basic 20 5
Về Visual Basic 20 5Phong Lữ
 
Hướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicHướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basic
nataliej4
 
Vi du chi tiet giai thich lap trinh gui trong matlab
Vi du chi tiet  giai thich lap trinh gui trong matlabVi du chi tiet  giai thich lap trinh gui trong matlab
Vi du chi tiet giai thich lap trinh gui trong matlabPhạmThế Anh
 
Giáo trình tổng quan về Vb
Giáo trình tổng quan về VbGiáo trình tổng quan về Vb
Giáo trình tổng quan về VbSun Down
 
63 2601
63 260163 2601
63 2601
hamvui1107
 
Giới thiệu chung về plc s7 1200
Giới thiệu chung về plc s7 1200Giới thiệu chung về plc s7 1200
Giới thiệu chung về plc s7 1200
Công ty công nghệ tự động hóa Hoàng Gia
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trìnhLập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
Xuân Thủy Nguyễn
 
Luận văn: Kiểm chứng giao diện phần mềm bằng Event – B
Luận văn: Kiểm chứng giao diện phần mềm bằng Event – BLuận văn: Kiểm chứng giao diện phần mềm bằng Event – B
Luận văn: Kiểm chứng giao diện phần mềm bằng Event – B
Dịch vụ viết bài trọn gói ZALO 0917193864
 

Similar to Bài giảng ACCESS - VBA (20)

Giaotrinh vb
Giaotrinh vbGiaotrinh vb
Giaotrinh vb
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010
 
Lap trinhvba
Lap trinhvbaLap trinhvba
Lap trinhvba
 
Chuong 3 windows forms
Chuong 3   windows formsChuong 3   windows forms
Chuong 3 windows forms
 
Báo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptxBáo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptx
 
ASP.NET basic
ASP.NET basicASP.NET basic
ASP.NET basic
 
Về Visual Basic 20 5
Về Visual Basic 20 5Về Visual Basic 20 5
Về Visual Basic 20 5
 
Hướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicHướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basic
 
Vi du chi tiet giai thich lap trinh gui trong matlab
Vi du chi tiet  giai thich lap trinh gui trong matlabVi du chi tiet  giai thich lap trinh gui trong matlab
Vi du chi tiet giai thich lap trinh gui trong matlab
 
Giáo trình tổng quan về Vb
Giáo trình tổng quan về VbGiáo trình tổng quan về Vb
Giáo trình tổng quan về Vb
 
Bai tap-vb
Bai tap-vbBai tap-vb
Bai tap-vb
 
63 2601
63 260163 2601
63 2601
 
Bon nuoc win_cc
Bon nuoc win_ccBon nuoc win_cc
Bon nuoc win_cc
 
Chuong 09 vb
Chuong 09   vbChuong 09   vb
Chuong 09 vb
 
Giới thiệu chung về plc s7 1200
Giới thiệu chung về plc s7 1200Giới thiệu chung về plc s7 1200
Giới thiệu chung về plc s7 1200
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trìnhLập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
 
Luận văn: Kiểm chứng giao diện phần mềm bằng Event – B
Luận văn: Kiểm chứng giao diện phần mềm bằng Event – BLuận văn: Kiểm chứng giao diện phần mềm bằng Event – B
Luận văn: Kiểm chứng giao diện phần mềm bằng Event – B
 
Vb6 16 (12)
Vb6 16 (12)Vb6 16 (12)
Vb6 16 (12)
 
Chuong2
Chuong2Chuong2
Chuong2
 

Recently uploaded

GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
Điện Lạnh Bách Khoa Hà Nội
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
nvlinhchi1612
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Nguyen Thanh Tu Collection
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
duykhoacao
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
Qucbo964093
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
https://www.facebook.com/garmentspace
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
phamthuhoai20102005
 

Recently uploaded (10)

GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 

Bài giảng ACCESS - VBA

  • 1. Phạm Thị Kim Ngoan 1 Phần 2: VISUAL BASIC FOR APPLICATION (VBA) Chương 1: TỔNG QUAN VỀ VB Chương 2: CÁC KHAI BÁO TRONG VB Chương 3: CÁC CẤU TRÚC ĐIỀU KHIỂN VÀ KIỂU DỮ LIỆU CÓ CẤU TRÚC Chương 4: THỦ TỤC CỦA NGƯỜI DÙNG Chương 5: ĐỐI TƯỢNG VÀ BIẾN ĐỐI TƯỢNG
  • 2. Phạm Thị Kim Ngoan 2 Chương 1: TỔNG QUAN VỀ VBA I. Giới thiệu chung II. Module III. Cấu trúc của Module VI. Tạo và thực hiện các thủ tục V. Một số hiệu ứng khi viết và sửa chữa mã lệnh
  • 3. Phạm Thị Kim Ngoan 3 I. Giới thiệu chung Visual Basic là ngôn ngữ lập trình dùng để ràng buộc các đối tượng trong ứng dụng với nhau thành một hệ thống hợp nhất. Các chương trình của VBA (Visual Basic for Application) được tổ chức và hoạt động trong Access nhằm mục đích xây dựng các ứng dụng phức tạp. Có thể dùng VB để thực hiện các công việc sau: - Làm cho ứng dụng dễ bảo trì hơn - Tạo ra các hàm/thủ tục của người sử dụng để xử lý các thao tác phức tạp mà chưa được MS Access cung cấp sẵn. - Xử lý lỗi theo ý người sử dụng.
  • 4. Phạm Thị Kim Ngoan 4 I. Giới thiệu chung - Tạo hay thao tác với các đối tượng - Thực hiện các thao tác cấp hệ thống : thực hiện một ứng dụng khác, liên kết giữa các ứng dụng. Đặc điểm: - Chương trình của VBA hoạt động chủ yếu theo hướng sự kiện : bấm chuột tại các nút lệnh, di chuyển vào hay ra đối tượng điều khiển của form, report … - Các thủ tục và hàm của VBA nằm rải rác trong các module của form, report hoặc module chung của CSDL và chúng có thể gọi lẫn nhau.
  • 5. Phạm Thị Kim Ngoan 5 II. Module 1. Khái niệm Module: Là tập các tuỳ chọn, các khai báo, các thủ tục cùng được lưu trữ trong một đơn vị chương trình. 2. Phân loại Module: - Module chuẩn: Có thể thi hành bất cứ nơi nào trong ứng dụng. - Module lớp: Các thủ tục định nghĩa trong Module lớp sẽ trở thành các phương thức của đối tượng này. * Mỗi Form/Report đều có thể kết hợp với một Module lớp (Form Module/Report Module), Module lớp này được lưu cùng với Form/Report.
  • 6. Phạm Thị Kim Ngoan 6 III. Cấu trúc của Module 1. Module chuẩn: - Các tuỳ chọn - Các khai báo toàn cục (Public) - Các khai báo cấp module (Dim) - Các thủ tục sử dụng toàn cục - Các thủ tục sử dụng cấp module 2. Module loại: - Các tuỳ chọn - Các khai báo cấp module - Các thủ tục xử lý sự kiện - Các thủ tục sử dụng cấp module
  • 7. Phạm Thị Kim Ngoan 7 Module chuẩn
  • 8. Phạm Thị Kim Ngoan 8 Module loại
  • 9. Phạm Thị Kim Ngoan 9 III. Cấu trúc của Module 3. Cấu trúc một thủ tục: a. Cấu trúc Sub procedure : Sub Tên_thủ _tục ([Các tham số]) Các lệnh End Sub b. Cấu trúc Function procedure : Function Tên_hàm ([Các tham số]) [AS kiểu dữ liệu] Các lệnh Tên_hàm = biểu thức giá trị End Sub c. Cấu trúc thủ tục xử lý sự kiện : Private Sub Tênđốitượng__tênsựkiện ([Các tham số]) Các lệnh End Sub
  • 10. Phạm Thị Kim Ngoan 10 VI. Tạo và thực hiện các thủ tục 1. Thủ tục xử lý sự kiện: Thường là các thủ tục gắn với các điều khiển của Form (nút lệnh, …) đặt trong Module loại - Tạo mới: • Mở Form có điều khiển cần gắc thủ tục ở dạng thiết kế. • Chọn Properties của điều khiển cần gắn thủ tục, chọn ngăn sự kiện (Event) • Chọn sự kiện cần gắn (On Click, …), chọn nút …, chọn Code Builder, MS Access đưa ra khuôn dạng của thủ tục với tên tương ứng, tại vị trí con trỏ: gõ các lệnh cần thực hiện trong thủ tục. - Thực thi: Mở Form, tác động sự kiện vừa gắn lên nút lệnh.
  • 11. Phạm Thị Kim Ngoan 11 VI. Tạo và thực hiện các thủ tục 2. Thủ tục Sub procedure và Function procedure: Đặt trong Module loại hoặc chuẩn. - Tạo mới: Mở màn hình viết mã lệnh, viết thủ tục theo cấu trúc tương ứng. - Thực thi: • Biên dịch cho đến khi không còn lỗi cú pháp Menu Debug → Complie Loaded Modules • Chạy xem kết quả trong khung trực tiếp: Mở mà hình trực tiếp: Menu View → DebugWindow / Immediate Window
  • 12. Phạm Thị Kim Ngoan 12 VI. Tạo và thực hiện các thủ tục Chạy thủ tục: Thủ tục không có tham số: Tên_Module.Tên_thủ_tục Call Tên_Module.Tên_thủ_tục Call Tên_Module.Tên_thủ_tục () Ví dụ: Tinhtoan.Tong Call Tinhtoan.Tong Call Tinhtoan.Tong()
  • 13. Phạm Thị Kim Ngoan 13 VI. Tạo và thực hiện các thủ tục Thủ tục có tham số: Call Tên_Module.Tên_thủ_tục (Các tham số thực sự) Ví dụ: Call Tinhtoan.Tongab(15, 56) Hàm (Function procedure): ? Tên_Module.Tên_hàm () ? Tên_Module.Tên_hàm ? Tên_Module.Tên_hàm (Các tham số thực sự) Ví dụ: ?Tinhtoan.Tong1() ?Tinhtoan.Tong2(25, 35)
  • 14. Phạm Thị Kim Ngoan 14 VI. Tạo và thực hiện các thủ tục Gọi thủ tục từ các thủ tục khác: Thủ tục: Call Tên_Module.Tên_thủ_tục (Các tham số thực sự) Hàm: đặt trong các biểu thức Tên_Module.Tên_hàm (Các tham số thực sự)
  • 15. Phạm Thị Kim Ngoan 15 V. Một số hiệu ứng khi viết và sửa chữa mã lệnh - Tự động xây dựng các phát biểu: Tools -> Options -> Module -> Auto list Members - Thông tin nhanh: Tools -> Options -> Module -> Auto QuickInfo - Tự động kiểm tra cú pháp: Tools -> Options -> Module -> Auto Syntax Check - Di chuyển giữa các thủ tục trong module: Ctrl + Page Down / Ctrl + Page Up
  • 16. Phạm Thị Kim Ngoan 16 Chương 2: CÁC KHAI BÁO TRONG VB I. Các tuỳ chọn II. Các kiểu dữ liệu cơ bản II. Khai báo IV. Các hàm/thủ tục nhập xuất dữ liệu V. Một số hàm / thủ tục của VB
  • 17. Phạm Thị Kim Ngoan 17 I. Các tuỳ chọn Option Explicit: người dùng phải khai báo tường minh các biến Option Compare Binary: phân biệt chữ thường và hoa khi viết chương trình Option Compare Text: phân biệt chữ thường và hoa khi so sánh Option Base n: qui định chỉ số đầu tiên trong kiểu dữ liệu mảng
  • 18. Phạm Thị Kim Ngoan 18 II. Các kiểu dữ liệu cơ bản Kiểu dl Kích thước Phạm vi Byte 1 byte 0 … 255 Boolean 1 byte True/False Integer 2 bytes -32.768 … 32.767 Long 4 bytes -2.147.483.648 … 2.147.483.647 Single 4 bytes -3,402823E+38 …3,402823E+38 Double 8 bytes -1,7976E+308 … 1,7976E+308 Currency 8 bytes -9,223E+14 … 9,223E+14
  • 19. Phạm Thị Kim Ngoan 19 II. Các kiểu dữ liệu cơ bản Kiểu dl Kích thước Phạm vi Date 8 bytes 1/1/100…31/12/9999 Object 4 bytes Các đối tượng String(variable – length) 10 bytes + string length 0 … 231 ký tự String(fixed – length) Length of string 1…65.400 ký tự Variant (with numbers) 16 bytes Như kiểu double Variant (with characters) 10 bytes + string length Như kiểu string có độ dài thay đổi
  • 20. Phạm Thị Kim Ngoan 20 III. Khai báo 1. Khai báo hằng: Public/Private CONST Tên_hằng [AS Kiểu dữ liệu] = Biểu thức giá trị Ví dụ: Const Pi=3.14 Public Const S = “Đây là ví dụ” Private Const so As Integer = 5 2. Khai báo biến: Public/Private/Dim/Static Tên_biến [AS Kiểu dữ liệu] Ví dụ: Public Hoten As String, DTB As Double Private Diachi As String
  • 21. Phạm Thị Kim Ngoan 21 III. Khai báo Phạm vi sử dụng: - Mức thủ tục : Các khai báo bên trong thủ tục. - Mức module : Các khai báo Private Const trong phần khai báo của module. - Mức project : Khai báo Public Tên: - Gồm chữ cái, chữ số và dấu gạch chân, bắt đầu là chữ cái. - Không trùng với từ khoá của Access. - Độ dài không vượt quá 40 ký tự.
  • 22. Phạm Thị Kim Ngoan 22 IV. Các hàm/thủ tục nhập xuất dữ liệu 1. Nhập dữ liệu: hàm InputBox, InputBox$ Cú pháp: INPUTBOX[$](Dòng nhắc [[,tiêu đề] [, giá trị mặc định][,x, y] ]) - Hàm InputBox trả về giá trị Variant - Chức năng : Hiển thị dòng nhắc trong một hộp thoại, đợi nhập liệu và trả về giá trị trong textbox Ví dụ: Nhập 1 số nguyên từ bàn phím và lưu trong biến a Dim a as Integer a = Inputbox(“Nhập a=”, “Nhập số liệu”)
  • 23. Phạm Thị Kim Ngoan 23 IV. Các hàm/thủ tục nhập xuất dữ liệu 2. Xuất dữ liệu: a. Thủ tục Msgbox Cú pháp: MsgBox Dòng thông báo, kiểu hộp thoại, tiêu đề b. Hàm Msgbox Cú pháp: MsgBox (Dòng thông báo, kiểu hộp thoại, tiêu đề) Kiểu hộp thoại: Giá trị cho biết các nút lệnh nào sẽ hiển thị và các biểu tượng sẽ hiển thị trong hộp thoại. Chức năng : Hiển thị một thông điệp trong hộp hội thoại và đợi người sử dụng chọn một nút lệnh. Khác nhau giữa hàm và thủ tục MsgBox : Hàm MsgBox trả về giá trị cho biết đã chọn nút lệnh nào, còn thủ tục thì không.
  • 24. Phạm Thị Kim Ngoan 24 IV. Các hàm/thủ tục nhập xuất dữ liệu * Tham số kiểu hộp thoại gồm 3 thành phần: Nút lệnh nào sẽ hiển thị, kiểu biểu tượng hiển thị, nút ngầm định. - Nút lệnh hiển thị: 0 / vbOnlyOK OK 1 / vbOKCancel OK, Cancel 2 / vbAbortRetryIgnore Abort, Retry, Ignore 3 / vbYesNoCancel Yes, No, Cancel 4 / vbYesNo Yes, No 5 / vbRetryCancel Retry, Cancel
  • 25. Phạm Thị Kim Ngoan 25 IV. Các hàm/thủ tục nhập xuất dữ liệu - Xác định biểu tượng: 0 không 16 / vbCritical Critical (Stop) 32 / vbQuestion Warning query 48 / vbExclamation Warning Message 64 / vbInformation Information
  • 26. Phạm Thị Kim Ngoan 26 IV. Các hàm/thủ tục nhập xuất dữ liệu - Xác định nút ngầm định: 0 / vbDefaultButton1 nút thứ 1 256 / vbDefaultButton2 nút thứ 2 512 / vbDefaultButton3 nút thứ 3 * Giá trị của hàm khi nút lệnh được chọn: 1 OK 4 Retry 2 Cancel 5 Ignore 3 Abort 6 Yes 7 No c. In ra màn hình trực tiếp: Debug.print biểu thức
  • 27. Phạm Thị Kim Ngoan 27 IV. Các hàm/thủ tục nhập xuất dữ liệu Ví dụ: In ra dưới dạng hộp thoại tổng của a+ b (dùng thủ tục) Msgbox “Tổng của a+b=” & a+b, vbOkCancel + vbInformation, “Kết quả” In ra dưới dạng hộp thoại tổng của a+ b có kiểm tra nút lệnh bấm (dùng hàm Msgbox) IF Msgbox (“Tổng của a+b=” & a+b, vbOkCancel+vbInformation, “Kết quả”)= vbOk THEN
  • 28. Phạm Thị Kim Ngoan 28 V. Một số hàm / thủ tục của VBA Các hàm về chuỗi: LTRIM(St) cắt các ký tự trắng bên trái chuỗi RTRIM(St) cắt các ký tự trắng bên phải chuỗi TRIM(St) cắt các ký tự trắng bên phải và bên trái chuỗi LEN(St) độ dài chuỗi LEFT(St,n) lấy n ký tự bên trái chuỗi RIGHT(St,n) lấy n ký tự bên phải chuỗi MID(St,i,n) lấy n ký tự bắt đầu từ vị trí i trong chuỗi STR(n) đổi số thành chuỗi
  • 29. Phạm Thị Kim Ngoan 29 V. Một số hàm / thủ tục của VB LCASE(St) đổi các ký tự trong chuỗi thành chữ thường UCASE(St) đổi các ký tự trong chuỗi thành chữ in Các hàm tính toán: ABS(n) trị tuyệt đối FIX(r) lấy phần nguyên của số thực INT(r) lấy phần nguyên gần nhất và nhỏ hơn r SQR(n) căn bậc 2 của n EXP(n) hàm e mũ n VAL(St) đổi chuỗi thành số Các hàm về ngày, giờ: NOW() lấy ngày giờ của hệ thống DATE() ngày hệ thống TIME() giờ hệ thống
  • 30. Phạm Thị Kim Ngoan 30 V. Một số hàm / thủ tục của VB DATEPART(dt) lấy một phần của ngày/tháng/năm DATEPART(“d”, dt) lấy phần ngày DAY(dt) DATEPART(“m”, dt) lấy phần tháng MONTH(dt) DATEPART(“yyyy”, dt) lấy phần năm YEAR(dt) Các hàm kiểm tra: ISNUMERIC(n) kiểm tra n có phải là một số không? ISDATE(d) kiểm tra d có phải là kiểu ngày không? Chú ý: ‘ dòng chú thích Viết lệnh trên nhiều dòng dùng dấu space và gạch dưới ( _)
  • 31. Phạm Thị Kim Ngoan 31 Chương 3: CÁC CẤU TRÚC ĐIỀU KHIỂN VÀ KIỂU DỮ LIỆU CÓ CẤU TRÚC I. Các cấu trúc điều khiển: 1. Cấu trúc lựa chọn: 2. Cấu trúc lặp: 3. Lệnh Exit: II. Kiểu dữ liệu có cấu trúc: 1. Mảng: 2. Bản ghi:
  • 32. Phạm Thị Kim Ngoan 32 I. Các cấu trúc điều khiển 1. Cấu trúc lựa chọn: a. IF .. THEN Cú pháp1: IF (điều kiện) THEN khối lệnh viết trên cùng 1 dòng Cp2: IF (điều kiện) THEN khối lệnh ENDIF
  • 33. Phạm Thị Kim Ngoan 33 I. Các cấu trúc điều khiển Ví dụ: Cp1: IF a >= b THEN Debug.Print a Cp2: IF a >= b THEN Debug.Print a ENDIF
  • 34. Phạm Thị Kim Ngoan 34 I. Các cấu trúc điều khiển b. IF .. THEN .. ELSE Cú pháp: IF (điều kiện) THEN khối lệnh 1 ELSE khối lệnh 2 ENDIF c. IF .. THEN .. ELSEIF Cú pháp: IF (điều kiện1) THEN khối lệnh 1 ELSEIF (điều kiện2) THEN khối lệnh 2 … ELSE khối lệnh ENDIF
  • 35. Phạm Thị Kim Ngoan 35 I. Các cấu trúc điều khiển Ví dụ: IF a >= b THEN Debug.Print a ELSE Debug.Print b ENDIF Ví dụ: IF (a >= b) and (a >=c) THEN Debug.Print a ELSEIF (b >= a) and (b >=c) THEN Debug.Print b ELSE Debug.Print c ENDIF
  • 36. Phạm Thị Kim Ngoan 36 I. Các cấu trúc điều khiển d. SELECT CASE … END SELECT: Cú pháp: SELECT CASE biểu thức giá trị CASE gtrị1: khối lệnh 1 CASE gtrị2: khối lệnh 2 … CASE ELSE khối lệnh END SELECT
  • 37. Phạm Thị Kim Ngoan 37 I. Các cấu trúc điều khiển Ví dụ: SELECT CASE n CASE 1: Debug.Print “một” CASE 2: Debug.Print “hai” CASE 3: Debug.Print “ba” CASE 4: Debug.Print “bốn” CASE 5: Debug.Print “năm” CASE ELSE Debug.Print “lớn hơn năm” END SELECT
  • 38. Phạm Thị Kim Ngoan 38 I. Các cấu trúc điều khiển 2. Cấu trúc lặp: a. FOR .. NEXT Cú pháp: FOR biến_đếm=giá trị đầu TO giá trị cuối [STEP bước lặp] khối lệnh NEXT biến_đếm Ví dụ: Tính tổng 10 số nguyên dương đầu tiên Tong = 0 FOR i =1 TO 10 [Step 1] Tong = Tong + i NEXT i
  • 39. Phạm Thị Kim Ngoan 39 I. Các cấu trúc điều khiển b. DO WHILE .. LOOP: Cú pháp 1: DO WHILE (điều kiện) khối lệnh LOOP Cú pháp 2: DO khối lệnh LOOP WHILE (điều kiện) Cú pháp 3: WHILE (điều kiện) khối lệnh WEND
  • 40. Phạm Thị Kim Ngoan 40 I. Các cấu trúc điều khiển Ví dụ: Tính tổng 10 số nguyên dương đầu tiên Tong = 0: i =1 DO WHILE (i < =10) Tong = Tong + i : i =i + 1 LOOP Tong = 0: i =0 DO Tong = Tong + i : i =i + 1 LOOP WHILE (i < = 10)
  • 41. Phạm Thị Kim Ngoan 41 I. Các cấu trúc điều khiển c. DO UNTIL … LOOP: Cú pháp 1: DO UNTIL (điều kiện) khối lệnh LOOP Cú pháp 2: DO khối lệnh LOOP UNTIL (điều kiện) 3. Lệnh Exit: Exit Do Exit For Exit Function Exit Sub
  • 42. Phạm Thị Kim Ngoan 42 I. Các cấu trúc điều khiển Ví dụ: Tính tổng 10 số nguyên dương đầu tiên Cp1: Tong = 0: i =1 DO UNTIL (i > 10) Tong = Tong + i : i =i + 1 LOOP Cp2: Tong = 0: i = 0 DO Tong = Tong + i : i =i + 1 LOOP UNTIL ( i > 10)
  • 43. Phạm Thị Kim Ngoan 43 II. Kiểu dữ liệu có cấu trúc 1. Mảng: Khai báo: DIM Tên_mảng (chỉ số1, chỉ số2, …) AS kiểu dữ liệu Truy xuất: Tên_mảng(chỉ số) Ví dụ: Option Base 1 Dim A (10) As Integer, B(3, 4) As Integer Truy xuất đến phần tử thứ 4 của mảng A: A(4) Truy xuất đến phần tử hàng 2, cột 3 của mảng B: B(2, 3)
  • 44. Phạm Thị Kim Ngoan 44 II. Kiểu dữ liệu có cấu trúc Mảng động: Khai báo: DIM Tên_mảng() AS kiểu dữ liệu Thay đổi kích thước: REDIM Tên_mảng(chỉ số1, chỉ số2, …) Ví dụ: Option Base 1 Dim A () As Integer … REDIM A(5) Xóa mảng: Erase Tên_mảng
  • 45. Phạm Thị Kim Ngoan 45 II. Kiểu dữ liệu có cấu trúc 2. Bản ghi: Định nghĩa kiểu: TYPE Tên_kiểu_bản_ghi Thành phần1 AS kiểu dliệu1 Thành phần2 AS kiểu dliệu2 … END TYPE Khai báo: Public/Private/Dim Tên_biến AS Tên_kiểu_bản_ghi Truy xuất thành phần: Tên_biến.Tên_thành phần
  • 46. Phạm Thị Kim Ngoan 46 II. Kiểu dữ liệu có cấu trúc Ví dụ: TYPE Hocsinh Hoten as String Ngaysinh as Date Toan as Single ENDTYPE Khai báo một biến HS kiểu hocsinh Dim HS as Hosinh Truy xuất thành phần Hoten của biến HS HS.Hoten
  • 47. Phạm Thị Kim Ngoan 47 Chương 4: THỦ TỤC CỦA NGƯỜI DÙNG I. Tham biến và tham trị II. Đệ qui III. Thi hành Macro trong VB IV. Kích hoạt các ứng dụng khác V. Gỡ rối mã VB
  • 48. Phạm Thị Kim Ngoan 48 I. Tham biến và tham trị - Truyền theo tham trị(ByVal): các tham số không thay đổi giá trị - Truyền theo tham biến: giá trị các tham số thay đổi nếu thủ tục gọi có câu lệnh là thay đổi giá trị của chúng Ví dụ truyền theo tham trị và tham biến
  • 49. Phạm Thị Kim Ngoan 49 I. Tham biến và tham trị Sub Thamso(ByVal a As Integer, b As Integer) a = a + 1 b = a End Sub ‘---------------------- Sub goi() Dim a As Integer : Dim b As Integer a = 5: b = 7 Call Thamso(a, b) Debug.Print "a=", a Debug.Print "b=", b End Sub
  • 50. Phạm Thị Kim Ngoan 50 II. Đệ qui Trong thủ tục có lời gọi đến chính thủ tục đó Ví dụ thủ tục đệ qui Function Dequi(a As Byte, n As Byte) If n = 0 Then Dequi = 1 Else Dequi = Dequi(a, n - 1) * a End If End Function
  • 51. Phạm Thị Kim Ngoan 51 III. Thi hành Macro trong VB Cú pháp: Docmd.Tên_phương_thức [các tham số] Các phương thức của Docmd có tên và chức năng giống như các thao tác (Action) trong Macro Sub Vedau_Click() Docmd.GotoRecord , , ac First EndSub
  • 52. Phạm Thị Kim Ngoan 52 Thiết kế Form đăng nhập hệ thống, yêu cầu người sử dụng phải nhập vào mật khẩu khi muốn sử dụng CSDL Dim dem As Byte ‘----------------- Private Sub Dongy_Click() If matkhau = "TTTH" Then DoCmd.OpenForm "Giaodien" DoCmd.Maximize ElseIf dem < 3 Then MsgBox "Ban nhap sai roi!" dem = dem + 1 : matkhau = "" matkhau.SetFocus Else MsgBox "Ban da nhap 3 lan" DoCmd.Quit acQuitPrompt End If End Sub
  • 53. Phạm Thị Kim Ngoan 53 Thiết kế Form đăng nhập hệ thống, yêu cầu người sử dụng phải nhập vào mật khẩu khi muốn sử dụng CSDL Private Sub Form_Load() dem = 1 End Sub
  • 54. Phạm Thị Kim Ngoan 54 IV. Kích hoạt các ứng dụng khác 1. Hàm Shell: thực hiện một tập tin chương trình Cú pháp: SHELL (đường dẫn đến tập tin chương trình [,kiểu của sổ]) 2. Lệnh AppActivate: kích hoạt ứng dụng thành ứng dụng hiện hành Cú pháp: APPACTIVATE tên ứng dụng 3. Hàm Sendkey: gửi các phím bấm đến một ứng dụng Cú pháp: SENDKEY chuỗi các phím [,True/False]
  • 55. Phạm Thị Kim Ngoan 55 V. Gỡ rối mã VB Các loại lỗi có thể gặp: Lỗi biên dịch: Nguyên nhân: lệnh sai cấu trúc Hạn chế: chọn “Auto Syntax Check” Lỗi trong lúc thi hành: Nguyên nhân: do cố gắng thực hiện một hành động không thể thực hiện được. Xử lý: dùng phát biểu ON ERROR để đặt bẫy lỗi Lỗi logic của chương trình: kết quả sai Nguyên nhân: sai giải thuật Phát hiện: Chạy từng bước để kiểm tra (Menu Debug -> Step
  • 56. Phạm Thị Kim Ngoan 56 V. Gỡ rối mã VB Ví dụ dùng phát biểu On Error để đặt bẫy lỗi Sub Vedau_Click() On error goto err_VD Docmd.GotoRecord , , ac First err_VD: Exit Sub EndSub
  • 57. Phạm Thị Kim Ngoan 57 Chương 5: ĐỐI TƯỢNG VÀ BIẾN ĐỐI TƯỢNG 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:
  • 58. Phạm Thị Kim Ngoan 58 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)
  • 59. Phạm Thị Kim Ngoan 59 I. Đối tượng và tập hợp 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
  • 60. Phạm Thị Kim Ngoan 60 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: .
  • 61. Phạm Thị Kim Ngoan 61 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
  • 62. Phạm Thị Kim Ngoan 62 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
  • 63. Phạm Thị Kim Ngoan 63 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)
  • 64. Phạm Thị Kim Ngoan 64 III. Sử dụng các biến đối tượng 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()
  • 65. Phạm Thị Kim Ngoan 65 III. Sử dụng các biến đối tượng 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.
  • 66. Phạm Thị Kim Ngoan 66 III. Sử dụng các biến đối tượng 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)
  • 67. Phạm Thị Kim Ngoan 67 III. Sử dụng các biến đối tượng 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
  • 68. Phạm Thị Kim Ngoan 68 III. Sử dụng các biến đối tượng 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
  • 69. Phạm Thị Kim Ngoan 69 III. Sử dụng các biến đối tượng 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
  • 70. Phạm Thị Kim Ngoan 70 III. Sử dụng các biến đối tượng 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
  • 71. Phạm Thị Kim Ngoan 71 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
  • 72. Phạm Thị Kim Ngoan 72 III. Sử dụng các biến đối tượng 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
  • 73. Phạm Thị Kim Ngoan 73 III. Sử dụng các biến đối tượng 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
  • 74. Phạm Thị Kim Ngoan 74 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 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.
  • 75. Phạm Thị Kim Ngoan 75 III. Sử dụng các biến đối tượng 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
  • 76. Phạm Thị Kim Ngoan 76 III. Sử dụng các biến đối tượng 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
  • 77. Phạm Thị Kim Ngoan 77 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 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
  • 78. Phạm Thị Kim Ngoan 78 III. Sử dụng các biến đối tượng 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”
  • 79. Phạm Thị Kim Ngoan 79 III. Sử dụng các biến đối tượng 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
  • 80. Phạm Thị Kim Ngoan 80 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 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.
  • 81. Phạm Thị Kim Ngoan 81 III. Sử dụng các biến đối tượng 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
  • 82. Phạm Thị Kim Ngoan 82 III. Sử dụng các biến đối tượng Ví dụ: In ra màn hình trực tiếp môn học có mã “AV2” SUB InMH_2() Dim Db As Database Dim Rs As Recordset Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE) Rs.Index = “ma” Rs.Seek “=“, “AV2” IF Rs.NOMATCH =False THEN Debug.Print Rs!MaMH, Rs!TenMH, Rs!Heso ELSE Debug.Print “Không có môn học này!” ENDIF Rs.Close ENDSUB
  • 83. Phạm Thị Kim Ngoan 83 III. Sử dụng các biến đối tượng 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”)
  • 84. Phạm Thị Kim Ngoan 84 III. Sử dụng các biến đối tượng Thi hành: EXECUTE Tên_biến_QD.EXECUTE Đóng: CLOSE Tên_biến_QD.CLOSE Xoá: DELETE