Chương trình phải là một ADP (Access Data Project), không phải là MDB. 2. Dự án có thể tiếp tục kết nối sang cơ sở dữ liệu ‘config’ của SQL Server. 3. Tất cả dữ liệu phải được lưu trữ trong các cơ sở dữ liệu ‘client’ SQL Server. | Recordset trong Access Data Project 1. Chương trình phải là một ADP Access Data Project không phải là MDB. 2. Dự án có thể tiếp tục kết nối sang cơ sở dữ liệu config của SQL Server. 3. Tất cả dữ liệu phải được lưu trữ trong các cơ sở dữ liệu client SQL Server. 4. Các form phải kết nối tới cơ sở dữ liệu client chính xác trong thời gian chạy. Bạn có thực hiện điều này Tất cả cơ sở dữ liệu CSDL được đặt trên một SQL Server đơn nhưng ứng dụng có thể cần lấy dữ liệu từ bất kỳ một nguồn trong số đó. Ở một số trường hợp người dùng yêu cầu trích lấy dữ liệu từ một CSDL cụ thể. Họ có thể khởi phát hoạt động sử dụng CSDL riêng và ứng dụng phải được trỏ động tới nơi lưu trữ dữ liệu chính xác. Ý nghĩ đầu tiên của tôi là phải thay đổi thuộc tính kết nối của ứng dụng ADP mỗi khi người dùng chọn một CSDL khác nhau. Nhưng điều này không đơn giản mà cũng chẳng dễ dàng gì. Thay đổi kết nối trong thời gian chạy cũng giống như bắt con ngựa đua phải quay ngược lại giữa đường đua. Khi một thuộc tính kết nối của ADP bị đóng tất cả form đều bị huỷ. Giải pháp cuối cùng rất dễ chịu và có thể dùng lại được. Trong một nutsell nó gồm những phần sau Kết nối ADP được gắn với CSDL config. CSDL config quản lý đăng nhập người dùng. Config bao gồm một danh sách CSDL client. Nhiệm vụ cho tất cả client nằm trong CSDL Config. ADP có hai thủ tục đơn giản hoá chuyển đổi. Thủ tục con LoadDbsConnectString ClientID . Hàm GetRecordset SQL As Recordset. Dữ liệu Form và Control được load qua thuộc tính Recordset. Thuộc tính phải để trống. Thuộc tính phải được thiết lập ở mã VBA. Phải dùng toán tử Set. Bảng bảng ảo view hoặc thủ tục lưu trữ có thể được sử dụng. Ví dụ bên dưới hình minh hoạ là frmAddress ở mô hình thiết kế. Form này sẽ đòi hỏi thiết lập bốn recordset một cho dữ liệu của form và ba cho các hộp combo box. Chú ý là recordset cho một trong ba hộp đó cboStateCode sẽ phụ thuộc vào giá trị được chọn trong tuỳ chọn country đất nước cboCountryID. Chúng ta sẽ xem có thể .