Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Các hàm phổ biến trong VBA – Hiểu và áp dụng trong Microsoft Access

Trong bài này chúng ta sẽ tìm hiểu các hàm thông dụng trong VBA mà bất kỳ lập trình viên nào cũng nên nắm rõ. Những hàm này giúp xử lý dữ liệu, kiểm tra điều kiện, và thực hiện chuyển đổi kiểu dữ liệu một cách hiệu quả trong các ứng dụng Access.


1. CLng() – Chuyển giá trị về kiểu số nguyên dài (Long)

✔ Mục đích:

Chuyển đổi giá trị (số thực, chuỗi, v.v.) về kiểu Long.

🧪 Ví dụ:

Dim inputStr As String
Dim orderNumber As Long

inputStr = "12345"
orderNumber = CLng(inputStr)   'Kết quả: 12345 dưới dạng Long

Nếu inputStr"123.45" hoặc "ABC" → sẽ báo lỗi, vì CLng chỉ chấp nhận giá trị có thể chuyển thành số nguyên.


2. CStr() – Chuyển sang chuỗi

✔ Mục đích:

Chuyển đổi mọi kiểu dữ liệu (số, ngày tháng, boolean, v.v.) về chuỗi.

🧪 Ví dụ:

Dim amount As Double
Dim result As String

amount = 123.45
result = CStr(amount)   'Kết quả: "123.45"

3. IsNull() – Kiểm tra giá trị NULL

✔ Mục đích:

Kiểm tra một biến hoặc trường có chứa giá trị Null hay không.

🧪 Ví dụ:

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT Phone FROM Customers WHERE ID=1")

If IsNull(rs!Phone) Then
    MsgBox "Chưa có số điện thoại"
End If

rs.Close

4. Nz() – Tránh lỗi khi gặp Null

✔ Mục đích:

Trả về một giá trị mặc định nếu biến là Null. Rất hữu ích trong tính toán.

🧪 Ví dụ:

Dim discount As Double
discount = Nz(rs!Discount, 0)  'Nếu rs!Discount là Null → discount = 0

5. DateDiff() – Tính khoảng cách giữa hai ngày

✔ Mục đích:

Tính toán khoảng cách theo ngày, tháng, năm, phút, giây...

🧪 Ví dụ:

Dim startDate As Date, endDate As Date
Dim daysDiff As Long

startDate = #1/1/2024#
endDate = Date
daysDiff = DateDiff("d", startDate, endDate)

MsgBox "Số ngày đã trôi qua: " & daysDiff

6. Format() – Định dạng giá trị thành chuỗi có cấu trúc

✔ Mục đích:

Chuyển đổi và định dạng kiểu hiển thị (ngày, số, tiền tệ...).

🧪 Ví dụ:

Dim salary As Double
salary = 1000000

MsgBox Format(salary, "#,##0")    'Hiển thị: 1,000,000
MsgBox Format(Date, "dd/mm/yyyy") 'Hiển thị: 06/06/2025

7. Len(), Left(), Right(), Mid() – Xử lý chuỗi

✔ Dùng để:

  • Len: lấy độ dài chuỗi
  • Left: lấy ký tự từ đầu
  • Right: lấy ký tự từ cuối
  • Mid: lấy chuỗi con giữa

🧪 Ví dụ:

Dim code As String
code = "KH2025A01"

MsgBox Left(code, 2)     'Kết quả: "KH"
MsgBox Right(code, 3)    'Kết quả: "A01"
MsgBox Mid(code, 3, 4)   'Kết quả: "2025"

8. MsgBox() – Hiển thị thông báo

✔ Mục đích:

Tạo hộp thoại thông báo hoặc xác nhận thao tác.

🧪 Ví dụ:

MsgBox "Cập nhật dữ liệu thành công!", vbInformation, "Thông báo"

📌 Kết luận

Hiểu và sử dụng thành thạo các hàm thông dụng này sẽ giúp bạn viết mã VBA ngắn gọn, dễ hiểu và an toàn hơn trong Microsoft Access. Trong các bài tiếp theo, chúng ta sẽ học cách:

  • Viết hàm VBA tùy chỉnh (Function)
  • Sử dụng vòng lặp, điều kiện nâng cao
  • Tương tác giữa form và VBA