access vba 052009

25
ACCESS BASIC

Upload: hung-pham-thai

Post on 29-Jun-2015

1.238 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Access vba 052009

ACCESS BASIC

Page 2: Access vba 052009

04/14/23 2

Access Basic là gì?

• Access basic là ngôn ngữ lập trình dành cho MS Access. Công dụng tương tự như macro nhưng mềm dẽo và linh hoạt hơn.

Page 3: Access vba 052009

04/14/23 3

Lợi ích của access basic là gì?

• Giúp cho ứng dụng dễ bảo trì hơn• Tự tạo ra các hàm nhằm các mục đích khác nhau• Che đi các thông báo lỗi• Truy cập vào các thuộc tính của các bảng• Thực hiện các chức năng tương tự như macro

Page 4: Access vba 052009

04/14/23 4

Các thành phần cơ bản của Access basic

• Biến (variables) và hằng (const).• Các kiểu dữ liệu • Thủ tục/hàm (function/procedure)• Các cấu trúc lựa chọn:

– IF … THEN … ELSE

– SELECT …. CASE

• Các cấu trúc lặp– WHILE

– DO … WHILE

– FOR …. DO …

Page 5: Access vba 052009

04/14/23 5

Biến – Variable

• Dùng để lưu trữ tạm thời các giá trị khi chạy chương trình.

• Tên biến:• Khai báo biến

– DIM tênbiến [AS kiểu_dữ_liệu]

– Ví dụ :• Dim nguyen, n As Integer

• Gán giá trị cho biến– n = 0

– nguyen = n + 1

Page 6: Access vba 052009

04/14/23 6

Hằng - Constant

• Là đại lượng có giá trị không thay đổi trong khi chạy chương trình

• Khai báo: Const hang_so = gia_tri• Ví dụ:

– Pi = 3.14159

– Truong = “Dai hoc An giang”

– Dai = 20

Page 7: Access vba 052009

04/14/23 7

Các kiểu dữ liệu

• Boolean: True/false, Yes/No• Số nguyên: Byte, Integer, Long• Số thực: Single, double• Tiền tệ: Currency• Chuỗi: String• Variant

Page 8: Access vba 052009

04/14/23 8

Cấu trúc lựa chọn: IF … ENDIF

• Cú phápIf <điều kiện> Then

Nhóm lệnh 1

[ ElseIf <điều kiện> ThenNhóm lệnh 2 ]

[ ElseIf ………. ]

[Else Nhóm lệnh n ]

End If

Page 9: Access vba 052009

04/14/23 9

Cấu trúc lựa chọn: SELECT CASE … END SELECT

• Cú phápSelect Case <biểu thức>

Case <giá trị 1>

Nhóm lệnh 1

Case <giá trị 2>

Nhóm lệnh 2

…….

Case <giá trị n>

Nhóm lệnh n

[Case Else Nhóm lệnh n+1 ]

End Select

Page 10: Access vba 052009

04/14/23 10

Cấu trúc lặp: FOR … NEXT

• Cú phápFor <biến chạy> = <giá trị 1> To <giá trị 2> [Step <n>]

Nhóm lệnh

[Exit For]

Next

Page 11: Access vba 052009

04/14/23 11

Cấu trúc lặp: WHILE …. WEND

• Cú phápWhile <điều_kiện>

Nhóm lệnh

Wend

Page 12: Access vba 052009

04/14/23 12

Cấu trúc lặp: Do Until

• Dạng 1: Do Until <điều_kiện>

Nhóm lệnh

Loop

• Dạng 2: Do

Nhóm lệnh

Loop until <điều_kiện>

Page 13: Access vba 052009

04/14/23 13

Cấu trúc lặp: Do While

• Dạng 1:

Do while điều_kiệnNhóm lệnh

Loop

• Dạng 2:

DoNhóm lệnh

Loop While điều_kiện

Page 14: Access vba 052009

04/14/23 14

Lập trình cơ sở dữ liệu

• Đối tượng truy xuất dữ liệu (DAO)• Biến cơ sở dữ liệu • Biến recordset• Các thao tác cơ bản trên recordset

