Chương 1: GIỚI THIỆU VE VBA

Một phần của tài liệu Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1 (Trang 49 - 53)

CAU TRUC LOGIC DIEU KIEN VA VONG LAP

Chương 1: Chương 1: GIỚI THIỆU VE VBA

End If

Một hay nhiều câu lệnh có thể hiện diện trong khéi If .. End Iƒ Câu lệnh kết thie End 1ƒ đánh dấu điểm cuối cùng của khối.

VBA thực hiện các câu lệnh bên trong khối chỉ khi nào điều kiện có giá tri True (ding). Bạn có thể xếp khối câu lệnh 1ƒ... End 1ƒ lồng vào trong khối khác.

Dang biến thể thứ hai của câu lệnh /ƒ.. Then là bạn có thể thực hiện một trong hai khối lệnh tùy thuộc vào điều kiện. Cú pháp như sau:

If condition Then Statements1 Else

Statements2 End If

Mẫu cấu tạo của câu lệnh này thực thi một trong hai khối lệnh. Khi điều kiện là đúng, các câu lệnh trong nhóm thứ nhất sẽ được thực hiện, ngược lại các câu lệnh trong nhóm thứ hai sẽ được thực hiện.

Dạng này linh hoạt hơn dạng đầu, nhưng nó cũng còn bị hạn chế bởi vì chỉ có hai sự lựa chọn. Tất nhiên bạn cũng có thể đặt câu lénh If .. Then léng vào nhau để có nhiều lựa chọn hơn nữa. Thế nhưng VBA còn đưa ra dạng thứ ba, dạng này đơn giản có thé thi hành một trong ba hoặc nhiều khối lệnh. Cú pháp như sau:

If condition? Then

‘Statements

Elself condition2 Then

‘Statements

Else

41

‘Statements End tí

Đây là cấu trúc của câu lénh If. Then két hop chat chẽ các điều kiện phức tạp của ba hoặc nhiều nhóm lệnh. Bạn có thể dễ dàng bổ sung các nhóm lệnh và các điều kiện mới bằng cách chèn cdc ménh dé ElseIf với các điểu kiện và câu lệnh của chúng. Dạng biến thể này không những mạnh mẽ hơn biến thể thứ hai vì nó có thé xét đến nhiều điều kiện mà nó còn hạn chế thực thi từng khối lệnh (ngoại trừ khối lệnh cuối cùng) trong trường hợp ở đó có sự phối hợp việc kiểm tra điều kiện. Câu lệnh 7. Then thuec thi khối lệnh thứ hai nếu như điều kiện cho khối lệnh thứ nhất là sai. Khi một giá trị không thích hợp với điều kiện thứ nhất và thứ hai, bạn cần khảo sát câu lệnh If. Then thudc bién thể thứ ba.

Hãy xem một form trình bày trong Hình 1-15, trong đó có một hộp văn bản, một nhóm tùy chọn và một nút lệnh. Nhóm tùy chọn cho phép người dùng sử dụng một trong hai phép toán bình phương (Square) hay lập phương (Cube) để tính giá trị số được nhập trong hộp văn bản. Để tính bình phương của một số, bạn gõ số đó vào hộp văn bản, chọn phép toán Square trong nhóm tùy chọn Compute Type rồi click nút Compute.

E frmCalculator3 : Form - ra. -lxj

Input: |

Compute Type

& Square it & Cube it

Compute!

Hình 1-15. Một form để tính bình phương hoặc lập phương của một số.

Chương 1; GIỚI THIỆU VỀ VBA

Đoạn chương trình dưới đây có hai thủ tục để thực hiện phép tính bình phương. Thủ tục sự kiện CmdComputer-Click đáp lại thao tác click. Nếu (opgComputeType) của nhóm tùy chọn bằng 1, nghĩa là người dùng chọn nút tuy chon Square It. Thủ tục này sẽ gọi MySquarer khi nhóm tùy chọn bằng 1, ngược lại sẽ chấm đứt mà không thực hiện phép tính nào cả.

Sub cmdComputer_Click() If opgComputeType = 1 Then

MySquarer txtInput. Value End If

End Sub

Sub MySquarer(MyOtherNumber As Double) dblResult = MyOtherNumber * MyOtherNumber MsgBox dblResult, vbInformation, _

"Programming Microsoft Access 2000"

End Sub

Day la tha tuc emdComputer_Click sit dung cấu tric If ... Then thứ nhất. Nó thực thi một khối lệnh đơn chỉ có một điều kiện duy nhất. Trong trường hợp này, khối lệnh chỉ có một dòng. Nếu người ding chon Square It, thủ tục MySquare sẽ thực hiện phép tính bình phương cho giá trị trong hộp văn bản và cho hiện kết quả trong hộp thông báo.

Nếu người dùng chọn Cube It trước khi click nút lệnh, chương trình không làm gì cả. Nhóm tùy chọn trả về giá trị là 2 nhưng không có điều kiện nào phát hiện ra giá trị này. Trên thực tế, hầu như tất cả hoặc không có gì khi nhóm tùy chọn bằng 1. Đoạn chương trình sau trình bày phiên bản mới của thủ tục sự kiện cùng với đoạn chương trình xử lý tình huống khi người dùng không chọn Square It.

Sub cmdComputer_Click()

If SpgComputeType = 1)Then

MySquarer txtInput. Value Else

43

MyCuber txtinput. Value End If

End Sub

Sub MyCuber(MyOtherNumber As Double) Dim dbiResult As Double

db!iResult = MyOtherNumber 4 3 MsgBox dbiResult, vbInformation, _

“Programming Microsoft Access 2000"

End Sub

Thu tue cmdComputer_Click stt dung bién thé cấu trúc thứ hai của câu lệnh If .. Then. N6 goi thi tuc MySquare néu opgComputeType bang 1, ngược lại sẽ gọi thủ tục MxyCuber. Việc:

này thực hiện đúng đắn nếu người dùng chọn Cube It. Tuy nhiên, vẫn còn tổn tại một vấn để: Khi form mở ra nhưng không có tùy chọn nào được chọn. Nếu người dùng nhập vào một số trong hộp văn bản rồi click nút lệnh, form sẽ trả về kết quả lấp phương của số mặc dù người dùng không chọn nút tùy chọn nào cả. Đây là lỗi giả dối trong câu lệnh 7ƒ..7hen. Vì lý do đó, chúng ta cân phải sử dụng biến thể thứ ba của lệnh ùƒ.. Tben với hai điều kiện tỏch biệt nhau — một điều kiện cho bình phương và một điều kiện cho lập phương. Đoạn chương trình sau trình bày vấn để này:

Sub cmdComputer_Click() If opgComputeType = 1 Then

MySquarer txtinput. Value Elself opgComputeType = 2 Then

MyCuber txtlnput. Value Else

MsgBox "Click a computation type’, vbCritical, _

“Programming Microsoft Access 2000"

End If End Sub

Ví dụ này gồm hai điều kiện: Một diéu kiện để kiểm tra nhóm tùy chon bằng 1 và điều kiện kia kiểm tra nhóm tùy chọn có bằng 2 hay không. Nếu không có điều kiện nào thỏa mãn, thủ tục

Một phần của tài liệu Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1 (Trang 49 - 53)

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

(383 trang)