Macro Autokeys:

Một phần của tài liệu Giáo trình access 2 – trung tâm tin học đh sư phạm kỹ thuật TP HCM (Trang 50)

2.6.1. Ý NGHĨA:

2.6.2. TẠO MACRO AUTOKEYS:

Tương tự tạo Macro nhóm nhưng ở cột Macro Name gõ tên phím và khi lưu lại đặt tên bắt buộc là AutoKeys.

2.6.3. CÁCH GHI PHÍM TRONG CỘT MACRO NAME:

Ký hiệu Ý nghĩa Thí dụ ^ Phím Ctrl ^A : Ctrl+A {F1} Phím F1 + Phím Shift +{F1} : Shift+F1 ^+A : Ctrl+Shift+A {DELETE} hay {DEL} Phím Delete +{DEL} Phím Shift+Delete ^{DEL} Phím Ctrl+Delete

Thí dụ: Tạo Macro AutoKeys:

- Gán phím Ctrl+A để mở Form F_Hoadon và cực đại hóa nó lên. - Gán Shift+F1 để đóng Form F_Hoadon

Hình 2.39: Màn hình thiết kế Macro Autokeys

2.7. KỸ THUẬT CHẠY TỪNG BƯỚC MACRO

2.7.1. Ý NGHĨA CỦA VIỆC CHẠY TỪNG BƯỚC MACRO

• Click chuột vào nút Single Step

• Click chuột vào nút Run để kích hoạt các điều khiển cho phát sinh các biến cố đã được gán với macro thì xuất hiện hộp thoại:

Hình 2.41: Hộp thoại khi chạy từng bước Macro

• Trên hộp thoại ta có thể xem lại các hành động, tham số, điều kiện, kết quả của từng hành động có đúng ý muốn không. Sau đó, có thể chọn:

- Step: vẫn thực hiện việc chạy từng bước và cho phép thực hiện hành động kế tiếp trong macro.

- Stop All Macro: Dừng ngay Macro không tiếp tục thực hiện các hành động kế tiếp.

- Continue: Chạy Macro bình thường không chạy từng bước nữa.

2.8. SỬ DỤNG BIẾN CỐ (EVENT) TRONG FORM, REPORT ,CONTROL ĐỂ CHẠY MACRO

2.8.1. KHÁI NIỆM VỀ BIẾN CỐ:

Biến cố là những sự kiện xảy ra trên Form hay Report như click chuột, nhấn phím, di chuyển chuột,…

2.8.2. Ý NGHĨA CỦA CÁC BIẾN CỐ:

Before Update : biến cố xảy ra trước khi đối tượng được cập nhật. • After Update : biến cố xảy ra sau khi đối tượng được cập nhật. • On Click : biến cố xảy ra khi click chuột tại đối tượng. • On Dbl Click : biến cố xảy ra khi click chuột tại đối tượng. • On Mouse Down : biến cố xảy ra khi nhấn giữ chuột tại đối tượng.

On Mouse Up : biến cố xảy ra khi nhả chuột tại đối tượng.

On Mouse Move : biến cố xảy ra khi di chuyển chuột qua đối tượng. • On Key Press : biến cố xảy ra khi nhấn một phím tại đối tượng. • On Key Down : biến cố xảy ra khi nhấn giữ một phím tại đối tượng. • On Key Up : biến cố xảy ra khi nhả phím tại đối tượng.

On Enter : biến cố xảy ra khi con trỏ (Cursor) vào đối tượng. • On Exit : biến cố xảy ra khi con trỏ (Cursor) ra khỏi đối tượng.

2.8.3. CÁCH GÁN MACRO VÀO BIẾN CỐ CỦA ĐỐI TƯỢNG

Để gọi một macro thi hành khi có biến cố nào đó xảy ra trên đối tượng ta có thể sử dụng một trong hai cách sau:

Cách 1: Được sử dụng nếu macro cần gán vào biến cố của đối tượng đã được

tạo sẵn.

• Vào phiếu Event trong hộp thoại thuộc tính đối tượng. • Chọn tên macro trong biến cố cần gán.

