1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Phần 2: VISUAL BASIC FOR APPLICATION (VBA) doc

84 853 16
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tổng Quan Về VBA Trong Visual Basic for Application
Tác giả Phạm Thị Kim Ngoan
Trường học Trường Đại Học Kỹ Thuật Công Nghệ Thành phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tài liệu hướng dẫn
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 84
Dung lượng 372 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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Ư

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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)

Trang 7

Module chuẩn

Trang 8

Module loại

Trang 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]

Trang 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

Trang 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

Trang 12

VI Tạo và thực hiện các thủ tục

Trang 13

VI Tạo và thực hiện các thủ tục

Trang 14

VI Tạo và thực hiện các thủ tục

Trang 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

Trang 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

Trang 18

II Các kiểu dữ liệu cơ bản

Single 4 bytes -3,402823E+38 …3,402823E+38

Double 8 bytes -1,7976E+308 … 1,7976E+308

Trang 19

II Các kiểu dữ liệu cơ bản

String(variable – length) 10 bytes + string length 0 … 2 31 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

Trang 20

III Khai báo

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]

Trang 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ự.

Trang 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”)

Trang 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.

Trang 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ị:

2 / vbAbortRetryIgnore Abort, Retry, Ignore

3 / vbYesNoCancel Yes, No, Cancel

5 / vbRetryCancel Retry, Cancel

Trang 25

IV Các hàm/thủ tục nhập xuất dữ liệu

- Xác định biểu tượng:

16 / vbCritical Critical (Stop)

32 / vbQuestion Warning query

48 / vbExclamation Warning Message

64 / vbInformation Information

Trang 26

IV Các hàm/thủ tục nhập xuất dữ liệu

Trang 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

Trang 28

V Một số hàm / thủ tục của VBACá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

Trang 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

Trang 30

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ú ý:

Trang 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:

Trang 32

I Các cấu trúc điều khiển

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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”

Trang 38

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

FOR i =1 TO 10 [Step 1]

Trang 39

I Các cấu trúc điều khiển

LOOP WHILE (điều kiện)

Cú pháp 3: WHILE (điều kiện)

khối lệnh

Trang 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

Trang 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

Trang 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

Trang 43

II Kiểu dữ liệu có cấu trúc

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)

Trang 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:

Trang 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:

Trang 46

II Kiểu dữ liệu có cấu trúc

Trang 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

Trang 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

Trang 49

I Tham biến và tham trị

Sub Thamso(ByVal a As Integer, b As Integer)

Trang 51

III Thi hành Macro trong VB

Trang 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

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

Trang 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

Trang 54

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]

Trang 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

Trang 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:

Trang 58

I Đối tượng và tập hợpCá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:

Trang 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:

Trang 61

In tên các điều khiển có trong Form Mật khẩu

Trang 62

Liệt kê các bảng có trong CSDL hiện tại

Trang 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)

Trang 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()

Trang 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.

Trang 66

III Sử dụng các biến đối tượngLoạ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

Trang 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

Trang 68

III Sử dụng các biến đối tượng

Trang 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

Trang 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

Trang 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

Trang 72

III Sử dụng các biến đối tượng

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

Trang 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

Trang 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.

Trang 75

III Sử dụng các biến đối tượng

Thêm 1 bản ghi mới:

Trang 76

III Sử dụng các biến đối tượng

Trang 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

Ngày đăng: 23/12/2013, 08:17

HÌNH ẢNH LIÊN QUAN

Liệt kê các bảng có trong CSDL hiện tại - Tài liệu Phần 2: VISUAL BASIC FOR APPLICATION (VBA) doc
i ệt kê các bảng có trong CSDL hiện tại (Trang 62)
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 - Tài liệu Phần 2: VISUAL BASIC FOR APPLICATION (VBA) doc
i ế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 (Trang 77)
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ài liệu Phần 2: VISUAL BASIC FOR APPLICATION (VBA) doc
i ế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 (Trang 80)

TỪ KHÓA LIÊN QUAN

w