1. Trang chủ
  2. » Giáo án - Bài giảng

Microsoft access 2003 tập 3 giáo trình nguyễn thiện tâm đại học quốc gia tp HCM, 2007

208 590 2
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Định dạng
Số trang 208
Dung lượng 6,64 MB

Nội dung

Trang 1

Da DAI HOC QUOC GIA TP HO CHi MINH

TRUONG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

aa TRUNG TAM TIN HOC COs, + 565 _

NGUYEN THIEN TAM (Bién soan)

GIAO TRINH

ecess

gem 003

———— NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA ÍRƯờng DHDL-KTENE TP HỒ CHÍ MINH

THY VIEN

Trang 2

TK 01 TH(V)

Trang 3

Trong thời đại ngày nay, máy tính đã có mặt trong mọt

lĩnh uục xã hội, đặc biệt nó là một cơng cụ hỗ trợ không thể

thiếu trong công tác quản lý Với lĩnh uực xử lý thơng tin úà

các số liệu thì yêu cầu hàng đầu là : Nhanh chóng —

Chính xúc - Lưu trữ gon va tinh Bao m4t cao

Hiện nay có rất nhiều phân mềm cơ sở đữ liệu khúc

nhau, để giúp cho các bạn có thể lựa chọn uùà sử dụng tốt một phân mềm, chúng tôi xin giới thiệu phân mềm quản trị

cơ sở dữ liệu quan hệ — “Microsoft Access 2003” — mét phan mềm kha manh, dé sit dụng uà có nhiều ưu điểm so uới

Microsoft Access 97, 2000 trước đó Trong giáo trình này,

chúng tơi sẽ cung cấp cho các bạn một số hiến thức cơ bản

uê khái niệm cơ sở dữ liệu quan hệ uà một số kỹ năng trong

Microsoft Access để giúp các bạn có thể xây dựng nhanh cúc ứng dụng nhỏ, nhằm phục uụ công tác quản lý của cóc bạn

được tốt hơn Giáo trình này gồm có ba tập:

$ Tp 1: gơm có năm chương (1 - 5), giới thiệu cho các bạn biết uễ khái niệm uề bảng, quan hệ các bảng, các

đối tượng có trong tập tin cơ sở dữ liệu Access, sit dung cơng cụ trình thơng mình để tạo nhanh các đốt tượng

Trang 4

biết thêm uê cách sử dụng cóc hành động trong tập lệnh, cách tạo lập các báo biểu theo nhiều dạng khác

nhau :

® Tập 3: gồm hai chương (9-10), giới thiệu ngôn ngữ lap trình Visual Basic for Applications (VBA), dé cé thé két

các đối tượng trong tập tin cơ sở dữ liệu Access lại

thành một ứng dụng thột sự, làm cho ứng dụng có thể sỞ dụng trên môi trường nhiều người dùng

Dù đã cố gắng biên soạn kỹ, uới mong muốn hỗ trợ các

bạn tiếp cận một công cụ phần mềm tiên tiến, song chốc rằng cuốn sách này không tránh khỏi những sơ sót Chúng tơi mong nhận được nhiều ý kiến đóng góp của các bạn

Cuối cùng xin chúc cúc bạn thành công trong uiệc xây _ dựng các ứng dụng tin học trong công tác quản lý

Trang 5

Chương

NGON NGU VISUAL BASIC FOR

| APPLICATIONS

Trong chương này sẽ hướng dẫn bạn cách sử dụng ngôn ngữ

Visual Basic for Applications (VBA) để điều khiển các biến cố trên

các biểu mẫu hoặc các báo cáo, và cách tạo ra một hàm tùy biến của riêng mình Ngồi ra cũng giới thiệu đến với bạn những khái niệm cơ bản của ngôn ngữ lập trinh Visual Basic for Applications -

VISUAL BASIC FOR APPLICATIONS LÀ GÌ ?

Visual Basic for Applications là ngơn ngữ lập trình cho Miscrosoft Office và các ứng dụng có liên kết với nó Bạn sử

dụng nó y như cách sử dụng tập lệnh để có thể liên kết các

đối tượng trong ứng dụng của bạn lại với nhau nhằm tạo

thành một hệ thống chương trình mạch lạc Điểm khác biệt là

Visual Basic for Applications cung cấp nhiều sức mạnh và mềm dẻo hơn là tập lệnh

Với Microsoft Access, bạn có thể thực hiện nhiều công: việc khác nhau bằng tập lệnh hoặc ngôn ngữ Visual Basic for

Applications Do đó vấn để là khi nào chúng ta sẽ chọn tập

lệnh hoặc sẽ chọn Visual Basic for Applications ? Sự chọn lựa này sẽ tùy thuộc vào công việc của chúng ta là muốn làm cái

Trang 6

ll KHI NAO SU DUNG TAP LENH VA VISUAL BASIC FOR APPLICATIONS

Ban có thé str dung Visual Basic for Applications thay thé

tập lệnh khi bạn thực hiện các công việc sau

Để cho ứng dụng của bạn dễ dàng bảo trì hơn : Bởi vì tập

lệnh là một đối tượng hoàn toàn tách rời riêng lẻ với các biểu mẫu và các báo cáo sử dụng nó, một ứng dụng

chứa một số lớn các tập lệnh trong các biến cố của các

biểu mẫu và các báo cáo sẽ gây cho bạn khó khăn khi

bảo trì Ngược lại, khi bạn sử dụng Visual Basíc for Applications để xử lý các biến cố, các đoạn lệnh này sẽ

được xây dựng ngay bên trong các biểu mẫu và các báo

cáo tại đúng các biến cố đó Nếu bạn có di chuyển các

biểu mẫu hoặc báo cáo sang một tập tin cơ sở dữ liệu Access khác thì các đoạn lệnh này cũng sẽ được mang đi theo cùng

Tạo ra các hàm của riêng mình : Sử dụng Visual Basic for

Applications bạn cũng có thể tạo ra các hàm của riêng

mình dùng để thực hiện các phép tính vượt quá khả năng

của một biểu thức hoặc thay thế một biểu thức quá phức tạp mà bạn đã viết trong ứng dụng của mình Thí dụ, tạo một hàm tính tiền thu lãi cho vay của một hợp đồng dựa theo một số giá trị như số tiền vay, lãi suất vay, ngày vay, và ngày đến trả nợ

Che đi các thông báo lỗi : Khi có một sự cố ngoài ý muốn

xảy ra trong khi ứng dụng của bạn đang vận hành thì Microsoft Access sẽ hiển thị một thông báo lỗi, thông báo

này sẽ làm cho người sử dụng khó hiểu, đặc biệt khi họ

chưa quen sử dụng Microsoft Access Sử dụng Visual

Basic for Applications, bạn có thể phát hiện các lỗi này

khi nó xảy ra và sẽ hiển thị các thông báo lỗi của riêng

Trang 7

Chương 9 : Ngôn ngữ Visual Basic for Applications 3 làm một cái gì khác Chúng ta nén si dung Visual Basic

for Applications dé diéu khiển các lỗi theo ý mình

e Tạo hoặc sửa đổi các đối tượng : Hầu hết, chúng ta có

- thể tạo hoặc sửa đổi các đối tượng bằng cách trực tiếp

