liệu sử dụng điều khiển dữ liệu, nhiều hoạt động sẽ là không hợp lệ bởi vì chưa có mẩu tin hiện hành.
Ví dụ, nếu ứng dụng cho phép người sử dụng tạo một mẩu tin bằng cách quy định thuộc tính
EOFAction của điều khiển dữ liệu là AddNew, rổi cho phép người sử dụng thi hành phương thức
Delete trên mẩu tin hiện hành, ứng dụng sẽ báo lỗi.
Lỗi xảy ra bởi vì không có mẩu tin bị xoá. Để tránh tình huống này, ta có một vài lựa chọn. Nếu ta đã quen với Visual Basic, lựa chọn hiển nhiên là bẫy lỗi và cấm phương thức Delete. Nhưng có một phương thức tốt hơn để tránh rắc rối này : vô hiệu hoá nút Delete để ngăn cản người sử dụng nhấn nó trong lần đầu tiên .
1.4.3.2Dùng sự kiện moveComplete để cập nhật giao diện người sửdụng dụng
Ta có thể dùng sự kiện MoveComplete của điều khiển ADO Data để khởi động sửa đổi trong ứng dụng khi người sử dụng di chuyển từ mẩu tin này sang mẩu tin khác.
Sự kiện MoveComplete được kích hoạt sau khi một mẩu tin mới trở thành hiện hành. Đây là một trong vài sự kiện được kích hoạt khi điều khiển di chuyển từ một mẩu tin này sang mẩu tin khác. Các sự kiện khác bao gồm WillChange, được kích hoạt khi điều khiển di chuyển từ mẩu tin này san mẩu tin khác, hay thay đổi một mẩu tin và sự kiện RecordChangeComplete, xảy ra khi một mẩu tin được sửa đổi thành công trong cơ sở dữ liệu như một kết quả của hoạt động trong điều khiển dữ liệu.
Ta chủ yếu dùng sự kiện RecordChangeComplete để thực hiện các tác vụ sau:
Thi hành một câu truy vấn trên các mẩu tin liên quan đến mẩu tin chính Microsoft Access gọi nó là giao diện “biểu mẫu chính/ biểu mẫu con”.
Tính toán một giá trị dẫn xuất từ một hay nhiều giá trị trong mẩu tin.
Quản lý nhiều vấn đề về giao diện người sử dụng để đáp ứng với trạng thái Recordset của điều khiển dữ liệu, thi hành những công việc như là che giấu hoặc vô hiệu hoá tính năng nào đó nếu một mẩu tin hợp lệ vắng mặt.
Lưu ý: Điều khiển DAO Data cung cấp các sự kiện tương tự những sự kiện mô tả ở đây. Các sự kiện “Will” của điều khiển ADO Data ( như là WillMove và
WillChange ) gắn giống với sự kiện Validate của điều khiển DAO Data, trong khi các sự kiện “Complete” của điều khiển ADO Data ( như là
RecordChangeComplete và MoveComplete ) thì tương tự với sự kiện Reposition của điều khiển DAO Data.
Ví dụ : Ta quan tâm đến vùng mà khách hàng cư ngụ. Ta có thể viết chương trình để quy định chia các Tiểu bang, mỗi tiều bang là một vùng. Các Tiểu bang không có quan hệ kinh doanh sẽ được gắn giá trị Aunassigned. Ta có thể dùng điều khiển ADO Data để trình bày vùng của từng mẩu tin trong biểu mẫu như sau:
1. Trên biểu mẫu của ứng dụng điểu khiển dữ liệu, ta tạo một điều khiển nhân và đặt tên nó là lblRegion.
2. Trong thủ tục sự kiện MoveComplete của điều khiển ADO Data, đưa vào đoạn chương trình sau:
Private Sub datCusstomer_MoveComplete ( ByVal AddReason as
ADODB.EventReasonEnum, ByVal pError Ass ADODB.Error, asStatus As ADODB.EventStatusEnum, ByVal Rs as ADODB.Recordset )
Dim strST as String Dim StrRegion as String
If rs.BOF = false and Rs.EOF =False Then strST = RS.Field(“State”) & “” end if ‘Display region Select Case strST Case “VT”, “NH”, “CT” strRegion = “Northeast” Case “NC”, “KY”, “AR” strRegion = “South”
Case “OK”, “MN”, “MI”, “OH” strRegion = “Midwest” Case “MT” strRegion = “West” Case Else strRegion = “Unassigned” End Select lblRegion.Caption = strRegion End Sub.
3. Thi hành ứng dụng, ta sẽ thấy các vùng được hiển thị khi ta thay đổi từ màu này sang màu khác.