Bài 5.2: KHAI BÁO CẤU TRÚC ĐIỀU KHIỂN

Giới thiệu :

Trong quá trình lập trình xử lý cơ sở dữ liệu với Access Basic (VBA), các câu lệnh thông thường sẽ được thực thi tuần tự từ trên xuống dưới. Tuy nhiên, để giải quyết các bài toán thực tế có tính rẽ nhánh (ví dụ: kiểm tra điều kiện lương, xếp loại học lực, phân quyền người dùng) hoặc cần lặp đi lặp lại một công việc nhiều lần (ví dụ: duyệt qua danh sách bản ghi, tính toán cộng dồn), chúng ta cần sử dụng đến các cấu trúc điều khiển. Bài 5.2 trình bày chi tiết về cấu trúc quyết định, cấu trúc lặp và các lệnh điều hướng dòng thực thi trong chương trình.

Mục tiêu :

  • Nắm vững cú pháp và cách sử dụng các cấu trúc quyết định: If...Then, If...Then...Else, và Select Case.

  • Sử dụng thành thạo các cấu trúc lặp: Do...Loop, While...Wend, và For...Next.

  • Vận dụng linh hoạt các lệnh thoát khỏi thủ tục (Exit Sub, Exit Function) và các lệnh gọi thi hành hành động (DoCmd).

  • Viết được các đoạn mã chương trình xử lý logic nghiệp vụ hoàn chỉnh trong đơn thể (Module).

3. KHAI BÁO CẤU TRÚC ĐIỀU KHIỂN

3.1. Khai báo cấu trúc quyết định

Cấu trúc quyết định dùng để rẽ nhánh chương trình dựa trên kết quả kiểm tra một hoặc nhiều điều kiện logic.

3.1.1. Khai báo cấu trúc If … Then

Dùng để thực hiện một hoặc một nhóm câu lệnh khi một điều kiện cho trước thỏa mãn (True). Nếu điều kiện sai (False), chương trình bỏ qua khối lệnh bên trong.

  • Cú pháp dạng dòng đơn:

    If <Điều_kiện> Then <Câu_lệnh>
    
  • Cú pháp dạng khối:

    If <Điều_kiện> Then
        <Khối_câu_lệnh_1>
        ...
    End If
    
  • Ví dụ:

    If HeSo > 5.0 Then 
        MsgBox "Nhân viên thuộc hệ số lương cao!", vbInformation, "Thông báo"
    End If
3.1.2. Khai báo cấu trúc If … Then … Else

Dùng để phân chia chương trình thành hai nhánh rẽ: một nhánh thực hiện khi điều kiện đúng (True) và một nhánh thay thế (Else) khi điều kiện sai (False). Có thể kết hợp nhiều tầng ElseIf để kiểm tra nhiều trường hợp.

  • Cú pháp:

    If <Điều_kiện_1> Then
        <Khối_lệnh_1>
    ElseIf <Điều_kiện_2> Then
        <Khối_lệnh_2>
    Else
        <Khối_lệnh_3>
    End If
    
  • Ví dụ:

    If NamTN >= 10 Then
        PhuCap = 1000000
    ElseIf NamTN >= 5 Then
        PhuCap = 500000
    Else
        PhuCap = 200000
    End If
    
3.1.3. Khai báo cấu trúc Select Case

Là cấu trúc rẽ nhánh tối ưu hơn If...ElseIf khi cần kiểm tra một biểu thức với nhiều giá trị rời rạc hoặc các khoảng giá trị khác nhau.

  • Cú pháp:

    Select Case <Biểu_thức>
        Case Giá_trị_1
            <Khối_lệnh_1>
        Case Giá_trị_2, Giá_trị_3
            <Khối_lệnh_2>
        Case Is > Giá_trị_4
            <Khối_lệnh_3>
        Case Else
            <Khối_lệnh_mặc_định>
    End Select
    
  • Ví dụ:

    Select Case XepLoai
        Case "A", "G"
            Thuong = 1000000
        Case "K"
            Thuong = 700000
        Case Else
            Thuong = 300000
    End Select

Bài tập 5.2.1

Form Bài 5: Tìm số lớn nhất, nhỏ nhất trong 3 số nhập vào từ bàn phím. Hãy giải thích từng dòng lệnh. Hướng dẫn cách làm

Bài tập 5.2.2

Form Bài 6:Viết phần mềm tính tiền điện theo bậc thang. Hướng dẫn cách làm

Dưới đây là biểu giá điện sinh hoạt hiện hành (áp dụng từ ngày 10/05/2025 theo Quyết định 1279/QĐ-BCT):

  • Bậc 1: Cho 0 – 50 kWh đầu tiên: 1,984 VND/kWh
  • Bậc 2: Cho 51 – 100 kWh tiếp theo: 2,050 VND/kWh
  • Bậc 3: Cho 101 – 200 kWh tiếp theo: 2,380 VND/kWh
  • Bậc 4: Cho 201 – 300 kWh tiếp theo: 2,998 VND/kWh
  • Bậc 5: Cho 301 – 400 kWh tiếp theo: 3,350 VND/kWh
  • Bậc 6: Từ 401 kWh trở lên: 3,460 VND/kWh

Bài tập 5.2.3

Form Bài 7: Giải và biện luận phương trình bậc nhất ax+b=0. Hướng dẫn làm bài