mở đối tượng ra ở chế độ thiết kế Trong một vài trường hợp đặc biệt chúng ta phải sử dụng Visual Basic for Applications để thực hiện việc thay đổi thuộc tính của các

đối tượng trên biểu mẫu hoặc báo cáo ngay khi nó đang

được chạy Thí dụ: Trên một biểu mẫu thể hiện các

phịng hiện có trong một khách sạn dưới dạng các nút lệnh (nghĩa là nếu hiện tại khách sạn có 5 phịng thì trên

biểu mẫu có 5 nút lệnh) Tuy nhiên nếu số phịng có thể

tăng hoặc giảm trong bảng danh mục phịng thì các nút

lệnh trên biểu mẫu cũng sẽ thay đổi theo Công việc này

chỉ thực hiện được bằng ngôn nau Visual Basic for

Applications ma thdi

se Thực hiện các hành động cấp hệ thống: Bạn có thể sử

dụng tập lệnh RunApp để có thể kích hoạt một ứng dụng khác chạy trên môi trường Windows hoặc MS-DOS ngay bên trong ứng dụng Microsoft Access, nhưng bạn không

thể sử dụng tập lệnh này để làm nhiều việc khác bên

ngoài Microsoft Access Sử dụng Visual Basic for Applications, bạn có thể kiểm tra xem một tập tin có tổn tại trong hệ thống của bạn không, sử dụng việc trao đổi di liéu déng (DDE — Dynamic Data Exchange) dé lién lac với các ứng dụng khác trên Windows thí dụ như là Microsoft Excel, và gọi đến các hàm trong thư viện liên két déng cla Windows (DLL — Dynamic Link Libraries)

« Truy cập vào các bản ghi (record): Chúng ta sử dụng

Visual Basic for Applications để có thể truy cập vào từng

dòng trong một bảng ghi và thể thực hiện các hành động thêm, sửa, xóa mà khơng cần sử dựng công cụ truy vấn

e _ Gởi các tham số động: Chúng ta có thể gởi vào các tham

Trang 8

một hành động yêu cầu phải có Bên trong các hành

động của tập lệnh, chúng ta cũng có thể sử dụng các

tham số, tuy nhiên chúng ta không thể thay đổi giá trị của

các tham số này khi chúng thực hiện

Sau khi xem qua các lý do để có thể sử dụng Visual

Basic for Applications ở trên, có lẽ bạn sẽ lo lắng không còn

lý do nào nữa để bạn có thể sử dụng tập lệnh Tuy nhiên tập

lệnh vẫn còn được sử dụng trong nhiều ứng dụng bởi vì tập

lệnh cho phép chúng ta dễ dàng thực hiện các công việc như :

mở và đóng biểu mẫu, che và hiện thanh cơng cụ, chúng ta

cịn có thể sử dụng tập lệnh nhanh và dễ dàng là nhờ các

tham số của tập lệnh đã thể hiện rõ ràng bên dưới mà không

cần phải nhớ một cách chính xác sác tham số đó Ngồi ra

chúng ta có thể sử dụng tập lệnh đé thực hiện công việc khởi

tạo các phím nhấn chung (một tập lệnh đặc biệt có tên là

AutoKeys) ,

TẠO MỘT THỦ TỤC BIẾN CO (EVENT PROCEDURE) ĐẦU TIÊN

Thủ tục là các đoạn lệnh mà bạn đã viết bằng ngôn ngữ

Visuai Basic for Applications Bên trong một thủ tục sẽ chứa đựng một dãy các câu lệnh của Visual Basic for Applications

dùng để thực hiện một hành động hoặc tính tốn một giá trị

nào đó Một thủ tục biến cố là một thủ tục sẽ được chạy để

đáp lại cho một biến cố Chúng ta sẽ lấy một thí dụ đơn giản về thủ tục biến cố Trên biểu mẫu này có một hộp văn bản

Trang 9

Chương 9 : Ngôn ngữ Visual Basic for Applications an)

- Khi bạn nhấn vào nút này -

aS Hello : Form

Hình IX.1 : Mâản hình khi mới được mở ra

Thủ tục biến cố sẽ thực hiện và hiển thị câu chào trong hộp văn bản

ha coo a el Hello : Form

Hình IX.2 : Màn hình lúc xuất hiện câu chào khi người sử dụng đã nhấn vào nút lệnh [Say Hello}

Bởi vì tạo ra một thủ tục biến cố là một phần trong công

việc thiết kế biểu mẫu hoặc báo cáo Do đó bước đầu tiên là

chúng ta phải tạo ra biểu mẫu và sắp xếp các điều khiển (control) trên biểu mẫu này (bước này gọi là thiết kế phần

trình bày — layout của biểu mẫu) Trong trường hợp này chúng

ta tạo một biểu mẫu khơng có các bảng hoặc truy vấn làm dữ

Trang 10

(textbox) va mét nut lệnh (command button) Đoạn lệnh của

chúng ta sẽ tham chiếu đến các điều khiển này thông qua

thuộc tính tên (name) của điều khiển, vì thế chúng ta nên ghi

rõ ràng thuộc tính tên của các điều khiển không nên để tên

mặc định do Microsoft Access tao ra nhu Text0 va

Command1 Để dễ sử dụng và rõ ràng chúng ta đặt tên cho

hộp văn bản la Txt_Message va nút lệnh là Cmd_Hello

Với tên của điều khiển rõ ràng sẽ giúp cho chúng ta dễ nhớ và dễ hiểu các điều khiển hơn

SB een

Hình IX.3 : Xem biểu mẫu ở chế độ thiết kế

Sau khi đã tạo xong biểu mẫu và các điều khiển trên đó,

thay đổi một số thuộc tính của các điều khiển, chúng ta sẽ viết thủ tục biến cố đầu tiên trong cửa sổ soạn thảo mã lệnh

(module window)

Thực hiện các hành động sau :

- Trong màn hình thiết kế, nhấn chuột phải trên nút lệnh

Cmd_Hello Trên thực đơn tắt chọn chức năng Build

Event Microsoft Access hiển thị hộp thoại chọn bộ thiết

Trang 11

Chương 9 : Ngôn ngữ Visual Basic for Applications 7 - Trong danh sách các loại thiết kế, chọn Code Builder và nhấn nút OK để xây dựng thủ tục biến cố Microsoft

Access mở ra cửa sổ soạn thảo mã lệnh và tạo một

- khuôn mẫu cho thủ tục biến cố mặc định của đối tượng mà bạn đã chọn trong màn hình thiết kế, trong trường

hợp này là thủ tục biến cố Click Khuôn mẫu cho thủ tục

biến cố Click của nút Cmd_Hello được thể hiện minh hoa bén dudi

Cửa sổ soạn thảo mã lệnh