• Cách gán được minh họa ở hình 2.28.

Cách 2: Được sử dụng nếu macro cần gán vào biến cố của đối tượng chưa tồn

tại.

Hình 2.42: Hộp thoại Choose Builder xuất hiện khi click chuột vào nút …sau biến cố

• Click chuột vào dấu … sau biến cố

• Chọn mục Macro builder trong hộp thoại Choose Builder • Xây dựng macro cần gán trong màn hình thiết kế Macro

Hình 2.43: Màn hình thiết kế Macro xuất hiện khi chọn mục Macro Builder

2.9.1. MACRO AUTOEXEC:

• Tự động thi hành mỗi khi mở Cơ sở dữ liệu chứa nó. • Có tên bắt buộc là AUTOEXEC.

2.9.2. SỬ DỤNG HỘP THOẠI STARTUP:

• Click chuột vào nút Office để vào Menu chính của Access sau đó chọn Access Options

Hình 2.45: Menu chính khi click chuột vào nút Office

Hình 2.46: Màn hình làm việc với Sự lựa chọn Current DataBase

• Các thông số trên hộp thoại Startup:

Application Title: Tiêu đề của ứng dụng khi mở tập tin CSDL xuất hiện trên thanh trạng thái (dùng thay thế tiêu đề Microsoft Access).

Application Icon: chọn tập tin biểu tượng cho ứng dụng. Display Form: Chọn tên Form muốn hiển thị khi mở CSDL.

Display Navigation Pane: hiển thị hay ẩn cửa sổ định hướng

Navigation Pane.

Ta có thể sử dụng VBA để thực hiện các công việc sau: Dễ dàng bảo trì các ứng dụng.

Tạo ra các hàm của riêng mình.

Che đi các thông báo lỗi của hệ thống. Tạo hoặc hiệu chỉnh các đối tượng. Thực hiện các hành động cấp hệ thống. Truy cập dễ dàng vào các mẫu tin. Gởi các tham số động.

3.2. CÁC THÀNH PHẦN TRONG MỘT MODULE 3.2.1. GIỚI THIỆU VỀ MODULE 3.2.1. GIỚI THIỆU VỀ MODULE

a) MODULE CHUNG

Dùng để chứa các thủ tục và hàm chung do người thiết kế tự lập trình bằng ngôn ngữ VBA để bổ sung cho file cơ sở dữ liệu mà ta có thể chạy ở bất kỳ vị trí nào trong ứng dụng.

b) MODULE RIÊNG CỦA ĐỐI TƯỢNG FORM, REPORT

Dùng để chứa các thủ tục xử lý sự kiện liên kết với Form hay Report. Ta không thể lưu riêng module loại này mà chúng gắn liền với Form hoặc Report. Khi ta sao chép Form hay Report từ tập tin CSDL này sang tập tin CSDL khác thì các Module này cũng được chép sang cùng với nó và nếu ta xóa Form hoặc Report thì chúng cũng bị xóa theo.

3.2.2. CÁCH MỞ CỬA SỔ MODULE ĐỂ VIẾT MÃ LỆNH a) MỞ MODULE CHUNG a) MỞ MODULE CHUNG

Hình 3.1: Chọn muc Module để tạo mới Module

Xuất hiện màn hình soạn thảo

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

b) MỞ MODULE RIÊNG CỦA FORM HOẶC REPORT

Hình 3.4: Cửa sổ soạn thảo mã lệnh của Form

3.2.3. CÁC THÀNH PHẦN TRONG MỘT MODULE a) CÁC KHAI BÁO a) 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 người dùng.

b) THỦ TỤC XỬ LÝ SỰ KIỆN (EVENT PROCEDURE)

Là các thủ tục nằm tại các Module của Form hoặc Report. Chúng sẽ được thực hiện khi các sự kiện của Form hoặc Report hoặc của các điều khiển xảy ra.

c) THỦ TỤC CHUNG (GENERAL PROCEDURE)