– Duyệt qua các mẫu tin

– Cập nhật dữ liệu

– Thêm dữ liệu

– Xóa dữ liệu

– Thao tác trên nhiều bảng

Page 15: Access vba 052009

04/14/23 15

Đối tượng truy xuất dữ liệu - DAO

• Tập hợp bao gồm lớp các đối tượng có thể dùng để truy cập và xử lý dữ liệu trong các hệ CSDL.

• Phiên bản hiện đang sử dụng: DAO 3.6

• Cách nạp thư viện DAO– Trong cửa số VBA, chọn Tools\Preferences

– Chọn Microsoft DAO 3.6 Object Library

– Click OK.

Page 16: Access vba 052009

04/14/23 16

Biến cơ sở dữ liệu

• Khai báo:– Dim DB as Database

• Gán– Set DB=CurrentDB()

• Đóng:– DB.close

Page 17: Access vba 052009

04/14/23 17

Biến Recordset

• Khai báo:– DIM rs AS RECORDSET

• Gán– SET rs = DB.OpenRecordset(tên_table,

DB_OPEN_TABLE)

• Đóng:– rs.close

Page 18: Access vba 052009

04/14/23 18

Biến recordset

Các thuộc tính của recordset• Name: Cho biết tên của đối tượng mà biến

recordset đang thay thế• AbsolutePosition: Vị trí của mẫu tin hiện hành• RecordCount: Cho biết số mẫu tin của

recordset• BOF: Là True nếu mẫu tin hiện hành đang ở

đầu recordset• EOF: Là True nếu mẫu tin hiện hành đang ở

cuối recordset

Page 19: Access vba 052009

04/14/23 19

Biến recordset

Các phương thức di chuyển mẫu tin hiện hành:

1. MoveFirst: Di chuyển về mẫu tin đầu tiên.

2. MovePrevious: Di chuyển về mẫu tin trước đó. Báo lỗi nếu BOF là true

3. MoveNext: Di chuyển đến mẫu tin kế tiếp. Báo lỗi nếu EOF là true.

4. MoveLast: Di chuyển đến mẫu tin cuối cùng

Page 20: Access vba 052009

04/14/23 20

Biến recordset

Các phương thức khác:

1. Close: Đóng recordset.

2. AddNew: Thêm một mẫu tin trống mới

3. Edit: Cho phép chỉnh sửa mẫu tin hiện hành

4. Update: Lưu lại các chỉnh sửa trên mẫu tin hiện hành (nếu có)

5. Delete: Xóa mẫu tin hiện hành

Page 21: Access vba 052009

04/14/23 21

Các thao tác cơ bản trên Recordset

Duyệt qua các mẫu tin

Dùng vòng lặp kết hợp các phương thức di chuyển mẫu tin MoveFirst, MoveNext, MovePrevious, MoveLast.

Page 22: Access vba 052009

04/14/23 22

Các thao tác cơ bản trên Recordset

Cập nhật dữ liệu

B1: Di chuyển đến record muốn sửa.

B2: Dùng phương thức Edit để chuyển mẫu tin hiện hành sang trạng thái cho phép chỉnh sửa.

B3: Thực hiện chỉnh sửa.

B4: Dùng phương thức Update để lưu lại những thay đổi.

Page 23: Access vba 052009

04/14/23 23

Các thao tác cơ bản trên Recordset

Thêm mẫu tin mới:

B1: Dùng phương thức Addnew để tạo mẫu tin trống mới.

B2: Gán giá trị cho các field của mẫu tin mới.

B3: Dùng phương thức Update để lưu lại những thay đổi.

Page 24: Access vba 052009

04/14/23 24

Các thao tác cơ bản trên Recordset

Xóa một mẫu tin:B1: Di chuyển đến mẫu tin muốn xóa

B2. Dùng phương thức Delete để xóa.

Page 25: Access vba 052009

04/14/23 25

Các thao tác cơ bản trên Recordset

• Sử dụng nhiều biến Recordset