Quản lý recordset trong Access Data Project
Số trang: 6
Loại file: pdf
Dung lượng: 183.33 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Đã có rất nhiều bài viết về quản lý tập hợp bản ghi (recordset) với đối tượng form (biểu mẫu), control (điều khiển) và report (báo cáo) trong cơ sở dữ liệu Microsoft Access.
Nội dung trích xuất từ tài liệu:
Quản lý recordset trong Access Data ProjectQuản lý recordset trong Access Data ProjectNguồn:quantrimang.comĐã có rất nhiều bài viết về quản lý tập hợp bản ghi (recordset) với đốitượng form (biểu mẫu), control (điều khiển) và report (báo cáo) trong cơ sởdữ liệu Microsoft Access. Nhưng gần đây, tôi buộc phải phát triển một ứngdụng với khuynh hướng khá mới, đòi hỏi một số thao tác sáng tạo trênrecordset. Các yêu cầu để thực hiện: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 SQLServer đơ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 đượctrỏ độ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ỗikhi 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ắtcon ngựa đua phải quay ngược lại giữa đường đua. Khi một thuộc tính kết nốicủ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 Form.RecordSource phải để trống. • Thuộc tính Form.RecordSet 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ộpcombo 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ể load form này với dữ liệu như thế nào.Chú ý: Hiện nay không có mã nguồn để download. Bởi để làm việc với các kếtnối đòi hỏi phải có lượng rất lớn mã nguồn. Do người đọc thường có máy chủ vàCSDL riêng nên điều này trở thành một vấn đề không đơn giản để triển khai.Thiết lập kết nối ADPNhư đã đề cập tới ở trên, bước đầu tiên là thiết lập toàn diện kết nối cho ADP.Trong trường hợp của chúng ta, đây là thiết lập cho CSDL Config chứa thông tinvề các database client khác nhau mà ứng dụng có thể trỏ tới.Thuộc tính Connection của ADP có thể được thiết lập dễ dàng trong thời gianthiết kế mà không cần phải chỉnh sửa bởi người dùng. Đơn giản chỉ cần chọnConnection từ menu File và điền đầy đủ giá trị yêu cầu trong hộp thoại.Hộp thoại này có một nút Test Connection (kiểm tra kết nối), nhưng nó là mộtplacebo (hộp để giữ chỗ). Bạn chỉ có thể chọn một CSDL nếu nhập một serverhợp lệ. Nếu bạn có cả tên server và database hợp lệ, sẽ chẳng có cái gì để phảikiểm tra cả. Nếu muốn yên tâm hơn, kích vào nút Test Connection để kiểm tra lạitrước khi đóng hộp thoại.Tạo các thủ tụcTheo các yêu cầu ở trên, nguồn cho client data (dữ liệu cho máy khách) phảinằm ở dạng JIT (just in time, tức tạm thời). Những nguồn này có thể là khi ngườidùng lựa chọn tìm kiếm một CSDL cụ thể hoặc là kết quả sau khi thực hiện mộtnhiệm vụ gắn với một cơ sở dữ liệu client cụ thể. Nhưng kết luận cuối cùng thì,bạn sẽ không biết CSDL nào được trỏ tới trước khi form được mở.Để đáp ứng yêu cầu này, chúng tôi tạo một giá trị xâu tổng thể (g_ClientCnn),chia nhỏ xâu kết nối đầy đủ vào CSDL client được yêu cầu. Do đó, khi một yêucầu dữ liệu được thực hiện, chúng tôi sẽ xác định ClientID phù hợp và đưa nóvào thủ tục con thiết lập xâu kết nối. (Xem đoạn mã bên dưới để hiểu chi tiết). Client connect string is saved in this public variable.Public g_ClientCnn As StringPublic Sub LoadDbsConnectString(ByVal lClientID As Long)On Error GoTo Err_HandlerDim rstTemp As New ADODB.RecordsetDim strSQL As StringDim strDatabase As StringDim strProjCnn As String You must hard-code the name of the config database. Itwill be used below to simplify the creation of the new connectstring.Const strProjDBS As String = RecreationConfigDB The config database must include a table to manage client database names based on an identifier, such as ClientID.strSQL = SELECT [DatabaseName] FROM tb ...
Nội dung trích xuất từ tài liệu:
Quản lý recordset trong Access Data ProjectQuản lý recordset trong Access Data ProjectNguồn:quantrimang.comĐã có rất nhiều bài viết về quản lý tập hợp bản ghi (recordset) với đốitượng form (biểu mẫu), control (điều khiển) và report (báo cáo) trong cơ sởdữ liệu Microsoft Access. Nhưng gần đây, tôi buộc phải phát triển một ứngdụng với khuynh hướng khá mới, đòi hỏi một số thao tác sáng tạo trênrecordset. Các yêu cầu để thực hiện: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 SQLServer đơ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 đượctrỏ độ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ỗikhi 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ắtcon ngựa đua phải quay ngược lại giữa đường đua. Khi một thuộc tính kết nốicủ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 Form.RecordSource phải để trống. • Thuộc tính Form.RecordSet 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ộpcombo 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ể load form này với dữ liệu như thế nào.Chú ý: Hiện nay không có mã nguồn để download. Bởi để làm việc với các kếtnối đòi hỏi phải có lượng rất lớn mã nguồn. Do người đọc thường có máy chủ vàCSDL riêng nên điều này trở thành một vấn đề không đơn giản để triển khai.Thiết lập kết nối ADPNhư đã đề cập tới ở trên, bước đầu tiên là thiết lập toàn diện kết nối cho ADP.Trong trường hợp của chúng ta, đây là thiết lập cho CSDL Config chứa thông tinvề các database client khác nhau mà ứng dụng có thể trỏ tới.Thuộc tính Connection của ADP có thể được thiết lập dễ dàng trong thời gianthiết kế mà không cần phải chỉnh sửa bởi người dùng. Đơn giản chỉ cần chọnConnection từ menu File và điền đầy đủ giá trị yêu cầu trong hộp thoại.Hộp thoại này có một nút Test Connection (kiểm tra kết nối), nhưng nó là mộtplacebo (hộp để giữ chỗ). Bạn chỉ có thể chọn một CSDL nếu nhập một serverhợp lệ. Nếu bạn có cả tên server và database hợp lệ, sẽ chẳng có cái gì để phảikiểm tra cả. Nếu muốn yên tâm hơn, kích vào nút Test Connection để kiểm tra lạitrước khi đóng hộp thoại.Tạo các thủ tụcTheo các yêu cầu ở trên, nguồn cho client data (dữ liệu cho máy khách) phảinằm ở dạng JIT (just in time, tức tạm thời). Những nguồn này có thể là khi ngườidùng lựa chọn tìm kiếm một CSDL cụ thể hoặc là kết quả sau khi thực hiện mộtnhiệm vụ gắn với một cơ sở dữ liệu client cụ thể. Nhưng kết luận cuối cùng thì,bạn sẽ không biết CSDL nào được trỏ tới trước khi form được mở.Để đáp ứng yêu cầu này, chúng tôi tạo một giá trị xâu tổng thể (g_ClientCnn),chia nhỏ xâu kết nối đầy đủ vào CSDL client được yêu cầu. Do đó, khi một yêucầu dữ liệu được thực hiện, chúng tôi sẽ xác định ClientID phù hợp và đưa nóvào thủ tục con thiết lập xâu kết nối. (Xem đoạn mã bên dưới để hiểu chi tiết). Client connect string is saved in this public variable.Public g_ClientCnn As StringPublic Sub LoadDbsConnectString(ByVal lClientID As Long)On Error GoTo Err_HandlerDim rstTemp As New ADODB.RecordsetDim strSQL As StringDim strDatabase As StringDim strProjCnn As String You must hard-code the name of the config database. Itwill be used below to simplify the creation of the new connectstring.Const strProjDBS As String = RecreationConfigDB The config database must include a table to manage client database names based on an identifier, such as ClientID.strSQL = SELECT [DatabaseName] FROM tb ...
Tìm kiếm theo từ khóa liên quan:
Cơ sở dữ liệu An ninh – Bảo mật Công nghệ thông tin Quản trị mạng Thủ thuật máy tínhGợi ý tài liệu liên quan:
-
52 trang 429 1 0
-
62 trang 401 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 377 6 0 -
24 trang 353 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 312 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 299 0 0 -
74 trang 294 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 292 0 0 -
96 trang 291 0 0
-
13 trang 291 0 0