Là các thủ tục không trực tiếp liên quan đến một đối tượng hoặc biến cố nào cả. Ta có thể tạo chúng trên Module chung hoặc Module của Form, Report. Thủ tục chung chỉ được thi hành khi nào ta gọi đến nó.

a) Ý NGHĨA

Khi Access nhận thấy có một sự kiện (biến cố) xảy ra trên Form, Report hoặc Control nó sẽ tự động thi hành thủ tục biến cố đã tạo cho đối tượng và biến cố đó. Do đó, để thực hiện một số hành động nào đó để đáp lại một biến cố đặc biệt ta phải đưa các hành động đó vào một thủ tục biến cố

b) TÊN CỦA THỦ TỤC XỬ LÝ SỰ KIỆN

<Form / Report>_<Tên biến cố> <Tên Control>_<Tên biến cố>

Thí dụ:

- Thủ tục biến cố cho sự kiện Mở Form có tên là Form_Open

- Thủ tục biến cố cho sự kiện Click chuột vào nút tên cmdThem là

cmdThem_Click.

c) TẠO THỦ TỤC BIẾN CỐ

Tạo thủ tục biến cố cho nút lệnh cmd_chao khi click chuột nút lệnh sẽ hiển thị lời chào “Xin chao tat ca cac ban hoc vien”.

Hình 3.5: Form chứa nút cmd_chao mà ta cần tạo thủ tục biến cố

- Cách 1:

Bước 1: Mở bảng thuộc tính của đối tượng cần tạo thủ tục biến cố.

Hình 3.7: Chuẩn bị viết thủ tục biến cố cho nút cmd_chao

- Cách 2

Bước 1: Bấm chuột phải vào nút cmd_Hello và chọn Build Event

Hình 3.8: Chọn lệnh Build Event trong menu đối tượng

Bước 2: Xuất hiện hộp thoại Choose Builder, chọn Code Builder

Hình 3.9: Hộp thoại Choose Builder

- Cách 3

Trong cửa sổ soạn thảo mã lệnh, ta chọn Đối tượng cần tạo biến cố ở Combo Box bên trái

Hình 3.10: Chọn đối tượng cần viết thủ tục biến cố

Và chọn tên Biến cố ở Combo Box bên phải.

Hình 3.11: Chọn biến cố

3.2.5. THỦ TỤC CHUNG (PROCEDURE) a) Ý NGHĨA a) Ý NGHĨA

- Ta tạo thủ tục chung nhằm mục đích tạo ra các chức năng của riêng mình nhằm tự động tính toán một số công việc thường xuyên cần thực hiện.

- Muốn các thủ tục này được sử dụng chung cho toàn bộ chương trình ứng dụng. - Tránh các đoạn lệnh trùng lắp và giúp người lập trình dễ bảo trì chương trình

ứng dụng.

b) PHÂN LOẠI

Bao gồm Thủ tục Hàm (Function) và Thủ tục Con (Sub)

Thủ tục hàm: cho phép trả về một giá trị. Do đó, thủ tục hàm được sử dụng trong các biểu thức. Có thể nhận tham số vào.

Thủ tục con: cho phép thực hiện các hành động nhưng không trả về một giá

trị và do đó thủ tục con không được dùng trong biểu thức. Có thể nhận tham số vào.

c) CÚ PHÁP KHAI BÁO VÀ GỌI THỦ TỤC CON Cú pháp khai báo:

[Public | Private] [Static] Sub Tên thủ tục ([Tham số])

của 2 số đó.

Hình 3.12: Thủ tục con để tìm USCLN của 2 số x và y

Gọi thủ tục con: ta có thể gọi thủ tục con bằng một trong 2 cách sau: Cách 1: Call <tên thủ tục con>(<danh sách tham số>)

Ví dụ: Call USCLN(6,9)

Cách 2: <tên thủ tục con> <danh sách tham số> Ví dụ: USCLN 6,9

Lưu ý: ta không được đặt cặp dấu ngoặc đơn vào danh sách các tham số khi

gọi nó (trừ cú pháp gọi thủ tục con bằng lệnh Call).

