MS Access - Các chức năng tích hợp
Trong chương này, chúng ta sẽ làm việc với các Hàm dựng sẵn. Trong Access, có gần một trăm chức năng được tích hợp sẵn và hầu như không thể bao quát hết từng chức năng trong số đó. Trong chương này, chúng tôi sẽ trình bày về cấu trúc, cú pháp cơ bản và cách sử dụng một số hàm phổ biến hơn, cũng như các cạm bẫy để bạn có thể tự mình khám phá một số hàm khác.
Chức năng
Hàm là một thủ tục VBA thực hiện một tác vụ hoặc phép tính và trả về một kết quả. Các hàm thường có thể được sử dụng trong các truy vấn, nhưng có những nơi khác mà bạn có thể sử dụng các hàm.
Bạn có thể sử dụng các hàm trong thuộc tính bảng, ví dụ: nếu bạn muốn chỉ định giá trị mặc định cho trường ngày / giờ, bạn có thể sử dụng ngày hoặc Now chức năng gọi thông tin ngày / giờ hiện tại từ hệ thống của bạn và nhập giá trị đó tự động.
Bạn cũng có thể sử dụng các hàm trong một biểu thức khi tạo trường được tính toán hoặc sử dụng các hàm bên trong các điều khiển biểu mẫu hoặc báo cáo. Bạn có thể sử dụng các hàm ngay cả trong các đối số macro.
Các hàm có thể khá đơn giản, không yêu cầu thông tin nào khác được gọi, hoặc chỉ cần tham chiếu một trường từ bảng hoặc truy vấn.
Mặt khác, chúng cũng có thể trở nên khá phức tạp, với nhiều đối số, tham chiếu trường và thậm chí các hàm khác được lồng bên trong một hàm khác.
Bây giờ chúng ta hãy xem xét một số ví dụ về việc sử dụng các hàm dựng sẵn.
Chức năng Ngày & Giờ
Bây giờ chúng ta hãy hiểu các chức năng Ngày và Giờ -
Hàm Date () được thiết kế để trả về ngày hệ thống hiện tại. Hàm này không yêu cầu bất kỳ đối số hàm hoặc thông tin bổ sung nào. Tất cả những gì bạn phải làm là viết tên của hàm và các dấu ngoặc đơn mở và đóng.
Có hai hàm tích hợp rất giống nhau là Time () và Now ().
Hàm Time () chỉ trả về thời gian hiện tại của hệ thống và Hàm Now () trả về cả ngày và giờ hệ thống hiện tại.
Tùy thuộc vào dữ liệu mà bạn muốn theo dõi, lưu trữ hoặc truy vấn, bạn có ba hàm tích hợp, dễ sử dụng để giúp thực hiện tác vụ đó.
Bây giờ hãy để chúng tôi mở cơ sở dữ liệu của bạn và tạo một truy vấn mới bằng cách sử dụng thiết kế truy vấn và thêm tblProjects và tblTasks.
Thêm ProjectName từ tblProjects và TaskTitle, StartDate và DueDate từ tblTasks và chạy truy vấn của bạn.
Bây giờ bạn có thể xem tất cả các nhiệm vụ khác nhau từ tất cả các dự án. Nếu bạn muốn xem các nhiệm vụ dự án đang được thực hiện vào ngày hôm nay, thì chúng ta phải chỉ định một tiêu chí bằng cách sử dụngDate() Chức năng xem xét các dự án bắt đầu vào hoặc sau ngày hôm nay.
Bây giờ chúng ta hãy xác định các tiêu chí bên dưới Ngày bắt đầu.
Tiêu chí bắt đầu bằng một toán tử greater than symbol, tiếp theo là một equal to symbol và sau đó Date Function.
Khi chúng tôi chạy truy vấn này, tất cả các tác vụ sẽ xảy ra vào ngày hôm nay hoặc trong tương lai như trong ảnh chụp màn hình sau.
Đây là một ví dụ về cách bạn có thể sử dụng hàm Date () làm tiêu chí truy vấn.
Bây giờ chúng tôi nói rằng truy vấn này cần phải linh hoạt hơn về ngày tháng mà nó sẽ kéo bắt đầu từ tuần này.
Chúng tôi có một số nhiệm vụ khác nhau đã bắt đầu trong tuần này, không hiển thị trong danh sách hiện tại này, vì tiêu chí của chúng tôi. Nó xem xét các ngày bắt đầu bằng ngày hôm nay hoặc cao hơn.
Nếu chúng ta muốn xem các nhiệm vụ đã bắt đầu trong tuần này, chưa hoàn thành hoặc sẽ hoàn thành ngày hôm nay, hãy quay lại Chế độ xem thiết kế.
Ở đây, chúng tôi sẽ thêm một số thông tin bổ sung cho các tiêu chí này. Trên thực tế, chúng tôi muốn nó lớn hơn hoặc bằng ngày hôm nay trừ đi bảy ngày.
Nếu chúng ta nhập trừ bảy và chạy truy vấn, bạn cũng có thể thấy các nhiệm vụ đã bắt đầu trong tuần này.
Hàm DateDiff ()
Hàm DateDiff () là một hàm ngày / giờ rất phổ biến khác. Hàm DateDiff trả về một Biến thể (dài), chỉ định số khoảng thời gian giữa hai ngày được chỉ định. Nói cách khác, nó tính toán sự khác biệt giữa hai ngày và bạn có thể chọn khoảng thời gian mà hàm tính toán sự khác biệt đó.
Bây giờ chúng ta hãy nói rằng chúng ta muốn tính tuổi tác giả của chúng ta. Đối với điều này, trước tiên chúng ta cần tạo một truy vấn mới và thêm bảng tác giả của chúng ta, sau đó thêm các trường FirstName, LastName và BirthDay.
Chúng ta có thể tính tuổi của mọi người bằng cách tính toán chênh lệch giữa ngày sinh hoặc ngày sinh của họ và bất kể ngày hôm nay là gì.
Hãy để chúng tôi thử sử dụng Hàm DateDiff trong một trường mới.
Chúng ta hãy gọi nó là Age, theo sau là dấu hai chấm, rồi viết Hàm DateDiff.
- Đối số hàm đầu tiên cho hàm DateDiff là khoảng thời gian, vì vậy hãy nhập “yyyy”.
- Đối số hàm tiếp theo là ngày đầu tiên mà chúng ta muốn tính theo, trong trường hợp này, sẽ là trường Sinh nhật.
- Đối số hàm thứ ba là bất kể ngày hôm nay là gì.
Bây giờ, hãy chạy truy vấn của bạn và bạn sẽ thấy trường mới hiển thị tuổi của từng tác giả.
Hàm Format ()
Hàm Format () trả về một chuỗi, chứa một biểu thức được định dạng theo hướng dẫn có trong một biểu thức định dạng. Đây là danh sách các định dạng do người dùng xác định có thể được sử dụng trong Format () function.ss
Cài đặt | Sự miêu tả |
---|---|
yyyy | Năm |
q | Phần tư |
m | tháng |
y | Ngày trong năm |
d | ngày |
w | Ngày trong tuần |
đệ | Tuần |
h | Giờ |
n | Phút |
S | Thứ hai |
Bây giờ chúng ta hãy quay lại truy vấn của bạn và thêm nhiều trường giống nhau bằng cách sử dụng hàm Format ().
Nhập chức năng định dạng. Đối số hàm đầu tiên sẽ là một biểu thức, có thể là hầu hết mọi thứ. Bây giờ chúng ta hãy đặt trường sinh nhật làm trường đầu tiên và việc tiếp theo là viết định dạng của chúng ta. Trong trường hợp này, chúng ta cần tháng, tháng, ngày, ngày. Viết “mmdd” trong dấu ngoặc kép và sau đó, chạy truy vấn của bạn.
Bây giờ nó đang lấy ngày từ trường sinh nhật, 4 là tháng và 17 là ngày.
Hãy để chúng tôi thêm “mmm” và “mmmm” thay vì “mmdd” trong các trường tiếp theo như trong ảnh chụp màn hình sau.
Chạy truy vấn của bạn và bạn sẽ thấy kết quả như trong ảnh chụp màn hình sau.
Trong trường tiếp theo, nó sẽ trả về 3 ký tự đầu tiên từ tên của tháng cho ngày sinh đó và trong trường cuối cùng, bạn sẽ nhận được tên đầy đủ của tháng.
Để xem tháng tiếp theo là năm kể từ ngày sinh nhật, chúng ta hãy thêm “yyyy” như được hiển thị trong ảnh chụp màn hình sau.
Hãy để chúng tôi chạy lại truy vấn của bạn.
Bây giờ bạn sẽ thấy tháng được theo sau bởi dấu phẩy và sau đó là năm.
Hàm IIf ()
Hàm IIf () là chữ viết tắt của "Nếu ngay lập tức" và hàm này đánh giá một biểu thức là đúng hoặc sai và trả về một giá trị cho mỗi. Nó có tối đa ba đối số hàm, tất cả đều là bắt buộc.
- Đối số đầu tiên là bất kỳ biểu thức nào mà bạn muốn đánh giá.
- Đối số tiếp theo là viết tắt của phần true, có thể là một giá trị hoặc một biểu thức được trả về nếu biểu thức đầu tiên của bạn là true.
- Đối số cuối cùng là những gì bạn muốn trả về nếu biểu thức của bạn là sai.
Thí dụ
Hãy để chúng tôi lấy một ví dụ đơn giản. Chúng tôi sẽ tạo một truy vấn mới bằng cách sử dụng thiết kế truy vấn và thêm bảng tblAuthors, sau đó thêm các trường sau.
Bây giờ bạn có thể thấy chúng ta có ba trường - FirstName, MiddleInitial, LastName, và sau đó là trường nối này, kéo cả ba trường lại với nhau. Hãy để chúng tôi chạy truy vấn của bạn để xem kết quả của truy vấn này.
Bây giờ, bạn có thể thấy kết quả của truy vấn, nhưng bạn cũng sẽ nhận thấy rằng một số bản ghi không có chữ cái đầu ở giữa. Ví dụ: bản ghi Joyce Dyer không có chữ cái đầu ở giữa, nhưng trong trường FullName, bạn sẽ thấy khoảng thời gian thực sự không cần phải có. Vì vậy, hãy quay lại Chế độ xem thiết kế. Ở đây, chúng tôi sẽ nối tên theo một cách khác bằng cách sử dụng Hàm IIf.
Hãy để chúng tôi viết tên trong một trường khác và gọi nó là FullName1 và sau đó nhập hàm IIf.
Đối số hàm đầu tiên cho hàm If ngay lập tức sẽ là biểu thức của bạn. Trong biểu thức, chúng ta sẽ xem trường khởi tạo ở giữa trống hay rỗng.
Đối số tiếp theo là phần đúng. Vì vậy, nếu chữ cái đầu ở giữa là null thì chúng tôi muốn hiển thị FirstName và LastName.
Bây giờ, đối với phần sai của chúng tôi - nếu MiddleInitial không rỗng, thì chúng tôi muốn hiển thị FirstName, MiddleInitial và LastName.
Bây giờ hãy để chúng tôi chạy truy vấn của bạn và bạn sẽ thấy kết quả như trong ảnh chụp màn hình sau.