POM ly (8i im _

boolean Compare Database Option Explicit

Private Sub Cmd_Hel lo Cl ick {) End Sub

Hình IX.4 : Cửa sổ soạn thảo bộ mã lệnh

- Đưa vào các đoạn lệnh cần thiết vào giữa hai câu lệnh

Sub và End Sub Chúng ta sẽ đưa vào một lệnh gán

chuỗi văn bản cần thể hiện vào trong hộp văn bản

Txt_Message = "Hello the World !"

Trang 12

Sau khi bạn lưu lại, Microsoft Access sẽ tạo ra một lệnh

tại biến cố On Click của nút lệnh Cmd_Hello có tên là [Event

Procedure]

Từ bây giờ nút lệnh Cmd_Hello đã có một

thủ tục biến cố được kết vào nó

Hình IX.5 : Tạo thủ tục biến cố cho nút lệnh

Sau khi bạn đã viết xong một thủ tục biến cố đầu tiên, lúc

bây giờ bạn đã có thể chạy nó được rồi Để làm điều này, bạn phải mở biểu mẫu sang chế độ hiển thị (Form View) và khi đó

nhấn vào nút lệnh Say Hello để cho thủ tục biến cố được thực

Trang 13

Chuong 9 : Ngén ng@ Visual Basic for Applications 9

IV LÀM VIỆC VỚI BỘ MÃ LỆNH CỦA BIỂU MẪU HOẶC BÁO CÁO

IV.1 Tạo mới hoặc sửa đổi thủ tục biến cố

Theo thí dụ trên chỉ cho chúng ta cách tạo ra một thủ tục

biến cố nhanh, đơn giản bằng cách chọn lệnh Build Event

trong thực đơn tắt ngay tại điều khiển đó Ngồi ra Microsoft

Access còn cung cấp cho chúng ta nhiều cách để xây dựng hoặc sửa đổi các thủ tục biến cố Sau đây là một vài cách: « Mở biểu mẫu hoặc báo cáo và cửa sổ soạn thảo mã lệnh

cùng một lúc:

Trong cửa sổ cơ sở dữ liệu, chọn biểu mẫu hoặc báo cáo

và sau đó nhấn vào biểu tượng mã lệnh (Code) 8:

trong thanh công cụ Database

e Tạo hay mở bất kỳ thủ tục biến cố nào:

Mở biểu mẫu hay báo cáo ra ở chế độ thiết kế

Cho hiển thị bảng thuộc tính bằng cách nhấn chuột phải tại các vị trí của biểu mẫu hay báo cáo (tại các

điều khiển, phân đoạn) hoặc chọn View > Properties

trên thực đơn

Trong bảng thuộc tính chọn trang Event

Chọn biến cố nào đó cho thủ tục biến cố mà chúng ta

muốn tạo hay sửa đổi trong danh sách các biến cố

Trang 14

Chương 9 : Ngôn ngữ Visual Basic for Applications 10

Khi nhấn vào để tạo mới hay sửa đổi thủ tục biến cố

N00) 1010211441 0N) g NI

Hình IX.6 : Mở cửa sổ soạn thảo bộ mã lệnh để xem hoặc sửa đổi

các câu lệnh

Nếu như biến cố này đã có một thủ tục biến cố rồi thì Microsoft Access sẽ mở cửa sổ soạn thảo mã lệnh ra và cho

hiển thị nội dung hiện có của thủ tục biến cố này Ngược lại, nếu biến cố này rỗng (chưa có gì) thì Microsoft Access hiển thị

hộp thoại chọn bộ thiết kế (Choose Builder) Khi đó nếu muốn xây dựng thủ tục biến cố thì chúng ta chon Code Builder va

khi đó cửa sổ soạn thảo mã lệnh sẽ xuất hiện IV.2 Viết các lệnh bên trong thủ tục biến cố

Viết các lệnh trong cửa sổ soạn thảo mã lệnh thì hoàn toàn cũng giống như bất kỳ một phần mềm soạn thảo văn bản đơn giản nào (NotePad, Nc) Vẫn có hiển thị con nháy cho chúng ta biết vị trí hiện hành của chữ mà chúng ta sẽ gõ vào, vẫn có thể sao chép, di chuyển, xóa các câu lệnh Tuy nhiên

khi bạn mới sử dụng cửa sổ soạn thảo mã lệnh, bạn sẽ có

Trang 15

Chương 9 : Ngôn ngữ Visual Basic for Applications 11

Câu lệnh được xây dựng một cách tự động: Khi bạn gõ vào

một chút ít thành phần câu lệnh Visual Basic for

Applications, Microsoft Access sẽ tự động dò tìm và đưa ra - danh sách các chọn lựa thích hợp cho các thành phần còn lại của câu lệnh mà chúng ta dang gõ Thí dụ khi chúng ta

đang sử dụng một điều khiển trên biểu mẫu có kiểu là văn

bản (textbox) thì khi đó Microsoft Access sẽ hiển thị ra

một danh sách các thuộc tính và biến cố mà điều khiến đó

Access nhận ra

= Txi Message vị BeforeUpdate

—— Khi bạn gõ vào tên của một đối tượng và Microsoft

Option Compare Database -

Option Explicit Txt_Message End Sub - g°l g# AfterUpdate e& AllowAutoCorrect @& Application = eG AsianLineBreak -” ‘ga! AutoLabel e&! AutoTab

