Trong Microsoft Access có nhiều hàm được tạo sẵn, nhưng đôi khi các hàm đó không phục vụ được tất cả các công việc của người viết chương trình, do đó việc tạo thêm các hàm người dùng là việc không thể thiếu trong lập trình.
Hàm người dùng là các hàm của người viết định nghĩa, thường các hàm người dùng được viết trên những tờ đơn thể riêng (Module).
1. Parameters:
Khai báo Parameters tạo ra sự trao đổi thông số giữa người sử dụng và máy tính.
Khi khai báo Parameters chú ý khai báo rõ kiểu dữ liệu: dữ liệu thuộc kiểu dữ liệu nào, độ rộng và phạm vi sử dụng đối với kiểu Numberic.
Chú ý rằng mặc định kiễu chuỗi (String) có độ rộng 255 nếu trong câu lệnh không khai báo độ rộng tường minh.
Khai báo Parameters thường khai báo trong các Query, và chuỗi text muốn xuất ra được bao trong cặp móc vuông theo cú pháp:
Parameters [Text] type. Ví dụ:
Parameters [Ty gia] Value, [Ngay cong] Byte. Ví dụ:
Parameters [Bang luong thang: ] Text, [Xin cho biet ty gia ] Value,
[So ngay lao dong] Byte;
Select Distinctrow NHANVIEN.MANV,NHANVIEN.HTEN, NHANVIEN.LGCB,LAODONG.NGAYCONG AS NGAY
[LGCB]*[Xin cho biet ty gia ]*IIF([NGAYCONG]<=[So ngay lao dong], [NGAYCONG],[NGAYCONG]*2-[So ngay lao dong]) AS LUONG, IIF([BCHE],200,100)*[Xin cho biet ty gia ] AS PCAP
[Bang luong thang: ] AS THANG
FROM NHANVIEN INNER JOIN LAODONG ON NHANVIEN.MANV=LAODONG.MANV ORDER BY NHANVIEN.LGCB DESC;
Một số ví dụ:
Đưa một đối số là mã chức vụ vào hàm FilterStringAliasd sẽ trả về mã số của người đang giữ chức vụ đó, Microsoft Access không cung cấp cho ta được hàm thực hiện nhiệm vụ này, do đó ta phải viết hàm FilterStringAliasd nhằm đáp ứng nhu cầu trên:
Giải thuật: FilterStringAliasd truy tìm đối số đưa vào trên Table có tên T_TO, nếu thấy, hàm sẽ trả về chuỗi ghi nhận mã số của người đang giữ chức vụ đó.
Function FilterStringAliasd(ByVal MaCV_Connect As String) As String Dim Chuoi As String
Set MyDataBase = CurrentDb
Set MyTabConnect = MyDataBase.OpenRecordset("T_TO") MyTabConnect.MoveFirst
Do Until MyTabConnect.EOF
If MyTabConnect!CHUCVU = MaCV_Connect Then Chuoi = MyTabConnect!MACC
End If
MyTabConnect.MoveNext Loop
FilterStringAliasd = Chuoi End Function
Sau khi hoàn tất đoạn chương trình trên, Microsoft Access ghi nhận nó là một trong các hàm số, và ta có thể sử dụng bất kỳ lúc nào.