d) CÚ PHÁP KHAI BÁO VÀ GỌI THỦ TỤC HÀM Cú pháp khai báo:

[Public | Private] [Static] Function <Tên Hàm> ([<Tham số>]) As <Kiểu giá trị

trả về>

<Khối lệnh>

<Tên Hàm> = <Giá trị trả về> End Sub

- Khối lệnh: là dãy các câu lệnh VBA mà ta muốn thi hành khi thủ tục đượ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 để tính toán bên trong.

- Giá trị trả về: là giá trị mà hàm trả về sau khi tính toán bên trong thủ tục

hàm.

Cú pháp gọi thủ tục hàm:

<Tên biến nhận giá trị trả về> = <Tên thủ tục hàm> (<tham số 1>,< tham số 2>,…)

Thí dụ: Viết thủ tục hàm truyền vào 2 tham trị x và y. Tính và trả về USCLN

của 2 số đó.

Hình 3.13: Hàm tìm USCLN của 2 số x và y

Sau đó ta có thể gán biến US nhận lấy kết quả của hàm Uscln như sau: US=Uscln(9,6)

Hoặc in kết quả của hàm ra hộp thoại Msgbox Msgbox Uscln(9,6)

Lưu ý:

- Danh sách các tham số truyền cho thủ tục hàm phải nằm trong cặp dấu ngoặc đơn.

- Thông thường câu lệnh cuối cùng trong thủ tục hàm phải là câu lệnh gán <Tên hàm = <Giá trị trả về của hàm>.

- Khi gọi đến một hàm phải có một biến hoặc điều khiển nhận giá trị trả về từ hàm.

e) CÚ PHÁP KHAI BÁO CÁC THAM SỐ TRONG THỦ TỤC (CON/HÀM) [Byval | ByRef] <Tên tham số> As <Kiểu dữ liệu> [=<Giá trị mặc định>]

Trong cửa sổ soạn thảo lệnh (View Code), ta chọn Insert / Procedure…

Hình 3.14: Chọn lệnh Insert/Procedure để tạo thủ tục cho Module

Xuất hiện hộp thoại

Hình 3.15: Hộp thoại khai báo tạo thủ tục

Gõ tên thủ tục vào ô Name, chọn loại thủ tục là Sub hay Function ở mục Type và chọn phạm vi áp dụng Public hay Private ở mục Scope

All Local variables as Statics: toàn bộ các biến trong thủ tục là biến tĩnh

g) BIÊN DỊCH THỦ TỤC

Chọn lệnh Debug / Compile… để biên dịch tất cả các thủ tục trong tập tin CSDL. Nếu có lỗi sẽ dừng lại cho ta sửa.

h) CHẠY THỬ

- Chọn lệnh View/Immediate Window (Ctrl+G)

- Trong cửa sổ Immediate ta gõ tên thủ tục con và tham số (nếu có) rồi bấm Enter. Nếu là thủ tục hàm thì ta thêm dấu ? ở phía trước tên thủ tục hàm .

3.2.7. KHAI BÁO BIẾN a) Ý NGHĨA a) Ý NGHĨA

- Là đối tượng trung gian dùng để lưu trữ các giá trị tính toán khi chạy chương trình.

- Giá trị của các biến sẽ mất đi khi chương trình ứng dụng chấm dứt hoạt động. - Microsoft Access có hai cơ chế khi sử dụng biến: tường minh (khai báo) và

không tường minh (không khai báo biến) trước khi sử dụng.

b) CÚ PHÁP

Dim <Tên biến> [As <Kiểu dữ liệu>]

- Tên biến: là tên do ta tự đặt theo quy ước đặt tên mà Microsoft Access đã quy ước. Tên biến không phân biệt chữ hoa hoặc chữ thường. Ta không nên đặt tên biến quá dài mà nên đặt tên biến ngắn gọn mang tính gợi nhớ. Thông thường tên biến gồm 2 phần: phần đầu nói lên kiểu dữ liệu của biến, phần cuối là tên gợi nhó của biến.

Thí dụ: khai báo biến kiểu chuỗi dùng để chứa tên một biểu mẫu và biến N kiểu số nguyên:

