intTypePromotion=1
ADSENSE

GIÁO TRÌNH LẬP TRÌNH QUẢN LÝ VỚI MICROSOFT OFFIC ACCESS - BÀI 8 GIỚI THIỆU NGÔN NGỮ VBA (VISUAL BASIC FOR APPLICATIONS)

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:31

412
lượt xem
118
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Là ngôn ngữ lập trình cho Microsoft Office và các ứng dụng có liên kết với nó. Được sử dụng để liên kết các đối tượng trong ứng dụng lại với nhau tương tự như Macro nhưng linh động hơn. Ta có thể sử dụng VBA để thực hiện các công việc sau:

Chủ đề:
Lưu

Nội dung Text: GIÁO TRÌNH LẬP TRÌNH QUẢN LÝ VỚI MICROSOFT OFFIC ACCESS - BÀI 8 GIỚI THIỆU NGÔN NGỮ VBA (VISUAL BASIC FOR APPLICATIONS)

  1. Baøi 8. GIỚI THIỆU NGÔN NGỮ VBA (VISUAL BASIC FOR APPLICATIONS) 8.1. GIỚI THIỆU Là ngôn ngữ lập trình cho Microsoft Office và các ứng dụng có liên kết với nó. Được sử dụng để liên kết các đối tượng trong ứng dụng lại với nhau tương tự như Macro nhưng linh động hơn. 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. 8.2. C C TH NH PHẦN TRONG M T MODULE 8.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. 8.2.2. C CH MỞ CỬA SỔ MODULE ĐỂ VIẾT MÃ LỆNH a) MỞ MODULE CHUNG Trên thanh Ribbon chọn ngăn Create sau đó chọn Module. 189
  2. Hình 8.1: Chọn muc Module để tạo mới Module Xuất hiện màn hình soạn thảo Hình 8.2: Cửa s soạn thảo m lệnh b) MỞ MODULE RIÊNG CỦA FORM HOẶC REPORT Mở Form hay Report ở chế độ Design rồi bấm vào nút Code 190
  3. Hình 8.3: Nút Code trên thanh phiếu Design của thanh Ribbon Xuất hiện cửa sổ soạn thảo mã lệnh Hình 8.4: Cửa s soạn thảo m lệnh của Form 8.2.3. C C TH NH PHẦN TRONG M T MODULE 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ó. 8.2.4. THỦ TỤC XỬ LÝ SỰ KIỆN EVENT PROCEDURE) 191
  4. 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 8.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 : Mở bảng thuộc tính của đối tượng cần tạo thủ tục biến cố. Hình 8.6: Bảng thuộc tính của n t cmd chao Bước 2: Chọn thẻ Event, chọn giá trị Event Procedure trong biến cố và bấm vào nút có dấu ba chấm bên phải biến cố 192
  5. Xuất hiện cửa sổ viết Code cho thủ tục biến cố Hình 8.7: Chuẩn bị viết thủ tục biến cố cho n t cmd chao - Cách 2 Bước : Bấm chuột phải vào nút cmd Hello và chọn Build Event Hình 8.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 8.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 193
  6. Hình 8.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 8.11: Chọn biến cố 8.2.5. THỦ TỤC CHUNG PROCEDURE 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ố]) Kh i lệnh End Sub Trong đó 194
  7. - 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. Cú pháp gọi thủ tục con Tên thủ tục tham số 1 tham số 2 … Hoặc Call Tên thủ tục (tham số 1 tham số 2 …) Thí dụ Viết thủ tục con truyền vào 2 tham trị x và y. Tính và in ra USCLN của 2 số đó. Hình 8.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 () Ví dụ: Call USCLN(6,9) Cách 2: 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 ([]) As Kh i lệnh = End Sub Trong đó 195
  8. - 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 = (,< 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 8.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
  9. - ByVal: tham số được truyền theo giá trị. Nếu tham số được truyền theo giá trị thì giá trị của đại lượng truyền vào cho tham số sẽ không thay đổi theo tham số trong thủ tục. - ByRef: tham số được truyền theo địa chỉ (mặc định). Nếu tham số được truyền theo địa chỉ thì giá trị của đại lượng truyền vào cho tham số sẽ thay đổi theo sự thay đổi của tham số trong thủ tục. - 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ị. f) TẠO THỦ TỤC Trong cửa sổ soạn thảo lệnh (View Code), ta chọn Insert / Procedure… Hình 8.14: Chọn lệnh Insert Procedure để tạo thủ tục cho Module Xuất hiện hộp thoại Hình 8.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. 197
  10. 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 . Hình 8.16: Chạy thử hàm uscln Hình 8.17: Chạy thử thủ tục thutucuscln 198
  11. 8.2.6. C C QUY ƯỚC ĐẶT T N C C TH NH PHẦN TRONG VBA Trong quá trình viết các đoạn lệnh trong VBA ta phải khai báo, đặt tên cho các thành phần: thủ tục, biến, hằng,…theo các quy định sau: - Bắt đầu phải là một ký tự - Không được chứa khoảng trắng hoặc ký tự đặc biệt như: “.” , “ ” , “ @” , “&”, “$” , “#” - Độ dài tối đa là 255 ký tự. - Không chứa các từ khóa của VBA như : Dim,If, Do,… 8.2.7. KHAI B O BIẾN 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 [As ] - 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. 199
  12. 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ác biến có tính cục bộ Không thể khai báo biến Cấp thủ tục ngay trong thủ tục khai toàn cục trong thủ tục. báo biến. Các biến có tính cục bộ Các biến có thể sử dụng Cấp Module ngay tại Module được khai cho tất cả các Module báo 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. 200
  13. Thí dụ: khai báo biến X có kiểu nguyên dùng chung cho các Module Option Compare Database Option Explicit Public intX As Integer h) THỜI GIAN S NG CỦA C C BIẾN - Thời gian sống của biến là thời gian từ lúc biến được khởi tạo cho đến khi nó được giải phóng. - Thời gian sống của những biến toàn cục hoặc những biến trong cấp Module chung hoặc Module của Form hoặc Report là bằng với thời gian tập tin CSDL đượ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. 8.2.8. KHAI B O HẰNG a) Ý NGH A - Bên trong đoạn lệnh của ta có thể chứa các giá trị không thay đổi và các giá trị này xuất hiện nhiều nơi trong thủ tục, hoặc phụ thuộc vào các số nào đó rất khó nhớ. Trong trường hợp này ta có thể cải tiến cho các đoạn lệnh trở nên dễ đọc và dễ bảo trì hơn bằng cách sử dụng các hằng số. - Một hằng là một tên đầy đủ dùng thay thế cho một chuỗi hay một số mà giá trị của nó không thay đổi trong suốt thời gian ứng dụng vận hành. - Ta không thể sửa đổi hoặc gán giá trị mới vào cho một hằng. - Hằng có từ một trong hai nguồn: thứ nhất là do hệ thống định nghĩa, thứ hai do người dùng định nghĩa. b) CÖ PH P [Public | Private] Const Tên hằng [As Kiểu dữ liệu] = biểu thức - Tên hằng: theo quy ước đặt tên đã nói ở trên - Kiểu dữ liệu: là một trong các kiểu dữ liệu cơ bản. - Biểu thức: là sự kết hợp của số hay hằng chuỗi và các toán tử. c) TH DỤ  Const Pi = 3.14159 Khai báo hằng Pi có giá trị 3.14159  Const DoublePi = Pi * 2 Khai báo hằng DoulePi có giá trị bằng 2*Pi  Public Const Max = 10 Khai báo hằng Max có giá trị bằng 10 Const Ngay = #1/7/2006#  Khai báo hằng Ngay có giá trị bằng #1/7/2006# 201
  14. 8.2.9. C C KIỂU DỮ LIỆU ĐƠN GIẢN THƯỜNG SỬ DỤNG a) Ý NGH A Khi khai báo hằng hoặc biến ta cần phải chỉ ra kiểu dữ liệu của nó. Kiểu dữ liệu của biến dùng chỉ định loại dữ liệu mà biến sẽ lưu trữ. Mặc định khi ta khai báo biến mà không chỉ ra kiểu dữ liệu thì kiểu dữ liệu của nó sẽ là Variant (là kiểu thay đổi được) b) C C KIỂU DỮ LIỆU CƠ BẢN Tên kiểu Ý nghĩa Miền giá trị Số Byte 0  255 Byte Số nguyên 1 Boolean Logic 0: false ; -1: true 2 -32768  32767 Integer Số nguyên 2 -2147483648  2147483647 Long Số nguyên 4 - 922337203685774.5808  8 Currency Số thực 922337203685774.5808 -3.402823E38  -1.401298E-45 (âm) 4 Single Số thực 1.401298E-45  3.402823E38 (dương) -1.79769313486232E308  Double Số thực 8 -4.94065645841247E-324 (âm) 4.94065645841247E-324  1.79769313486232E308 (dương) 1/1/100  32/12/9999 Date Ngày 8 String Chuỗi Không quá 2 tỷ ký tự Variant Bất kỳ dữ liệu gì 16 Object Bất kỳ đối tượng 4 nào c) KIỂU DỮ LIỆU S - Dùng để khai báo cho các biến kiểu số. - Nếu biến chứa giá trị nguyên thì ta dùng kiểu Integer hoặc Long - Nếu biến chứa giá trị lẻ thì ta dùng kiểu Single, Double, Currency. d) KIỂU DỮ LIỆU CHUỖI - Dùng để khai báo cho các biến chứa giá trị là một chuỗi ký tự. - Khi khai báo một biến kiểu chuỗi thì chiều dài của nó thay đổi tùy theo giá trị dữ liệu mà nó chứa đựng. - Nếu muốn biến kiểu chuỗi có chiều dài cố định thì ta dùng cú pháp String kích thước Thí dụ Dim Ten As String *8 (Biến Ten kiểu chuỗi có độ dài 8 ký tự) 202
  15. - Nếu ta gán giá trị cho biến Ten có chiều dài nhỏ hơn 8 thì nó tự động thêm vào cá ký tự trắng bên phải để cho đủ 8 ký tự. Ngược lại, nếu ta gán giá trị có chiều dài lớn hơn 8 thì nó sẽ bỏ bớt các ký tự dư bên phải. - Có thể dùng các hàm RTRIM, LTRIM, TRIM để cắt các khoảng trắng dư thừa bên phải và bên trái của một biến chuỗi. e) KIỂU DỮ LIỆU LOGIC - Dùng để khai báo cho các biến chỉ chứa hai giá trị là Yes/No hoặc True/False. - Giá trị mặc định cho biến kiểu Logic là False. f) KIỂU DỮ LIỆU NG Y - Các giá trị ngày và giờ có thể được xem như một số thực (số 1 tương đương với 31/12/1899, số 2 tương đương với 1/1/1900,…) - Khi một kiểu dữ liệu số được chuyển thành ngày, các giá trị bên trái dấu chấm thập phân sẽ đại diện cho ngày và các giá trị bên phải dấu chấm thập phân sẽ đại diện cho giờ. - Ta có thể dùng hàm Cdate để chuyển đổi 1 con số thành kiểu dữ liệu ngày. Thí dụ: Cdate(2) = #1/1/1900# g) KIỂU DỮ LIỆU THAY ĐỔI VARIANT - Là kiểu dữ liệu có thể lưu trữ nhiều loại dữ liệu khác nhau. - Biến có kiểu Variant có thể chứa các loại dữ liệu số, chuỗi, ngày hoặc giá trị Null. - VBA sẽ tự động chuyển đổi kiểu dữ liệu cho phù hợp khi ta gán những kiểu dữ liệu này cho các biến kiểu Variant. - Thí dụ:  Dim X Biến X được khai báo có kiểu Variant  X = “10” X chứa giá trị kiểu chuỗi “10”  X=X–2 X chứa giá trị kiểu số là 8  X = X & “A” X chứa giá trị kiểu chuỗi là “8A” - Có thể dùng hàm IsNumeric để kiểm tra xem biến có chứa giá trị kiểu số hay không. Hàm này trả về giá trị True khi biến được kiểm tra chứa giá trị kiểu số. - Có thể dùng hàm IsDate để kiểm tra xem biến có chứa giá trị kiểu ngày hay không. Hàm này trả về giá trị True khi biến được kiểm tra chứa giá trị kiểu ngày. - GI TRỊ RỖNG EMPTY Khi một biến có kiểu Variant khi khởi tạo nó sẽ được gán một giá tr ị rỗng. Giá trị rỗng là giá trị đặc biệt. Giá trị này khác với giá trị không, một chuỗi rỗng (có chiều dài bằng không) hoặc giá trị Null. Để kiểm tra một biến có giá trị rỗng hay không ta dùng hàm Empty. Hàm này trả về giá trị True khi biến chứa giá trị rỗng. 203
  16. - GI TRỊ NULL Biến có kiểu dữ liệu thay đổi có thể chứa một giá trị đặc biệt gọi là giá trị Null. Null dùng để chỉ một dữ liệu thất lạc hoặc không xác định được. Các Field hoặc các Control mà không được khởi tạo trước thì giá trị mặc định là Null. Ta có thể dùng hàm IsNull để kiểm tra một biến có chứa giá trị Null hay không. Hàm này trả về giá trị True khi biến được kiểm tra chứa giá trị Null. Lưu : - Một biểu thức có chứa giá trị Null thì kết quả trả về luôn là Null. - Phần lớn các hàm trả về giá trị Null nếu tham số mà ta truyền vào cho hàm có giá trị Null. - Có thể dùng từ khóa Null để gán giá trị Null cho một biến kiểu Variant. Thí dụ X = Null. - Chỉ có biến có kiểu dữ liệu thay đổi là có thể chứa giá trị Null. h) KIỂU DỮ LIỆU Đ I TƯỢNG OBJECT - Các biến kiểu đối tượng sẽ lưu trữ địa chỉ của các đối tượng trong một ứng dụng hoặc trong một số ứng dụng khác. - Một biến kiểu đối tượng có thể được gán giá trị bằng câu lệnh SET - Thí dụ: khai báo biến để tham chiếu đến một Recordset của Table T HOSONV nằm trong tập tin CSDL hiện hành. Dim Rs As Recordset Set Rs = CurrentDB.OpenRecordset “T HOSONV” dbOpenDynaset 8.2.10. M T S CHÚ Ý KHI SOẠN THẢO LỆNH a) M T S QUY ƯỚC KHI SOẠN THẢO LỆNH TRONG VB  Ngôn ngữ lập trình VB không phân biệt chữ thường hay chữ in khi soạn thảo lệnh. Ví dụ: Dim A As Byte ta cũng có thể viết DIM A AS BYTE hoặc dim a as byte  Mỗi lệnh phải đặt nằm trọn vẹn trên cùng một dòng màn hình. o Nếu lệnh ngắn thì ta có thể đặt nhiều lệnh trên cùng một dòng màn hình nhưng giữa các lệnh phải cách nhau bằng dấu hai chấm “:”. Ví dụ: A=2 B=3 C=A+B ba lệnh trên có thể được viết trên cùng một dòng màn hình là: A=2 : B=3 : C=A+B 204
  17. o Nếu lệnh quá dài thì ta có thể xuống dòng nhưng trước khi xuống dòng phải đặt dấu gạch nối vào cuối dòng phía trên. Ví dụ: A=2+3*9-3 lệnh trên có thể được viết trên hai dòng màn hình là: A=2 +3 _ *9-3  Ta có thể đưa lời chú thích (comment) vào trong chương trình để giải thích lệnh nhưng phải đặt dấu nháy đơn trước lời ghi chú đó. Khi biên dịch trình biên dịch sẽ bỏ quả tất cả những nội dung đặt sau dấu nháy đơn. Ví dụ: S=R*R*PI „đây là c ng thức tính diện tích hình tròn. b) VIẾT C C LỆNH B N TRONG CỬA SỔ MÃ LỆNH Viết các lệnh trong cửa sổ soạn thảo hoàn toàn tương tự như bất kỳ phần mềm soạn thảo văn bản nào khác. Có thể sao chép, di chuyển, xóa các câu lệnh. Tuy vậy, VBA cũng cung cấp một số các đặc trưng để việc soạn thảo dễ dàng, thuận lợi hơn:  Tự đ ng x y dựng các c u lệnh Khi ta gõ vào một vài ký tự thì Access sẽ tự động dò tìm và hiện ra danh sách các câu lệnh thích hợp để ta lựa chọn. Thí dụ: Khi ta gõ tên một điều khiển trên Form là nút lệnh có tên Cmdchao thì Access tự động hiện ra bảng danh sách các thuộc tính và phương thức của nó. Hình 8.18: Tự động xây dựng câu lệnh Khi hiện ra danh sách, để hoàn thành câu lệnh ta có thể chọn trong danh sách hoặc gõ thêm một vài ký tự cho đến khi vệt sáng đậu trên phương thức hoặc 205
  18. thuộc tính mà ta cần sau đó nhấn phím Tab để chọn thuộc tính hoặc phương thức đó. Nếu hủy bỏ ta bấm ESC.  Xem thông tin nhanh: Khi ta gõ vào một thủ tục hoặc một phương thức sẽ có một lời mách hiển thị các tham số cần thiết của một thủ tục hoặc cú pháp của thủ tục đó. Hình 8.19: Hiện lời mách nước cho hàm MsgBox  Tự đ ng kiểm tra cú pháp c u lệnh Khi ta hoàn thành một câu lệnh và di chuyển con trỏ chèn sang dòng mới. VBA sẽ tự động kiểm tra cú pháp của dòng lệnh vừa gõ và hiển thị thông báo lỗi nếu có. Hình 8.20: Báo l i khi c pháp của d ng lệnh bị sai.  Cho phép kéo thả khi muốn di chuyển một hoặc nhiều dòng lệnh từ vị trí này sang vị trí khác hoặc từ module này sang module khác ta không cần phải thực hiện thao tác cắt dán mà ta chỉ cần chọn những dòng lệnh cần di chuyển rồi drag (kéo) sang vị trí mới.  Kh i phục các hành đ ng trước đó để có thể phục hồi các lệnh soạn thảo trước đó ta có thể bấm vào nút Undo . c) DI CHUYỂN QUA LẠI GIỮA C C THỦ TỤC 206
  19. - Ta có thể di chuyển qua lại giữa các thủ tục trong cửa sổ soạn thảo bằng cách dùng tổ hợp phím Ctrl+PageDn hoặc Ctrl+ PageUp. - Hoặc ta có thể sử dụng hộp đối tượng và hộp sự kiện. Chọn đối tượng ở hộp đối tượng (bên trái) và biến cố ở hộp sự kiện (bên phải). - Thí dụ: muốn di chuyển nhanh đến thủ tục biến cố Private Sub Chao_click() thì ở hộp đối tượng ta chọn tên Chao và ở hộp sự kiện ta chọn biến cố Click. Lúc đó VBA sẽ cho phép ta chuyển nhanh đến đoạn lệnh của thủ tục trên. Hình 8.21. Chọn ối tượng cần viết thủ tục biến cố d) SỬ DỤNG C C ĐIỂM Đ NH DẤU - Ý nghĩa Khi làm việc với các ứng dụng lớn, để đánh dấu những vị trí qua n trọng cần xem giữa các cửa sổ soạn thảo hoặc giữa các thủ tục nhằm sau này quay lại nhanh những vị trí đó thì ta dùng điểm đánh dấu (Bookmark). - Tạo BookMark Đặt con nháy tại dòng cần đặt điểm đánh dấu. Chọn lệnh Edit / Bookmark / Toggle BookMark. Một hình chữ nhật màu xanh xuất hiện bên trái dòng lệnh hiện hành. Muốn bỏ ta làm tương tự tại vị trí đã có BookMark. BookMark Hình 8.22: ánh dấu vị trí d ng lệnh trên Module - Di chuyển giữa các BookMark đ tạo Chọn lệnh Edit / BookMark / Next BookMark để di chuyển tới những BookMark tiếp sau. Hoặc chọn lệnh Edit / BookMark / Previous BookMark để di chuyển tới những BookMark kế trước. - Xóa tất cả các điểm đánh dấu Chọn lệnh Edit / BookMark / Clear All BookMark. 207
  20. 8.3. CẤU TRÖC LỆNH TRONG VBA 8.3.1. CẤU TRÖC LỆNH GÁN - Cú pháp: = Trong đó: có thể là hằng, biến, hàm hoặc biểu thức thực sự - Ý nghĩa: lệnh thực hiện lấy giá trị của biểu thức làm nội dung cho biến có tên được chỉ định trong cú pháp. - Ví dụ: a=3 „ biểu thức trong lệnh này là một hằng số nguyên. b=a „ biểu thức trong lệnh này là một tên biến khác. c=sqr(4) „ biểu thức trong lệnh này là hàm căn bậc 2. d=a+b+c „biểu thức trong lệnh này là một biểu thức số học. 8.3.2. CẤU TRÖC ĐIỀU KHIỂN IF…END IF a) CẤU TRÚC IF KHUYẾT DẠNG M T LỆNH - Cú pháp: If Then - Ý nghĩa: Nếu là đúng thì thực hiện , ngược lại không làm gì cả. - Ví dụ:Hàm TimMax có chức năng tìm giá trị lớn nhất của 2 giá trị chứa trong tham số A, B. Hình 8.23: Sử dụng If thiếu để tìm số lớn nhất b) CẤU TRÚC IF KHUYẾT DẠNG NHIỀU LỆNH - Cú pháp: If Then End If 208
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2