Private Sub Txt Message_BeforeUpdate (Canc

một danh sách xuất hiện chứa các phương ~~ thức và thuộc tính của đối tượng

Hình IX.7 : Cửa sổ soạn thảo bộ mã lệnh hỗ trợ xây dựng các lệnh

Trang 16

Để cho cậu lệnh được đầy đủ chúng ta có thể chọn vào

một trong thành phần trong danh sách này hoặc tiếp tục gõ

tiếp câu lệnh Danh sách này sẽ mất đi khi ta nhấn phím ESC » Xem thơng tin nhanh: Khi bạn gõ vào tên một thủ tục hoặc

một phương thức, một lời mách (tip) sẽ tự động hiển thị

danh sách tham số (nếu có) cần thiết của một thủ tục hoặc cú pháp của một thủ tục

Ì ™, db? - form Hello (Code) Form +] [escse

Option Compare Database Option Explicit

Private Sub Form_Close()

End MsgBox(Prompt [Buttons As VoMsgBoxStyle = vbOkKOnhy, [726], [HelpFiid, (Contexay 1] As VoMsgBoxResult

Ly

we Ee |

Hình IX.8 : Cửa sổ soạn thảo bộ mã lệnh hỗ trợ tra cứu nhanh cú pháp của một lệnh/hàm

© Tự động kiểm tra cú pháp: Khi bạn di chuyển con nháy

sang một dòng mới, Visual Basic for Applications tự động

kiểm tra cú pháp của dòng lệnh hiện hành và sẽ hiển thị thơng báo lỗi nếu tìm thấy

© - Kỹ thuật kéo thả: Nếu bạn muốn di chuyển các dòng lệnh

từ một vị trí này sang một vị trí khác trong một cửa sổ soạn thảo mã lệnh hoặc qua lại giữa các bộ mã lệnh

(moduie), bạn không cần thiết phải thực hiện động tác sao

chép và dán ra Chỉ cần chọn các đoạn lệnh cần muốn di chuyển sau đó nắm kéo sang vị trí mới

© Khơi phục các hành động: Biểu tượng Undo Eg để có

khơi phục lại các hành động mà chúng ta đã thực hiện trong khi soạn thảo bộ mã lệnh Với nút lệnh này bạn có

Trang 17

Chương 9 : Ngôn ngữ Visual Basic for Applications 13

IV.3 Di chuyển qua lại giữa các thủ tục

Khi chúng ta đang viết các lệnh trong một thủ tục, chúng ta có thể di chuyển qua lại các thủ tục bên trong một cửa sổ soạn thảo mã lệnh bằng cách nhấn các tổ hợp phím Ctri+Page Down va Ctrl+Page Up Hon thế nữa, chúng ta có thể chọn đối tượng và các thủ tục hoặc biến cố trên các hộp đối tượng và hộp thủ tục

- Hộp đối tượng: Hiển thị tên của đối tượng được chọn Chọn mũi tên bên phải của hộp đối tượng để xem danh sách tất cả các đối tượng có liên quan đến biểu mẫu, sau đó chọn một đối tượng trong danh sách này

- — Hộp thủ tục: Hiển thị tên của thủ tục hiện hành tương

ứng với đối tượng bên hộp đối tượng Tương tự như hộp đối tượng, chúng ta có thể chọn một biến cố để tạo thủ tục biến cố cho đối tượng tương ứng Trong danh sách

các thủ tục này nếu biến cố nào đậm thì tại đó bạn đã tạo thủ tực biến cố rồi

db1 Form_Hello (Code) _ [Cmad_neno = Click Ỷ |

Option Compare Datanase nan Option Explicit Enter

Exit Private Sub Cmd_Hello_C1lilcotFocus

Txt_Hessage = "HelL1O HỘP Ai

End Sub KeyPress KeyUp LostFocus MouseDown _—_ MouseMove 7“ MouseUp

V_—~ Chọn các nút để xem một hoặc nhiều thủ tục tại

một thời điểm

Hình IX 9 : Cửa sổ soạn thảo bộ mã lệnh cho phép xem cùng lúc

Trang 18

Với cửa sổ soạn thảo mã lệnh, chúng ta có thể xem một

thủ tục hoặc tất cả các thủ tục trong một biểu mẫu bằng các

nút Procedure View hay Full Module View bên dưới cửa sổ

Soạn thảo mã lệnh

IV.4 Sử dụng các điểm đánh dấu (Bookmark)

Khi làm việc với một ứng dụng lớn, thật dễ dàng để mất

đi các vị trí quan trọng cần xem khi chúng ta di chuyển qua lại

giữa các cửa sổ soạn thảo bộ mã lệnh hoặc thủ tục

Để giữ lại các vị trí trong các thủ tục mà chúng ta đã đi

qua nhằm sau này cần quay lại nhanh thì chúng ta cần phải tạo ra các điểm đánh dấu (bookmark) Để tạo điểm đánh dấu

cho dòng hiện tại chúng ta vao thyc don Edit > Bookmarks >

Toggle Bookmark Một khối hình chữ nhật màu xanh sẽ xuất hiện phía bên phải dòng lệnh hiện hành Muốn bỏ dấu điểm

đánh dấu này chúng thực hiện lại y như bước trên

[— Tao diém đánh dấu tại một dòng lệnh để di chuyển qua lại

nhanh hơn nh Thu_vien Fran es) l es

_- (Genera ‘=| [Closeonject

Function CloseObject (strContainerName As String) ~Ỉ

‘close open database objects

Dim dbs As Database, ctr 4s Container Dim intX ds Integer |

| Set dbs = CurrentDb

Set ctr = dbs Containers (strContainerNare}

Hình IX.10 : Của sổ soạn thảo bộ mã lệnh hiển thị các dòng lệnh

Trang 19

Chương 9 : Ngôn ngữ Visual Basic for Applications 15

Để di chuyển nhanh qua lại giữa các điểm đánh dấu đã

tạo chúng ta thực hiện:

_ Edit > Bookmark — Next/Previous Bookmark

_ Khi không muốn sử dụng các điểm đánh dấu nữa thi

chúng ta có thể xóa tất cả các điểm đánh dấu đã tạo trước

đó:

Edit —› Bookmark —› Clear All Bookmarks

TẠO HÀM ĐẦU TIÊN

Nếu chúng ta có thưởng sử dụng một biểu thức tính tốn

giống nhau cho nhiều biểu mẫu hay báo cáo Và biểu thức

này tương đối phức tạp thì chúng ta nên xảy dựng một hàm chung để tại một vị trí nào đó mà bất kỳ biểu mẫu hoặc báo

cáo đều có thể sử dụng chung được Khi viết một hâm chung

này có các điểm thuận lợi như sau :

e - Chắc rằng mỗi lần tính toán giá trị của các biểu mẫu

giống nhau hoàn tồn khơng bị sai lệch

e - Nếu cần thay đổi nào đó thì có thể quay lại sửa tại một

điểm mà thôi

e Khi thực hiện các phép tính phức tạp hoặc các điều kiện ràng buộc phức tạp thì chúng ta có thể sử dụng các cấu trúc điều khiển If, Select Case mot cach

thuận tiện

e _ Có ghi chú rõ ràng trong cơng việc mình đã làm bằng

ký tự nháy đơn (9

Chúng ta chọn một thí dụ đơn giản là viết một hàm kiểm tra xem một biểu mẫu hiện tại có đang được hiển thị hay là

Trang 20

V.1 Tạo mới một hàm

Trong cửa sổ cơ sở dữ liệu chọn đối tượng làm việc là bộ mã lệnh (modules) chọn nút New để tạo mới một bộ mã lệnh

chuẩn (standar module)

e Trong cửa sổ soạn thảo mã lệnh Chọn thực đơn:

Insert — Procedure

° Ghi vào tên của hàm muốn tạo mới, chọn nút OK,

Tên hàm muốn tạo mới

ladd Procedure Loại hàm hoặc thủ tục

Hình IX.11 : Cửa sổ cho phép ghi tên hàm/thủ tục được tạo mới e - Thực hiện các phép tính tốn trong hàm thông qua các

Trang 21

Chương 9 : Ngôn ngữ Visual Basic for Applications 17

:*; db1 - Thu_vien (Code) ee x iBIxƒ

~ Ì(General) 2| jlsLoaded hs xỊ

Function IsLoaded(strFrmName As String) As Boolean 2l

‘Kiem tra xem mot bieu mau co hiến thi khong

‘Const conFormDesign = 0

Dim intX As Integer IsLoaded = False

For intX = 0 To Forms.Count - 1

If Forms (intX) FormNeme = strFrmName Then ue If Forms(ints).CurrentView <> conFormbesign Then ˆ

IsLoaded = True Exit Function - End If End If Next End Function

=F fees Hình IX.12 : Cửa sổ soạn thảo bộ mã lệnh

V.2 Biên dịch thủ tục hoặc hàm

V.3

Sau khi viết xong các đoạn lệnh tính toán trong hàm, chúng ta cần biên dịch lại để Microsoft Access có thể phát

hiện ra các sai sót ngồi ý muốn trong khi viết Chúng ta có

thể thực hiện một trong các chức nang sau: Debug > Compile

Microsoft Access sé bién dich tất cả các thủ tục trong tập tin cơ sở dữ liệu của Access Công việc này sẽ mất một vài

phút nếu bên trong tập tin cơ sở dữ liệu của Access có khá

nhiều các bộ mã lệnh Nếu trong quá trình biên dịch xảy ra lỗi

thì hệ thống dừng lại và sẽ thông báo lỗi cho chúng ta biết

dòng lệnh nào chứa lỗi và để chúng ta sửa chữa Sử dụng các hàm

Trang 22

e _ Trong các thủ tục hoặc các hàm khác

e Nhu la một biểu thức tính tốn được định nghĩa trong một

truy vấn, một điều khiển trên biểu mẫu hoặc bao cao e Như là một điều kiện cho truy vấn hoặc tập lệnh

Thí dụ sau đây chúng ta sử dụng hàm IsLoaded để kiểm tra xem một biểu mẫu có mở ra chưa, với tên biểu mẫu sẽ do

người sử dụng đưa vào thông qua một điều khiển hộp văn bản trên một biểu mẫu

Nhập tên biểu mẫu muốn kiểm tra

: = Kiem_tra: Form

r Panis

Chon nut để kiểm tra biểu mẫu có mở chưa

Hình IX.13 : Màn hình dùng kiểm tra một biểu mẫu đã mô hay chưa,

có sử dụng đến hàm IlsLoaded

Trước tiên chúng ta phải xây dựng các điều khiển trên

biểu mẫu và đặt tên cho chúng rõ ràng, dễ hiểu Hộp văn bản để nhập tên biểu mẫu muốn kiểm tra có tên là Txt_Frmname, nút lệnh để thực hiện việc kiểm tra có tên là Cmd_Check

Trong biến cố Click của nút lệnh Cmd _Check chúng ta sẽ

_ gọi đến hàm IsLoaded, tuy nhiên để sử dụng hàm IsLoaded

thì chúng ta sẽ đưa vào cho hàm này một tham số chính là tên

Trang 23

Chương 9 : Ngôn ngữ Visual Basic for Applications 19

VI

khiển Txt_Frmname dùng làm tham số cho hàm IsLoaded như

sau:

eens) ae

¿¿|Cmd_Check wỊ: |JCnek Private Sub Cmd_Check_Click{)

Dim s_rlt As String

If IsLoaded(Txt_Frmname) Then

s rlt = "Bieu mau hien dang co mo”

Else

s_rit = "Bieu mau chua duoc mo” End If

MsgBox 3 _ rit, vbExc lamation

End Sub

[Ed Hình IX.14 : Cửa sổ soạn thảo bộ mã lệnh hiển thị các câu lệnh dùng

trong thủ tục biến cố Click của nút Cmd_ Check

CÁC NGUYÊN TẮC CƠ BẢN TRONG NGÔN NGỮ VISUAL BASIC FOR APPLICATIONS

Trong một ứng dụng đơn giản, bạn cần sử dụng Visual

Basic for Applications để tạo ra các thủ tục biến cố và các

hàm đơn giản Tuy nhiên nếu các ứng dụng của bạn trở nên

lớn hơn và rắc rối hơn thì khi đó bạn phải biết vận dụng ngôn

ngữ Visual Basic for Applications một cách có hiệu quả Trong

phần này sẽ giúp bạn các qui tắc cơ bản cho việc viết các

doan lénh Visual Basic for Applications trong Microsoft Access

VI.1 Các khái bộ mã lệnh chuẩn (Standard Module) va bo ma

lệnh lớp (Class Module)

Chúng ta lưu trữ các đoạn lệnh Visual Basic for

Applications trong cơ sở dữ liệu Microsoft Access Bộ mã lệnh

Trang 24

Cơ sở dữ liệu của chúng ta có thể chứa hai loại bộ mã

lệnh :

- Bộ mã lệnh chuẩn: Chúng ta sử dụng bộ mã lệnh chuẩn

để chứa các đoạn lệnh mà bạn có thể muốn chạy tại bất

kỳ vị trí nào trong ứng dụng của bạn Chúng ta có thể gọi là các thủ tục toàn cuc (public procedure) trong các bộ

mã lệnh chuẩn

Để tạo ra một bộ mã lệnh chuẩn mới, chúng ta có thể

thực hiện

Chọn thực đơn: Insert — Module Hoặc trên cơ sở dữ

liệu chúng ta chọn đối tượng làm việc Modules sau đó nhấn nút vào New

Danh sách các bộ mã lệnh chuẩn

tha db1-: Database (Access file In

fp |lsLoaded vf :

Function IsLoaded (str¥FrmNane = 1

‘Kiem tra xem mot bieu me

Const conFormbesign = 0 -

Dim intX As Integer zy

iv TsLoaded = False

Pater Khi eee ee T

Hình IX.15 : Cửa sổ hiển thị các bộ mã lệnh chuẩn

- Bộ mã lệnh lớp: Chúng ta sử dụng bộ mã lệnh lớp để có

thể tạo các đối tượng mới của riêng mình Các thủ tục và

hàm mà chúng ta định nghĩa trong một bộ mã lệnh lớp sẽ

trở thành các phương thức của đối tượng Các thuộc tính

Trang 25

Chương 9 : Ngôn ngữ Visual Basic for Applications 21

Property Let, Property Set sẽ trở thành các thuộc tính của

đối tượng

Để tạo mới một bộ mã lệnh lớp, chúng ta có thể thực hiện

Chọn thực đơn: Insert —> Class Module

Mỗi biểu mẫu và báo cáo trong cơ sở đữ liệu của chúng

ta có thể chứa đựng các bộ mã lệnh liên kết với nó Các bộ mã lệnh này cũng là các bộ mã lệnh lớp, nhưng chúng ta không thể lưu chúng tách rời ra khỏi các báo cáo hoặc các biểu mẫu mà chúng thuộc vào bên trong đó Bộ mã lệnh lớp có liên quan với một biểu mẫu thì được sử dụng một cách hữu hiệu nhất bởi vì chúng ta có thể sử dụng nó để tạo ra nhiều trường hợp đặc biệt của một biểu mẫu

Thông thường, chúng ta sử dụng bộ mã lệnh của biểu

mẫu hoặc báo cáo để chứa các thủ tục biến cố có liên quan

đến biểu mẫu hoặc báo cáo đó Mỗi bộ mã lệnh cũng có thể

chứa các thủ tục khác mà thuộc vào bên trong biểu mẫu hoặc

báo cáo

Bộ mã lệnh của báo cáo hoặc của biểu mẫu là một phần của báo cáo hoặc biểu mẫu Do đó, khi sao chép biểu mẫu hoặc báo cáo sang một tập tin cơ sở dữ liệu Access khác thì tự động bộ mã lệnh sẽ đi theo cùng với nó Khi chúng ta xóa đi một biểu mẫu hoặc báo cáo thì các bộ mã lệnh bên trong

nó cũng hiển nhiên bị xóa theo

VI.2 Các thành phần trong bộ mã lệnh

Một bộ mã lệnh có thể chứa đựng những thành phần sau:

- — Các khai báo: Là các câu lệnh dùng định nghĩa các biến, hằng, loại dữ liệu do người dùng định nghĩa

- — Thủ tục biến cố: Là các thủ tục tại các biến cố của biểu crs _— INGA mer eres áo cáo hoặc các biến cố của các điều khiển

TRƯƠNG 98 ung đc thực hiện khi biến cố đó xảy ra, ví dụ như

| | TH MIỄN! ụng nhấn chuột (click) trên nút lệnh Các

Trang 26

thủ tục biến cố này sẽ được cất giữ ngay trong biểu mẫu

hoặc báo cáo tương ứng

- _ Thủ tục chung (general procedure) : Là các thủ tục mà

không trực tiếp liên quan đến một đối tượng hoặc một

biến cố nào cả Chúng ta có thể tạo các thủ tục chung này bên trong một bộ mã lệnh chuẩn hoặc bộ mã lệnh lớp Các thủ tục chung này có thể là một thủ tục, hoặc

một hàm VI.3 Thủ tục biến cố

Khi Microsoft Access nhận thấy có một biến cố xảy ra trên biểu mẫu, báo cáo, hoặc điều khiển, nó sẽ tự động thi hành các thủ tục biến cố đã tạo cho đối tượng và biến cố đó Nếu chúng ta muốn thực hiện một số các hành động nào đó để đáp lại một biến cố đặc biệt nào thì chúng ta phải đưa vào các đoạn lệnh cần thiết vào trong một thủ tục biến cố

Khi chúng ta tạo một thủ tực biến cố, Microsoft Access sẽ

tự động tạo cho chúng ta khuôn mẫu lệnh cho biến cố và đưa

nó vào trong bộ mã lệnh của biểu mẫu hoặc báo cáo Tên của một thủ tục biến cố dùng cho biểu mẫu hoặc báo cáo

được kết hợp bằng từ “Form” hoặc “Report, dấu “_” và tên của biến cố đó Thí dụ như nếu khi đóng một biểu mẫu lại chúng ta cần xử lý một số hành động nào đó thì các hành động này sẽ đưa vào trong biến cố đóng biểu mẫu, chúng ta có thể sử dụng thủ tục biến cố Close của biểu mẫu khi đó tên thủ tục biến cố Form_Close

Đối với một thủ tục biến cố của điều khiển cũng qui định như thế Thí dụ, nếu chúng ta có một nút lệnh tên là Cmd_Close dùng để đóng biểu mẫu lại Khi người dùng nhấn vào nó thì tự động nó sẽ đóng biểu mẫu lại, chúng ta sẽ sử dụng thủ tục biến cố Click của nút lệnh này khi đó thủ tục

biến cố có tên Cmd_Close_Click Nếu tên các điều khiển

Trang 27

Chương 9 : Ngôn ngữ Visual Basic for Applications 23

VI.4

thì khi tạo ra các thủ tục biến cố thì Microsoft Access sẽ thay

thế các ký tự đó bằng ký tự “_”

Lưu ý: Trong trường hợp sau khi đã viết xong các đoạn lệnh trong một thủ tục biến cố của một điều khiển và đã thực hiện

kiểm tra đúng, nhưng sau đó nếu vì một lý do nào đó mà

chúng ta quay lại sửa đổi tên của điều khiển thì cẩn thận thủ

tục biến cố đó khơng cịn đúng cho điều khiển nữa Tuy nhiên các lệnh bên trong biến cố vẫn còn được lưu trong bộ mnã lệnh

của biểu mẫu, để cho đúng chúng ta phải di chuyển các đoạn

lệnh vào đúng thủ tục biến cố của tên điều khiển mới thay

đổi

Tóm lại, trong Microsoft Access có hai dạng thủ tục biến

cố:

<FornvReport>_<Tên biến cố>

<Tên điều khiển>_<Tên biến cố>

Thủ tục chung

Microsoft Access sẽ tự động thi hành các thủ tục biến cố

khi một biến cố đó xảy ra Ngược lại một thủ tục dùng chung

chỉ được thi hành khi nào chúng ta gọi đến nó Thí dụ hàm là một thủ tục chung

Lý do mà chúng ta tạo ra các thủ tục chung là để tạo ra

các chức năng của riêng mình nhằm tự động tính tốn một số cơng việc thường xuyên cần thực hiện Một lý do khác nữa là

_ chúng ta muốn nhiều thủ tục biến cố khác nhau có thể cùng

dùng chung một hành động Một chiến lược lập trình tốt là đặt

tất cả các đoạn lệnh chung trong một thủ tục chung khi đó các thủ tục biến cố chỉ việc gọi đến nó khi muốn sử dụng

Điều này sẽ tránh được các đoạn lệnh trùng lặp lại và giúp

cho chúng ta — những người lập trình dễ bảo trì hơn

Chúng ta có thể tạo thủ tục chung trong các bộ mã lệnh

Trang 28

trí nào trong ứng dụng thì chúng ta phải đặt nó tại vị trí bộ mã

lệnh chuẩn Nếu một thủ tục chung chỉ được sử dụng trong

duy nhất một biểu mẫu hoặc báo cáo thì chúng ta nên đặt nó ngay trong bộ mã lệnh của biểu mẫu hoặc báo cáo

VI.5 Tên mặc định và tầm ảnh hưởng của các loại thủ tục

Function Tén ham (Cac tham s6) As Kiểu di

Các lệnh

End Function

“Mitta | `” TênthỈiehỏáehm — | Có ảnh hưởng

Biến cố của | Private Sub Form_Tên biến cố() Tại biến cố của biểu

biểu mẫu Các lệnh mẫu

End Sub

Biến cố của | Private Sub Tân diều khiển_Tên biến cố() Tại biến cố của điều

End Sub

Bộ mã lệnh | Sub Tên thủ tục(Các tham số) Phụ thuộc vào kiểu của ứng Các lệnh của thủ tục hay

dụng hoặc hàm là Public hay

biểu mẫu End Sub Private mà nó có

ảnh hưởng toàn cục hay cục bộ

VỊ.6 Tạo và gọi các thủ tục

Trong phần này sẽ giải thích cú pháp giúp chúng ta tạo ra các hàm hoặc thủ tục và gọi thực hiện chúng trong ứng dụng

Khái niệm thủ tục trong Microsoft Access có thể là một thủ tục

con (Sub procedure) hoặc một thủ tục hàm (Function procedure)

s Thủ tục con: thực hiện các hành động nhưng không trả

về một giá trị nào đó và khơng thể dùng trong các biểu

Trang 29

Chương 9 : Ngôn ngữ Visual Basic for Applications 25 thức Thủ tục con có thể nhận các tham số vào Một thủ

tục biến cố là thủ tục con được gắn vào với các biểu mẫu

hoặc báo cáo

« ˆ Thủ tục hàm: trả về một giá trị, chẳng hạn như kết quả

của một phép tính Vì chúng sẽ trả về các giá trị, do đó

thủ tục hàm có thể sử dụng trong các biểu thức Giống

như thủ tục con, thủ tục hàm cũng có thể nhận tham số vào Thí dụ chúng ta có thể viết một hàm trả về ngày cuối của một tháng khi gởi vào một ngày bất kỳ

« = Cú pháp khai báo thủ tục:

[Public | Private] [Static] Sub Tên Thủ tục ([Tham số]! <Lệnh thực hiện>

End Sub trong đó:

+ Lệnh thực hiện: dãy các câu lệnh Visual Basic for Applications mà chúng ta muốn thí hành khi thủ tục

hoặc hàm được gọi

+ Tham số: danh sách các tham số gởi vào để có giá trị

cần cho thủ tục dùng tính toán bên trong

e Cú pháp khai báo các tham số trong thủ tục/hàm

[ByVal | ByRef] <tén bién> As kiểu di [= giá trị mặc định] Từ khóa Dùng mô tả ByVal Tham số được truyền theo giá trị

ByRef Tham số được truyền theo địa chỉ (Mặc định)

Tên biến Tên biến truyền vào thủ tục

Kiểu dl Kiểu dữ liệu của biến có thể là : Số, chuỗi, ngày

Giá trị mặc định Là một giá trị cụ thể được gán vào tham số trong trường hợp tham số gởi vào khơng có giá trị

se _ Cú pháp gọi một thủ tục

Trang 30

hoặc Call Tên thủ tục ( tham s61, tham s62, .)

Thí đụ: Tạo một thủ tục phát ra nhiều tiếng beep, tham số nhận vào sẽ là số lần muốn phát ra tiếng beep

Sub MultiBeep (intBeeps as Integer)

Dim intX As Integer, IngY As Long For intX = 1 To intBeeps

Beep

For IngY = 1 To 1000 Next IngY

Next IntX End Sub

Để gọi đến thủ tục trên chúng ta sẽ dùng câu lệnh sau:

-MultiBeep 3 hoặc MuitiBeep intBeeps:=3

Khi đó thủ tục MultiBeep sẽ được thực hiện và nhận vào tham số một giá trị số 3 (3 lần Beep)

Lưu ý: Chúng ta không nên đặt dấu ngoặc đơn vào danh

sách các tham số khi gọi nó

© Cú pháp khai báo ham

[Public | Private] [Static] Function Tén Ham ([Tham số]) As <Gid trj tra về>

<Lệnh thực hiện>

Tên hàm = Giá trị trả về

End Function trong đó:

+ Giá trị trả về: giá trị dữ liệu mà hàm sẽ trả về sau khi đã

tính tốn bên trong :

Thi du:

Trang 31

Chương 9 : Ngôn ngữ Visual Basic for Applications 27 Function Canh Huyen (dblA As Double, dbiB As Double) As Double

+ Canh huyen c = căn bậc 2 (a^2 + b^2)

Canh_Huyen = Sqr(dbiA^2 + dbiB^2) End Function

Để sử dụng đến hàm trên, chúng ta sẽ dùng câu lệnh sau:

_ đbồl!C = Canh_Huyen(5, 7)

Khi đó giá trị trả về của hàm Canh_Huyen sẽ được đưa vào biến dbliC

Lưu ý: Khi sử dụng hàm chúng ta cần chú ý:

«Ổ Danh sách các tham số truyền cho hàm phải nằm trong cặp dấu ngoặc đơn

« Thơng thường thì câu lệnh cuối cùng 1 trong thủ tục hàm phải là câu lệnh mô tả giá trị dữ liệu trả về của hàm

« Khi gọi đến một hàm thì phải có một giá trị chứa đựng giá trị dữ liệu trả về của hàm

VI.7 Sử dụng danh sách tham số biến đổi

Thông thường thì khi sử dụng tham số cho thủ tục thì

chúng ta phải bắt buộc đưa vào đầy đủ tham số đã khai báo nếu thiếu thì hệ thống sẽ thông báo lỗi và không thực hiện Thí dụ, khi gọi đến hàm tính cạnh huyền thì chúng ta sẽ đưa

vào hai tham số là giá trị của hai cạnh Tuy nhiên đối với Visual Basic for Applications cung cấp cho chúng ta hai cách

để có thể sử dụng danh sách tham số thay đổi

- Tham số có thể bỏ qua (Optional Argument)

Chúng ta sử dụng từ khóa Optional khai báo phía

Trang 32

ta không đưa vào tham số thì Microsoft Access Sẽ tự động

lấy một giá trị mặc định cho tham số đó Thí dụ nếu tham

số là kiểu dữ liệu số thì giá trị mặc định sẽ là không, khi là chuỗi thì sẽ là chuỗi rỗng tuy nhiên chúng ta vẫn có thể thay đổi giá trị mặc định này được

Thí dụ: Thủ tục nhận vào mã số lỗi và chuỗi lỗi và

sau đó thể hiện bằng lệnh MsgBox, tuy nhiên với tham số

mã lỗi có thể bỏ trống khi gọi Giá trị mặc nhiên khi bỏ

trống của tham số mã lỗi là 100

Sub DisplayError (strText As String, Optional intNum As integer

= 100)

if intNum =100 Then Msgbox strText Else

Msgbox intNum & “2? & strText

End If End Sub

Khi đó chúng ta có thể gọi thủ tục theo hai cách sau đây : DisplayError “invalid Entry” hodc

DisplayError “Invalid Entry”, 190

- $6 lugng tham số tùy ý

Để sử dụng số lượng tham số tùy ý có kiểu là Variant

(kiểu biến) chúng ta phải sử dụng từ khóa ParamArray Mục

đích khi sử dụng cách này là chúng ta chưa xác định được sẽ

gởi vào bao nhiêu tham số cho thủ tục khi gọi đến nó Bên

Trang 33

Chương 9 : Ngôn ngữ Visual Basic for Applications 29

truyền vào trong thủ tục, hàm này chỉ sử dựng cho các tham

số có kiểu Variant

Thí dụ : Viết một thủ tục hàm tính tổng của một danh

sách các con số gởi vào mà không thể xác định trước sẽ là bao nhiêu số

Function Total_Nums{ParamArray varNums As Variant) As Double

Dim dbfTotal As Double, var As Variant

For Each var in varNums dbiTotal = dbiTotal + var Next var

Total_Nums = dbiTotal

End Function

Khi đó chúng ta có thể gọi thủ tục hàm như sau :

dbiSum = Total_Nums (5, 6, 7) dbiSum = Total_Nums (5, 6, 7, 8, 9)

VI.8 Sử dụng biến

Trong quá trình xử lý tính tốn bên trong Visual Basic for Applications, chương trình cần phải sử dụng một số các biến

trung gian để lưu trữ các giá trị tính tốn Các giá trị dữ liệu

mà biến lưu trữ cũng giống như các giá trị dữ liệu mà các

bảng lưu trữ tuy nhiên giá trị của các biến này sẽ bị mất đi khi

ứng dụng của chúng ta chấm dứt hoạt động Microsoft Access -

cho phép chúng ta hai cơ chế khi sử dụng biến: khai báo biến

và không khai báo biến trước khi sử dụng Thông thường để cho chương trình tường minh, chúng ta nên khai báo các biến

Trang 34

VI.9 Qui ước cách đặt tên các thành phần trong Visual Basic

for Applications

Trong quá trình viết các đoạn lệnh trong ngôn ngữ Visual

Basic for Applications chúng ta sẽ khai báo, đặt tên cho các

thành phần: thủ tục con, thủ tục hàm, biến, hằng chúng ta

phải tuân theo các qui định sau đây: - _ Bắt đầu phải là một ký tự

- - Không được chứa khoảng trắng hoặc các ký tự đặc biệt:

“, “@, “a” “$”, oun

- Độ đài tối đa là 255 ký tự

- Không chứa các từ khóa của ngôn ngữ Visual Basic for Applications (If, Do )

VI.10 Sử dụng đối tượng Docmd (Do Command)

Trong khi sử dụng ngôn ngữ Visual Basic for Applications chúng ta có thể thực hiện các hành động tương ứng trong công cụ tập lệnh bằng cách sử dụng các phương thức của đối tượng Doemad

Cú pháp chung:

Docmd.tén phương thức [Các tham số]

trong đó :

+ Tên phương thức: danh sách các phương thức tương ứng với các hành động trong tập lệnh

+ Các tham số: các tham số tương ứng của một phương thức

Thí dụ: để có thể đóng biểu mẫu Sinh viên chúng ta sẽ chọn phương thức Close của đối tượng Docmd

Trang 35

Chương 9 : Ngôn ngữ Visual Basic for Applications 31

Khi đó acForm là hằng số chỉ định loại đối tượng là biểu mẫu muốn đóng và chuỗi “Sinh vien” là tên của biểu mẫu sinh

viên Dấu phẩy “,” để ngăn cách các tham số trong trường hợp phương thức có nhiều tham số

Chúng ta có thể sử dụng hầu hết các phương thức của

đối tượng Docmd để thực hiện các hành động bên trong tập

lệnh Tuy nhiên có bảy (7) hành động bên dưới mà đối tượng Docmd không thể thực hiện được Nhưng Visual Basic for

Applications cũng cung cấp các hàm hoặc thủ tục tương đương

Hành động (Action) Visual Basic for Applications tương

đương MsgBox Hàm hoặc thủ tục Msgbox RunApp Ham Shell’

RunCode Lệnh gọi đến một hàm

SendKeys Lệnh SendKeys

SetValue Lệnh gán giá trị trực tiếp

StopAllMacros Stop hoặc End

StopMacro Exit Sub hoặc Exit Function

VII CÁC CẤU TRÚC ĐIỀU KHIỂN CHƯƠNG TRÌNH

Các cấu trúc điều khiển là các cấu trúc mà cho phép người lập trình có thể điều khiển thứ tự vận hành của các câu

lệnh bên trong chương trình khi chúng được thực hiện Bình

thường nếu khơng sử dụng các cấu trúc điều khiển thì chương

trình sẽ được thi hành tử trên xuống dưới theo thứ tự tuần tự

mà chúng ta đã viết Visual Basic for Appiications cũng là

Trang 36

VII.1 Cấu trúc Nếu thì

Cấu trúc này cho phép chúng ta kiểm tra một điều kiện

đúng hay sai khi đó sẽ thực hiện các hành động tương ứng

Đối với cấu trúc If có các phát biểu như sau:

e = H <đều kiện> Then <lệnh>

Ý nghĩa: Nếu điều kiện đúng thì một lệnh sẽ được thực

hiện

hoặc /

e <đểu kiện> Then

<các lệnh>

End tf

Ý nghĩa: Nếu điều kiện đúng thì các lệnh sẽ được thực

hiện

Thông thường các điều kiện là các biểu thức so sánh

chứa các toán tử so sánh >, <, =, >=, <= va cdc giá trị cần so sánh, khi đó nó sẽ trả về một giá trị logic là đúng

hoặc sai Visual Basic for Applications cũng có thể hiểu

được giá trị 0 là sai và khác không là đúng

Hoặc

e lf<điều kiện> Then

<các lệnh 1> Else

<các lệnh 2> End ff

Ý nghĩa: Nếu điều kiện đúng thì các lệnh thứ nhất sẽ thực hiện, còn ngược lại nếu điều kiện sai thì các lệnh thứ

Trang 37

Chương 9 : Ngôn ngữ Visual Basic for Applications 33

Hoặc

e H <diểu kiện1> Then

<các lệnh 1> Else

lÝ <điều kiện2> Then <các lệnh 2> Else

End If

End If

Ý nghĩa: Nếu điều kiện thứ nhất đúng thì các lệnh thứ nhất sẽ thực hiện các lệnh thứ nhất, ngược lại nếu điều

kiện thứ nhất sai và điều kiện thứ hai đúng thì sẽ thực

hiện các lệnh thứ hai cho đến khi nếu tất cả các điều kiện đưa ra đều sai hết thì các lệnh thứ n sẽ được thực

hiện

Hoặc

© IWfType0f <tên biến> ls kiểu dữ liệu Then <các lệnh> : End If

Ý nghĩa : Nếu loại đữ liệu của một biến là kiểu gì thì các

lệnh sẽ được thực hiện

Các thí dụ:

Hai thí dụ sau đây là tương đương nhau Hàm Now trả về

ngày hiện hành của hệ thống Trong thí dụ này kiểm tra giá trị

của biến anyDate có nhỏ hơn ngày hiện hành không, nếu

đúng thì thay đổi giá trị của biến đó là ngày hiện hành

Trang 38

Hoặc

W anyDate < Now Then

anyDate = Now

-End If

Khi thực hiện từ hai lệnh trở lên thì chúng ta phải bắt

buộc sử dụng cú pháp !f End If Như thí dụ trên nhưng nếu có thêm lệnh in ra cửa sổ bẫy lỗi

W anyDate < Now Then

anyDate = Now

Debug.Print anyDate ‘in giá trị anyDate ra cửa sổ Debug

End ff :

Thí dụ kiểm tra một số intNum là chắn hoặc lẻ

if (intNum Mod 2) = 0 Then Msgbox “Số chấn” Else

Msgbox “Số lẻ”

End If

Thí dụ kiểm tra một số intNum là âm, dương hay bang

Trang 39

Chương 9 : Ngôn ngữ Visual Basic for Applications 35 VII.2 Cấu trúc chọn lựa

Chúng ta hiểu rằng cấu trúc chọn lựa này cũng giống như cấu trúc If Elself, nghĩa là khí đó sẽ có nhiều trường hợp hon cau tric If

e Select Case biểu thức

Case gid tri 1

<lénh 1> [ Case giá trị 2 <lệnh 2> Case Else <lệnh n> ] End Select trong đó: các giá trị có thể là

- _ Exp1 To Exp2: Chỉ miền giá trị từ giá trị 1 đến giá trị 2

- Is <các toán tử so sánh > <biểu thức>

Thí dụ: Xét một số nguyên nằm trong miền giá trị nào

Select Case intNum

Case 1 To 5 * số nằm trong miền giá trị [1 5] MsgBox “Between 1 and 5"

Case6,7,8 — “là các số 6,7, 8

MsgBox "Between 6 and 8"

Case Is > 8 * số lớn hơn 8

MsgBox "Greater than 8" Case Else *“ số nhỏ hơn 0

MsgBox "Less than 0"

End Select

VII.3 Cấu trúc lặp

Khi một công việc được làm đi làm lại nhiều lần thì khi đó

Trang 40

hiện này có thể xác định trước được hay là không Visual Basic for Applications chia vòng lặp ra làm hai loại:

+ Số lần lặp không xác định trước:

e Do Loop

Do [{While | Until} <diéu kién lặp>]

<Các lệnh> [Exit Do] Loop Hoặc — Do < Các lệnh> {Exit Do]

Loop [{While | Until} <didu kién lap >] |

Hoặc

While <điều kiện lặp> < Các lệnh>

Wend

trong đó: -:

- Điều kiện lặp: là một biểu thức so sánh đúng hoặc sai để cho vòng lặp tiếp tục thực hiện hay ngưng

- _ Các lệnh: Các lệnh bên trong sẽ được lặp

- Exit Do: Thoat khỏi vòng mà không phải kiểm tra

điều kiện lặp khi đó là đúng hoặc sai

Diễn giải rõ hơn:

- Đo While <điều kiện lặp> hoặc While <điều kiện

lặp> hoặc Loop While <điều kiện lặp> : Y nghia la

Ngày đăng: 08/05/2014, 22:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN