Chương 5 lập trình VBA căn bản

14 351 0
Chương 5  lập trình VBA căn bản

Đ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

Chương 5: Lập trình VBA CHƯƠNG LẬP TRÌNH VBA CĂN BẢN Môi trường lập trình VBA VBA – Visual Basic for Application để giúp người dùng tạo tuỳ biến mạnh hơn, thân thiện với công việc Hơn VBA Access thể tính chuyên nghiệp lập trình, phần biến CSDL đơn giản trở thành sản phẩm đóng gói thương mại Màn hình làm việc ngôn ngữ VBA thường có dạng: * Hệ thống thực đơn công cụ Cũng môi trường làm việc có hệ thống thực đơn công cụ kèm Trên có chứa lệnh để gọi, thi hành thiết lập điều khiển cần thiết 45 Chương 5: Lập trình VBA * Cửa sổ Project Explorer Có nhiều thành phần lập trình VBA như: Forms, Reports, Modules Cửa sổ Project Explorer phân cấp lớp đối tượng có chứa mã lệnh VBA, đồng thời giúp lập trình viên dễ dàng việc viết (coding) quản lý mã lệnh VBA viết * Cửa sổ viết lệnh Cửa sổ viết lệnh nơi soạn thảo dòng lệnh VBA Mỗi cửa sổ chứa toàn mã lệnh cho đối tượng như: Forms, Reports, Modules Trong cửa sổ có nhiều phần viết lệnh, phần nội dung khai báo, chương trình con, nội dung thủ tục đáp ứng kiện * Cửa sổ Intermediate Cửa sổ Intermediate nơi giúp thi hành trực tiếp câu lệnh đó, hữu dụng việc gỡ lỗi phần mềm Kiểu liệu - Biến - Hằng 2.1 Kiểu liệu a, Boolean Kiểu lô gíc, tương tự kiểu Boolean Pascal Kiểu chiếm byte nhớ; nhận giá trị là: Yes – No True – False thể dạng số tương đương với False, True tương ứng với số khác Khi lập trình CSDL, kiểu Boolean tương ứng với kiểu Yes/No bảng liệu b, Byte Kiểu số nguyên dương phạm vi từ 255 Kiểu chiếm byte nhớ c, Integer Kiểu nguyên, có giá trị khoảng -32768 32767 Kiểu chiếm bytes nhớ d, Long Kiểu số nguyên dài, có giá trị khoảng 2,147,483,648 2,147,483,647 Kiểu chiếm bytes nhớ e, Single Kiểu số thực, có giá trị khoảng 1.401298E-45 to 3.402823E38 Chiếm bytes nhớ 46 Chương 5: Lập trình VBA f, Double Kiểu số thực có đợ lớn kiểu Single, có giá trị khoảng 4.94065645841247E-324 đến 1.79769313486232E308 Chiếm bytes nhớ g, Currency Kiểu tiền tệ Bản chất kiểu số, độ lớn bytes, có giá trị khoảng 922,337,203,685,477.5808 đến 922,337,203,685,477.5807 Đặc biệt, kiểu có ký hiệu tiền tệ kèm h, String Kiểu xâu ký tự Kiểu tương ứng với kiểu String Pascal, tương ứng với kiểu Text trường CSDL Access Độ lớn tối đa 255 bytes tương đương với khả xử lý xâu dài 255 ký tự i, Variant Variant kiểu liệu không tường minh Biến kiểu nhận giá trị Người ta thường khai báo biến kiểu Variant trường hợp phải xử lý biến mềm dẻo Khi biến nhận giá trị kiểu này, nhận giá trị xử lý theo kiểu liệu khác j, Object Object loại biến kiểu Variant, chiếm dung lượng nhớ bytes, dùng để tham chiếu tới loại đối tượng (Object) lập trình Tất nhiên muốn khai báo biến Object kiểu nào, phải chắn đối tượng đăng ký vào thư viện tham chiếu VBA tính Tool | Reference Chúng ta trở lại vấn đề lập trình CSDL 2.2 Biến cách sử dụng biến a Khai báo biến Biến (Variable) thành phần ngôn ngữ lập trình, giúp xử lý liệu cách linh hoạt mềm dẻo Thông thường ngôn ngữ lập trình, biến tồn phải định kiểu, tức phải nhận kiểu liệu xác định Tuy nhiên VBA không, biến định kiểu (được khai báo trước sử dụng) không định kiểu (không khai báo sử dụng được) Trong trường hợp biến tự nhận kiểu giá trị Variant Biến khai báo đâu phần viết lệnh VBA Tất nhiên, biến có hiệu lực khai báo sau lời khai báo đảm bảo phạm vi hoạt động qui định 47 Chương 5: Lập trình VBA Cú pháp khai báo biến: Dim As b Phạm vi biến Như biết, biến sau khai báo nhận kiểu liệu có phạm vi hoạt động, tức lời khai báo biến có tác dụng vùng định; vùng định biến tác dụng, có tác dụng theo nghĩa khác (biến cục kiểu Variant chẳng hạn) * Biến cục bộ: Biến cục khai báo sau từ khoá Dim, có tác dụng chương trình con, cục form module Dưới trường hợp biến cục này: - Trong chương trình con, khai báo chương trình đó; - Trong Form, khai báo phần Decralations Form đó; - Trong Reports, khai báo phần Decralations Report đó; - Trong Modules, khai báo phần Decralations Modules đó; * Biến toàn cục: Biến toàn cục khai báo sau cụm từ khoá Public, có tác dụng toàn chương trình (ở chỗ viết lệnh) Loại biến phải khái báo vùng Decralations Module Trên tệp Access, không phép khai báo trùng tên biến toàn cục Tuy nhiên tên biến cục trùng tên biến toàn cục, trường hợp VBA ưu tiên sử dụng biến cục phạm vi 2.3 Hằng cách sử dụng a Khai báo Hằng (Constan) đại lượng có giá trị xác định không bị thay đổi hoàn cảnh Tương ứng với kiểu liệu, có tương ứng Cú pháp khai báo hằng: Const = Sau ví dụ khai báo loại hằng: Const = #24/12/2004# Const phongban = "Tài vụ" 48 Chương 5: Lập trình VBA Const ok = True b Phạm vi Tương tự biến, có phạm vi hoạt động Hằng khai báo thủ tục nào, cục form, report module có tác dụng phạm vi Muốn có phạm vi toàn cục, phải khai báo sau từ khoá Public Const, vùng Decralations module sau: Public Const = Các cấu trúc lệnh VBA Các cấu trúc lệnh thành phần ngôn ngữ lập trình Thông thường ngôn ngữ lập trình có cấu trúc lệnh nhau: lệnh xử lý điều kiện, lệnh lặp biết trước số vòng lặp, lệnh lặp trước số vòng lặp, Tuy nhiên cách thể (cú pháp) cấu trúc lệnh khác tuỳ thuộc vào ngôn ngữ lập trình Hơn nữa, ngôn ngữ có số điểm khác biệt, đặc trưng cấu trúc lệnh Cũng giống nhiều ngôn ngữ lập trình đại khác, cấu trúc lệnh VBA tuân thủ nguyên tắc: - Có cấu trúc: cấu trúc lệnh có từ khoá bắt đầu từ khóa báo hiệu kết thúc - Thực (loại trừ trường hợp đặc biệt thủ tục Goto ) - Có khả lồng 3.1 Cấu trúc rẽ nhánh Cấu trúc rẽ nhánh hay gọi lệnh lựa chọn Tức điều kiện xảy gì, trái lại làm Cú pháp: If Then [ Else ] End If Ý nghĩa lệnh là: = True thực lệnh Trái lại thực lệnh Phần cặp dấu ngoặc vuông [ ] có câu lệnh, tuỳ 49 Chương 5: Lập trình VBA thuộc vào mục đích xử lý 3.2 Cấu trúc lựa chọn Đây loại cấu trúc lựa chọn Thông thường hoàn toàn sử dụng If End If để thực xử lý liên quan đến kiểu cấu trúc này, trường hợp đặc biệt, cấu trúc Select Case End Select thể tiện dụng vượt trội Cú pháp Select Case Case Case ……… Case [Case Else ] End Select Trong đó: trả giá trị kiểu vô hướng đếm như: số nguyên, xâu ký tự, kiểu lô gíc, Với cấu trúc này, VBA hoạt động sau: (1) Tính giá trị biểu thức (2) Kiểm tra = ? - Nếu thực kết thúc lệnh, thực lệnh sau từ khoá End Select - Nếu sai, thực tiếp việc so sánh = xử lý tương tự qui trình nêu (3) Trong trường hợp , i=1 n có khả năng: - Nếu có tuỳ chọn Case Else VBA thực ; - Nếu tuỳ chọn Case Else, VBA không thực thủ tục liệt kê vùng Select End Select mà chuyển tới thực lệnh sau từ khoá End Select 50 Chương 5: Lập trình VBA 3.3 Cấu trúc lặp a, Cấu trúc FOR … NEXT For… Next cấu trúc lặp biết trước số lần lặp VBA, nhiên tình đặc biệt, sử dụng cấu trúc cấu trúc trước số lần lặp Cú pháp: For = To [Step ] [Exit For] Next Trong đó: - biến kiểu vô hướng đếm được, hay dùng biến kiểu nguyên; - , giá trị mà biến chạy nhận thực dịch chuyển sau lần lặp Có thể dịch chuyển đơn vị, dịch chuyển nhiều đơn vị lần, dịch chuyển tiến, dịch chuyển lùi- tất điều tuỳ thuộc vào việc có hay tuỳ chọn [Step ]; - Nếu có tuỳ chọn [Step ] biến chạy dịch n đơn vị sau lần lặp Khi đó, n>0 dẽ dịch tiến, ngược lại dịch lùi; - Mỗi lần lặp, VBA thực lần; - Trong trường hợp đặc biệt gặp phải lệnh Exit For vòng lặp, thoát khỏi lệnh lặp thực lệnh tiếp sau từ khoá Next Chính Exit For làm tính lặp biết trước số lần lặp b, Cấu trúc WHILE … WEND While … Wend cấu trúc lặp trước số lần lặp VBA Cú pháp: While Wend Trong đó: - While, Wend từ khoá lệnh lặp; 51 Chương 5: Lập trình VBA - Nếu = True, lệnh thực Thực xong lại quay lên dòng lệnh While để kiểm tra tiếp ; - Nếu = False, thoát khỏi vòng lặp thực lệnh từ khoá Wend Chú ý: Luôn phải chứng minh rằng, sau số hữu hạn lần thực , giá trị phải False để thoát khỏi vòng lặp Trong trường hợp thoát khỏi vòng lặp, có nghĩa người lập trình mắc phải lỗi lặp vô hạn Có thể dẫn đến chương trình bị treo Lệnh DoCmd Chúng ta dùng lệnh DoCmd để thi hành công việc thông thường Access thông qua môi trường VBA Như: dùng DoCmd để mở form, mở report, query, lọc liệu, thi hành macro xử lý ghi, ứng dụng, Hầu hết thao tác xử lý đối tuợng Access dùng lệnh doCmd để gọi thực môi trường VBA Dưới liệt kê số phép xử lý lệnh DoCmd thông dụng: 4.1 Lệnh đóng đối tượng Lệnh để đóng (Close) giải phóng đối tượng khỏi nhớ Hay dùng lệnh để đóng form hoạt động đóng report preview Cú pháp sau: DoCmd.Close [ObjectType], [ObjectName], [SaveOption] Trong đó: ObjectType: kiểu đổi tượng cần đóng Cụ thể sau: - acForrm: Đóng form - acReport: Đóng report - acQuery: Đóng query - acTable: Đóng bảng ObjectName: tên đối tượng cần đóng; SaveOption: định tuỳ chọn ghi lại cấu trúc (nếu có thay đổi) Cụ thể: - SaveNo Không lại - SaveYes Luôn ghi lại - SavePromt Hiển thị hộp thoại nhắc để ghi có thay đổi 52 Chương 5: Lập trình VBA 4.2 Lệnh mở form Là lệnh hoàn chỉnh để mở thiết lập môi trường làm việc cho form Cú pháp sau: DoCmd.OpenForm [objectName], [ViewMode], [FilterName], [WhereCondition], [DataMode], [WindowsMode] Trong đó: ObjectName: tên form muốn mở ViewMode: chế độ mở Cụ thể - acDesign Mở form chế độ thiết kế - acNormal Mở form để thi hành FilterName: Đặt lọc WhereCondition: Giới hạn ghi nguồn liệu DataMode: thiết lập chế độ liệu form, cụ thể: WindowsMode: thiết lập kiểu cửa sổ form là: - acDialog: Kiểu hộp thoại - acWindowsNormal: Kiểu cửa sổ bình thường 4.3 Lệnh mở report Là lệnh hoàn chỉnh để mở thiết lập môi trường làm việc cho report Cú pháp sau: DoCmd.OpenReport [objectName], [ViewMode], [FilterName], [WhereCondition], [DataMode], [WindowsMode] Trong đó: ObjectName: tên Report muốn mở; ViewMode: chế độ mở Cụ thể: - acDesign: Mở Report chế độ thiết kế - acNormal: Mở Report để thi hành FilterName: Đặt lọc WhereCondition: Giới hạn ghi nguồn liệu DataMode: thiết lập chế độ liệu Report , cụ thể: WindowsMode: thiết lập kiểu cửa sổ Report là: - acDialog: Kiểu hộp thoại - acWindowsNormal: Kiểu cửa sổ bình thường 53 Chương 5: Lập trình VBA 4.4 Lệnh thi hành câu lệnh SQL Dùng để thi hành lệnh SQL Cú pháp sau: DoCmd.RunSQL Chương trình Chương trình đơn vị mã lệnh VBA, chứa tập hợp câu lệnh nhằm thao tác, tính toán điều khiển mục đích liệu Trong VBA có loại chương trình con: - Chương trình dạng thủ tục, khai báo từ khoá Sub - Chương trình dạng hàm, khai báo từ khoá Function Về chất, loại chương trình nhau: khai báo, tham số truyền tham số Tuy nhiên, điểm khác là: - Function trả giá trị kiểu vô hướng chuẩn, ví dụ: hàm Date() trả giá trị ngày kiểu Date Trong Access sẵn có nhiều hàm tính toán, chúng gọi build-in fuction Hơn nữa, người dùng hoàn toàn tạo hàm để sử dụng cho mục đích riêng loại hàm gọi user-define function; - Sub thực số công việc Tất nhiên công việc hoàn toàn làm thay đổi liệu theo mong muốn chương trình Cũng Function, Access VBA sẵn có thư viện thủ tục; người dùng tự tạo thêm thủ tục phục vụ việc xử lý liệu theo mục đích riêng Đặc biệt, Access định nghĩa thủ tục đáp ứng kiện Thủ tục tự động gọi kiện đáp ứng bị ảnh hưởng Chúng ta trở lại nội dung qua ví dụ lập trình VBA Tuỳ tính cụ thể lựa chọn sử dụng Function Sub 5.1 Chương trình dạng hàm Cú pháp Function ([]) As End Function Trong đó: - Function, End Function từ khoá bắt buộc khai báo cấu trúc chương trình dạng hàm; - tên gọi hàm định khai báo Tên không chứa dấu cách (space) ký tự đặc biệt; 54 Chương 5: Lập trình VBA - danh sách tham số cần thiết cho hàm Có hay danh sách tuỳ thuộc vào hàm cần định nghĩa; - kiểu liệu mà hàm trả lại Phần bắt buộc phải khai báo với hàm; - thân chương trình Trong câu lệnh = phải xuất lần thủ tục Câu lệnh có tác dụng gán giá trị cho hàm Chú ý: - Nếu từ khoá Public trước Function, hàm có tác dụng cục bộ: module, report form - Khi có từ khoá Public trước Function, hàm có tác dụng toàn cục Tức sử dụng nơi tệp Access Tất nhiên, tất khai báo Public phải khai báo phần Decralations Module Ví dụ: * Thiết kế hàm tổng để tính tổng hai số: Function Tong(a, b As Double) As Double Tong = a + b End Function * Thiết kế hàm kiểm tra tính nguyên tố số: Function laNguyenTo(so As Integer) As Boolean Dim uoc As Integer laNguyenTo = True If so > Then For uoc = To Int(Sqr(so)) If so Mod uoc = Then laNguyenTo = False Exit For End If Next End If End Function 5.2 Chương trình dạng thủ tục Cú pháp [Public] [Private] Sub ([]) End Sub Trong đó: - Sub, End Sub từ khoá bắt buộc khai báo cấu trúc chương trình dạng thủ tục; 55 Chương 5: Lập trình VBA - tên gọi thủ tục định khai báo Tên không chứa dấu cách (space) ký tự đặc biệt; - danh sách tham số cần thiết cho thủ tục Có hay danh sách tuỳ thuộc vào thủ tục cần tạo - thân chương trình Nếu từ khoá Public trước Sub, thủ tục có tác dụng cục bộ: module, report form Khi có từ khoá Public trước Sub, thủ tục có tác dụng toàn cục Tức sử dụng nơi tệp Access Tất nhiên, tất khai báo Public phải khai báo phần Decralations Module Ví dụ: * Xây dựng thủ tục thực tính tổng hai số: Sub tong2so(a, b As Double) tong = a + b ‘tong biến khai báo toàn cục End Sub Kỹ thuật xử lý lỗi Xử lý lỗi kỹ thuật quan trọng lập trình Đã lập trình khó tránh khỏi lỗi (Errors) Có nhiều nguyên nhân gây lỗi; nguyên nhân lường trước không lường trước Kỹ thuật xử lý lỗi bao gồm kỹ phát xử lý tình chương trình gây lỗi 6.1 Xử lý lỗi Là việc xử lý lập trình gặp phải lỗi Thông thường chạy thử chương trình lúc xây dựng phần mềm gặp phải lỗi, xuất hộp thoại thông báo lỗi có dạng: Thông thường hộp thoại thông báo lỗi gồm thành phần: - Thành phần báo lỗi bao gồm: 56 Chương 5: Lập trình VBA + Mã số lỗi - Mỗi lỗi mà VBA kiểm tra có mã số, hiển thị dòng thông báo: Run-time error 'mã số lỗi': Ví dụ : Run-time error '11': + Tên lỗi Ở ví dụ tên lỗi là: Division by zero - lỗi sai kiểu liệu - Thành phần xử lý lỗi gồm nút lệnh: + Nút End để dừng chương trình, chuyển chế độ Design thiết kế bình thường; + Nút Debug để dừng chương trình chuyển chế độ Break - sửa lỗi trực tiếp Khi câu lệnh lỗi tô màu vàng cho phép người lập trình sửa mã chương trình Chú ý: Cửa sổ Immediate công cụ hữu hiệu hỗ trợ việc dò lỗi bởi: hộp thoại cho phép thực thi câu lệnh chế độ hội thoại 6.2 Bẫy lỗi a, Sử dụng lệnh On Error Resume Next Sau sử dụng bẫy On Error Resume Next, từ chỗ trở đi, chương trình gặp lỗi, bỏ qua (ignore) hoàn toàn Điểm tiện chỗ giúp chương trình EXE ta tránh gặp lỗi thoát khỏi đột ngột phân tích Nhưng bất lợi khách hàng cho hay họ gặp trường hợp lạ, không giải thích (vì lỗi bị bỏ qua mà không để ý), ta bí luôn, không để gỡ lỗi Do đó, lúc gỡ lỗi ta không nên dùng nó, trước giao cho khách hàng bạn nên cân nhắc kỹ có nên sử dụng đoạn mã lệnh hay không Ví dụ: Sử dụng On Error Resume Next để bỏ qua lỗi: Function A_chia_B(a, b As Double) As Double On Error Resume Next A_chia_B = Null A_chia_B = a / b End Function Trong chương trình trên, b = 0, lệnh A_chia_B = a / b gặp phải lỗi Do có lời khai báo On Error Resume Next nên lệnh lỗi bỏ qua (không thực hiện) Tức giá trị hàm Null b, Sử dụng câu lệnh On Error Goto Khi thủ tục đặt câu lệnh này, gặp phải lỗi đó, VBA chuyển thẳng việc thực đến định Thông thường lệnh xử lý tính lỗi 57 Chương 5: Lập trình VBA Ví dụ: Sử dụng phương pháp On Error Goto để bẫy lỗi: Function A_chia_B(a, b As Double) As Double On Error GoTo Loi A_chia_B = a / b Msgbox “ Ok! “ Loi: If Err.Number = 11 Then MsgBox "Lỗi chia cho !" End If End Function Trong chương trình trên, trường hợp b = câu lệnh A_chia_B = a / b gây lỗi Theo khai báo On Error Goto Loi ban đầu, VBA bỏ qua tất lệnh sau lệnh lỗi chuyển thẳng tới lệnh sau nhãn Loi: Ở lệnh kiểm tra lỗi Nếu Mã lỗi = 11 kết luận thông báo lỗi tiếng Việt Lỗi chia cho ! Phương pháp dùng phổ biến trình xây dựng để phát lỗi, phần mềm đóng gói gửi đến khách hàng Mỗi gặp lỗi thông báo nguyên nhân gây lỗi tiếng Việt (chẳng hạn) mà không ảnh hưởng đến hoạt động khác phần mềm Trong phương pháp này, người lập trình nên khai thác tối đa đối tượng Err - đối tượng mang thông tin lỗi xảy ra, cụ thể: Hành động Kết Err.Description Mô tả tên lỗi Err.Number Đưa mã lỗi 58 [...]... Mod uoc = 0 Then laNguyenTo = False Exit For End If Next End If End Function 5. 2 Chương trình con dạng thủ tục Cú pháp [Public] [Private] Sub ([]) End Sub Trong đó: - Sub, End Sub là các từ khoá bắt buộc khai báo cấu trúc một chương trình con dạng thủ tục; 55 Chương 5: Lập trình VBA căn bản - là tên gọi thủ tục định khai báo Tên không được chứa dấu cách... Thành phần báo lỗi bao gồm: 56 Chương 5: Lập trình VBA căn bản + Mã số lỗi - Mỗi lỗi mà VBA có thể kiểm tra được đều có một mã số, được hiển thị ở dòng thông báo: Run-time error 'mã số lỗi': Ví dụ trên là : Run-time error '11': + Tên lỗi Ở ví dụ trên tên lỗi là: Division by zero - lỗi sai kiểu dữ liệu - Thành phần xử lý lỗi gồm 2 nút lệnh: + Nút End để dừng ngay chương trình, chuyển về chế độ Design... thuật rất quan trọng trong lập trình Đã lập trình thì khó tránh khỏi lỗi (Errors) Có rất nhiều nguyên nhân gây ra lỗi; các nguyên nhân này có thể được lường trước hoặc không được lường trước Kỹ thuật xử lý lỗi bao gồm các kỹ năng phát hiện và xử lý các tình huống khi chương trình gây lỗi 6.1 Xử lý lỗi Là việc xử lý khi đang lập trình gặp phải lỗi Thông thường khi chạy thử chương trình trong lúc đang xây... thường các lệnh tiếp theo của là xử lý các tính huống lỗi 57 Chương 5: Lập trình VBA căn bản Ví dụ: Sử dụng phương pháp On Error Goto để bẫy lỗi: Function A_chia_B(a, b As Double) As Double On Error GoTo Loi A_chia_B = a / b Msgbox “ Ok! “ Loi: If Err.Number = 11 Then MsgBox "Lỗi chia cho 0 !" End If End Function Trong chương trình con trên, trong trường hợp b = 0 câu lệnh A_chia_B = a /.. .Chương 5: Lập trình VBA căn bản - danh sách các tham số cần thiết cho hàm Có hay không có danh sách này tuỳ thuộc vào hàm cần định nghĩa; - kiểu dữ liệu mà hàm sẽ trả lại Phần này bắt buộc phải được khai báo với mỗi hàm; - thân chương trình con Trong đó câu lệnh = phải xuất... lỗi gồm 2 nút lệnh: + Nút End để dừng ngay chương trình, chuyển về chế độ Design thiết kế bình thường; + Nút Debug để dừng chương trình chuyển về chế độ Break - sửa lỗi trực tiếp Khi đó câu lệnh lỗi sẽ được tô bởi màu nền vàng cho phép người lập trình có thể sửa được mã chương trình Chú ý: Cửa sổ Immediate là công cụ hữu hiệu hỗ trợ việc dò lỗi bởi: hộp thoại này cho phép thực thi từng câu lệnh trên... thực thi từng câu lệnh trên chế độ hội thoại 6.2 Bẫy lỗi a, Sử dụng lệnh On Error Resume Next Sau khi sử dụng bẫy On Error Resume Next, từ chỗ đó trở đi, nếu chương trình gặp lỗi, nó sẽ bỏ qua (ignore) hoàn toàn Điểm này tiện ở chỗ giúp chương trình EXE của ta tránh gặp lỗi thoát khỏi đột ngột như phân tích ở trên Nhưng nó cũng bất lợi là khi khách hàng cho hay họ gặp những trường hợp lạ, không giải... Next A_chia_B = Null A_chia_B = a / b End Function Trong chương trình con trên, nếu b = 0, lệnh A_chia_B = a / b sẽ gặp phải lỗi Do có lời khai báo On Error Resume Next nên lệnh lỗi này được bỏ qua (không thực hiện) Tức là giá trị hàm là Null b, Sử dụng câu lệnh On Error Goto Khi một thủ tục được đặt câu lệnh này, nếu gặp phải một lỗi nào đó, VBA sẽ chuyển thẳng việc thực hiện đến đã chỉ... bằng tiếng Việt (chẳng hạn) mà vẫn không ảnh hưởng đến hoạt động khác của phần mềm Trong phương pháp này, người lập trình nên khai thác tối đa đối tượng Err - đối tượng mang những thông tin về lỗi đang xảy ra, cụ thể: Hành động Kết quả Err.Description Mô tả tên lỗi Err.Number Đưa ra mã lỗi 58 ... lệnh A_chia_B = a / b sẽ gây ra lỗi Theo như khai báo On Error Goto Loi ban đầu, VBA sẽ bỏ qua tất cả các lệnh sau lệnh lỗi và chuyển thẳng tới các lệnh sau nhãn Loi: Ở đây là lệnh kiểm tra lỗi Nếu Mã lỗi = 11 kết luận ngay một thông báo lỗi tiếng Việt Lỗi chia cho 0 ! Phương pháp này cũng được dùng phổ biến cả trong quá trình xây dựng để phát hiện lỗi, cũng như trong phần mềm đã đóng gói gửi đến khách ... sau: DoCmd.RunSQL Chương trình Chương trình đơn vị mã lệnh VBA, chứa tập hợp câu lệnh nhằm thao tác, tính toán điều khiển mục đích liệu Trong VBA có loại chương trình con: - Chương trình dạng thủ.. .Chương 5: Lập trình VBA * Cửa sổ Project Explorer Có nhiều thành phần lập trình VBA như: Forms, Reports, Modules Cửa sổ Project Explorer phân cấp lớp đối tượng có chứa mã lệnh VBA, đồng... DataMode: thiết lập chế độ liệu Report , cụ thể: WindowsMode: thiết lập kiểu cửa sổ Report là: - acDialog: Kiểu hộp thoại - acWindowsNormal: Kiểu cửa sổ bình thường 53 Chương 5: Lập trình VBA 4.4 Lệnh

Ngày đăng: 03/12/2015, 13:56

Từ khóa liên quan

Mục lục

  • 1. Môi trường lập trình VBA

  • 2. Kiểu dữ liệu - Biến - Hằng

    • 2.1 Kiểu dữ liệu cơ bản

      • a, Boolean

      • b, Byte

      • c, Integer

      • d, Long

      • e, Single

      • f, Double

      • g, Currency

      • h, String

      • i, Variant

      • j, Object

      • 2.2 Biến và cách sử dụng biến

        • a. Khai báo biến

        • b. Phạm vi biến

        • 2.3 Hằng và cách sử dụng hằng

          • a. Khai báo hằng

          • b. Phạm vi hằng

          • 3. Các cấu trúc lệnh VBA

            • 3.1 Cấu trúc rẽ nhánh

            • 3.2 Cấu trúc lựa chọn

            • 3.3 Cấu trúc lặp

              • a, Cấu trúc FOR … NEXT

              • b, Cấu trúc WHILE … WEND

              • 4. Lệnh DoCmd

                • 4.1 Lệnh đóng một đối tượng

Tài liệu cùng người dùng

Tài liệu liên quan