Dim strFrmName As String Dim intN As Integer

- Kiểu dữ liệu: là một trong các kiểu dữ liệu cơ bản. Nếu ta bỏ qua phần khai báo kiểu dữ liệu thì biến sẽ có kiểu dữ liệu thay đổi (Variant).

c) KHAI BÁO BIẾN TƯỜNG MINH VÀ KHÔNG TƯỜNG MINH

Để bắt buộc người lập trình phải khai báo biến tường minh trước khi sử dụng ta dùng câu lệnh câu lệnh Option Explicit ở đầu Module. Ngược lại nếu không có câu lệnh này thì coi như ta khai báo biến không tường minh. Việc khai báo biến tường minh giúp ta tránh được việc sử dụng sai tên các biến vì khi biên dịch Access sẽ thông báo lỗi khi phát hiện ra các biến có sử dụng nhưng chưa khai báo để ta có thể sửa đổi.

d) TẦM ẢNH HƯỞNG CỦA BIẾN

- Khi ta khai báo biến trong một thủ tục thì chỉ có các câu lệnh bên trong thủ tục mới đọc hoặc tác động làm thay đổi giá trị của biến đó. Ta nói tầm ảnh hưởng của biến mang tính cục bộ trong thủ tục đó. Nếu ta muốn có tầm ảnh hưởng là tất cả thủ tục trong một Module hoặc tất cả các Module của ứng dụng thì ta phải khai báo nó ở đầu Module kết hợp với các từ khóa Public hoặc Private. Tóm lại tầm ảnh hưởng của biến phụ thuộc vào vị trí khai báo biến và các từ khóa. - Bảng tầm ảnh hưởng theo tứ khóa:

Tầm ảnh hưởng Private Public

Cấp thủ tục

Các biến có tính cục bộ ngay trong thủ tục khai báo biến.

Không thể khai báo biến toàn cục trong thủ tục.

Cấp Module

Các biến có tính cục bộ ngay tại Module được khai báo

Các biến có thể sử dụng cho tất cả các Module chung trong ứng dụng

e) CÁC BIẾN SỬ DỤNG TRONG MỘT THỦ TỤC

Các biến cấp thủ tục chỉ được nhận ra ở tại thủ tục mà chúng khai báo. Chúng được xem như một dạng biến cục bộ. Ta có thể khai báo nó bằng các lệnh Dim hoặc Static.

Thí dụ: khai báo biến cục bộ X có kiểu số nguyên

Dim intX As Integer hoặc

Static intX As Integer

Lưu ý: các biến cục bộ được khai báo bằng từ khóa Dim chỉ tồn tại khi thủ tục

đang thực hiện. Còn những biến cục bộ được khai báo bằng từ khóa Static sẽ tồn tại trong toàn bộ thời gian ứng dụng đang thực hiện.

f) CÁC BIẾN SỬ DỤNG TRONG CÙNG MỘT MODULE

Để khai báo biến sử dụng chung cho cùng một Module ta đặt chúng ở đầu Module và dùng từ khóa Dim hoặc Private.

Thí dụ: khai báo biến X có kiểu nguyên dùng chung cho một Module

Option Compare Database Option Explicit

Dim intX As Integer hoặc

Private intX As Integer

g) CÁC BIẾN SỬ DỤNG CHUNG CHO TẤT CẢ CÁC MODULE

Để khai báo biến sử dụng chung cho tất cả các Module ta đặt chúng ở đầu Module và dùng từ khóa Public.

được mở.

- Thời gian sống của những biến cục bộ trong các thủ tục chỉ bằng với thời gian mà thủ tục đó được chạy. Nó được khởi tạo khi chạy thủ tục và được giải phóng khi chạy xong thủ tục. Nếu muốn lưu giữ lại thì ta có thể dùng từ khóa Static.

Một phần của tài liệu Giáo trình access 2 – trung tâm tin học đh sư phạm kỹ thuật TP HCM (Trang 50)

Tải bản đầy đủ (PDF)

(120 trang)