2011-09-27 40 views
7

Tôi có một số bảng Truy cập có nhiều trường. Tôi đã di chuyển mỗi bảng truy cập đến 6 hoặc 7 bảng máy chủ sql. Tôi đang sử dụng máy chủ sql 2008. Bây giờ tôi muốn sử dụng Access làm giao diện người dùng để tôi có thể nhập dữ liệu truy cập nhưng nó sẽ được lưu trữ trong máy chủ sql. Tôi biết rằng tôi phải thực hiện một kết nối ODBC. Nhưng tôi không chắc chắn làm thế nào để tạo ra một hình thức truy cập để sử dụng nó như là một front-end. Tôi xin lỗi nếu đó là câu hỏi cơ bản ...Truy cập như giao diện người dùng và máy chủ sql làm phụ trợ

Trả lời

9

Có thể bạn sẽ muốn bắt đầu với cơ sở dữ liệu Access trống (vì cấu trúc bảng và mọi biểu mẫu và báo cáo hiện tại sẽ không khớp với những gì bạn đã tạo trong máy chủ SQL).

Bước đầu tiên là thiết lập kết nối ODBC với cơ sở dữ liệu SQL Server của bạn. Sau đó, bạn sẽ "liên kết" các bảng trong SQL Server với cơ sở dữ liệu Access của bạn.

Bây giờ, bạn có cơ sở dữ liệu Access với tất cả các bảng mà bạn đã liên kết từ SQL Server. Những bảng đó vẫn "sống" trong SQL Server và khi bạn chỉnh sửa chúng trong Access, dữ liệu sẽ được lưu trữ trong SQL Server.

Sau đó, bạn có thể tạo biểu mẫu Truy cập và báo cáo bằng cách sử dụng các bảng này giống như các bảng có nguồn gốc là Access.

+0

Tại sao bạn cần kết nối DSN hoặc ODBC cho ADP? Kết nối SQL Server qua SQLOLEDB được tích hợp sẵn. DSN cũng là một chi phí triển khai. ADP đã tồn tại từ Access 2000/2003. – gbn

+0

Tùy thuộc vào sở thích của người dùng. ADP là một giải pháp hợp lệ khác. Kinh nghiệm của tôi là với việc di chuyển đến các bảng được liên kết (ít quan trọng hơn đối với người dùng này nếu tất cả các cấu trúc bảng đều mới). –

+0

@LarryLustig Tôi đã thực hiện kết nối ODBC với máy chủ sql bằng cách vào 'Công cụ quản trị-> DataSources-> Hệ thống DSN-> thêm máy chủ sql và tên cơ sở dữ liệu tôi muốn sử dụng làm giao diện người dùng' Bây giờ tôi cũng đã liên kết trong sql server bằng cách sử dụng 'sp_addlinkedserver 'connect', 'Access 2007', 'Microsoft.ACE.OLEDB.12.0', 'C: \ connect.accdb'' nhưng các bảng từ máy chủ sql không xuất hiện trong cơ sở dữ liệu truy cập trống ..Tôi đang đi sai ở đâu? – alex

0

Bạn cũng có thể tạo kết nối ODBC. Bạn cũng có thể tạo kết nối ADODB. Nếu mục tiêu của bạn là cập nhật hoặc sửa đổi cơ sở dữ liệu SQL, cả hai kết nối sẽ thực hiện thủ thuật.

Bây giờ, tôi đoán bạn phải làm quen với các đối tượng tương ứng. Đây sẽ là các bảng, truy vấn, lệnh, v.v., sẽ cho phép bạn, ví dụ, để xây dựng các bản ghi ra khỏi các truy vấn SQL ... Một khi bạn đã rõ ràng với điều đó, bạn có thể, ví dụ, gán một recordset cho một biểu mẫu thông qua phương thức Set myForm.recordset = myRecordset.open ....

1

Cách linh hoạt nhất là sử dụng liên kết ODBC tới bảng và dạng xem SQL Server của bạn. Cách tiếp cận đó cho phép bạn liên kết linh hoạt với các nguồn dữ liệu ODBC khác, các bảng trong các tệp cơ sở dữ liệu Jet/ACE khác, tạo bảng Jet/ACE cục bộ trong cơ sở dữ liệu của bạn, liên kết tới bảng tính Excel, v.v. Bạn có thể kết hợp một loạt các nguồn dữ liệu.

Nếu bạn chọn ADP, bạn sẽ bị giới hạn kết nối OLE DB với một phiên bản SQL Server duy nhất. Và về cơ bản bạn sẽ bị khóa trong SQL Server. Bạn sẽ không thể chuyển ứng dụng sang cơ sở dữ liệu máy khách-máy chủ khác mà không có nỗ lực tái phát triển chính.

Về chi phí triển khai với ODBC, mặc dù bạn có thể thấy thuận tiện khi sử dụng DSN trong khi phát triển, bạn nên chuyển các liên kết ODBC thành kết nối DSN-less trước khi triển khai. Bằng cách đó, người dùng của bạn sẽ không yêu cầu DSN. Xem trang của Doug Steele: Using DSN-Less Connections

+0

Tôi đã tạo cơ sở dữ liệu truy cập trống. Tôi đã thực hiện kết nối ODBC với máy chủ sql bằng cách vào 'Administrative Tools-> DataSources-> System DSN-> đã thêm máy chủ sql và tên cơ sở dữ liệu mà tôi muốn sử dụng làm giao diện người dùng. Bây giờ tôi cũng đã liên kết với máy chủ sql bằng cách sử dụng 'sp_addlinkedserver 'connect', 'Access 2007', 'Microsoft.ACE.OLEDB.12.0', 'C: \ connect.accdb'' nhưng các bảng từ máy chủ sql không được hiển thị trong cơ sở dữ liệu truy cập trống ... Ở đây tôi đang đi sai ở đây? – alex

+0

Khi bạn tạo DSN, đừng thêm bất cứ điều gì về Access. DSN của bạn sẽ mô tả các thuộc tính cho một kết nối đến SQL Server. Nó không phải là một điều cụ thể cho Access, nhưng có thể sử dụng được bởi bất kỳ ứng dụng nào có thể sử dụng các kết nối ODBC. – HansUp

+0

Cảm ơn tôi đã nhận nó, tôi đã thất bại trong việc 'liên kết các bảng'. Bây giờ tôi đã đặt tên đường dẫn chính xác cho DSN và hoạt động của nó! Bạn có thể gợi ý cho tôi cái nào sẽ là tốt nhất để sử dụng trong dài hạn như một giao diện người dùng Access hay một giao diện trong dotnet? – alex

Các vấn đề liên quan