2012-01-29 50 views
6

Bảng cơ sở dữ liệu SQL Server của tôi có một cột cần được Cập nhật với dữ liệu từ tệp MS Access. Làm cách nào để truy vấn dữ liệu MS Access để thực hiện cập nhật này?Từ SQL Server làm cách nào để đọc từ cơ sở dữ liệu MS Access để cập nhật dữ liệu trong một hoặc nhiều cột trong bảng?

Trình hướng dẫn nhập dường như chỉ xử lý Chèn dữ liệu mới chứ không phải UPDATE dữ liệu hiện có? Hay tôi hiểu lầm cách sử dụng thuật sĩ?

+0

Nó không phải tầm thường; bạn phải thiết lập kết nối giữa cơ sở dữ liệu MSACCESS và SQL Server, và chạy một số truy vấn UPDATE. –

+2

Tôi nghĩ bạn đang bắt đầu sai điểm. Tôi sẽ viết mã trong Access để thực hiện UPDATE. Bạn có thể cần truy xuất dữ liệu từ SQL Server, và sau đó thực hiện so sánh để xác định các bản ghi cần được cập nhật. Cách khác, hãy xem SSIS (đó là một thẻ ở đây). – DOK

Trả lời

4

Trước tiên hãy thiết lập DSN ODBC trong Windows. Mở Bảng điều khiển> Công cụ quản trị> Nguồn dữ liệu (ODBC). Lưu ý rằng trên Windows 64 bit, điều này có thể mở quản trị viên 64 bit. Tuy nhiên, bạn cần quản trị viên 32 bit (% windir% \ SysWOW64 \ odbcad32.exe).

Sau đó, bạn có thể liên kết các bảng SQL-Server với db truy cập của mình. Trong hộp thoại Bảng kết nối, chọn "Cơ sở dữ liệu ODBC()" làm loại tệp.

Sau đó bạn có thể truy vấn các bảng SQL Server được liên kết như thể chúng là các bảng truy cập.

Xem Configure Microsoft Access Linked Tables with a SQL Server Database

+0

Hmm ... Trên cửa sổ 64 bit, tôi nghĩ% windir% \ system32 \ odbcad32.exe là phiên bản 64 bit, trong khi% windir% \ SysWoW64 \ odbcad32.exe phải là phiên bản 32 bit. –

+0

@OskarBerggren: Bạn hoàn toàn đúng. Tôi sửa nó rồi. –

7

Âm thanh như bạn muốn chạy hoạt động mà từ phía SQL Server ... "kéo" các dữ liệu truy cập vào SQL Server. Nếu vậy, bạn có thể thiết lập tệp Access dưới dạng máy chủ được liên kết trong SQL Server. Tôi đã không làm điều đó, nhưng đã đọc những trường hợp mà những người khác có. Tôi đã sao chép các bước này từ How can I link a SQL Server database to MS Access using link tables in MS Access? tại SQLServerPedia.

1) Open EM. 
2) Goto the Server to which you want to add it as linked server. 
3) Then goto security > Linked Servers section from console tree. 
4) Right click on the Client area. Then New Linked Server. 
5) Give a name and Specify Microsoft Jet 4.0 as Provider string. 
6) Provide the location of the MDB file. 
7) Click OK. 

Hoặc, bạn có thể chạy thao tác từ bên Truy cập và đẩy dữ liệu vào SQL Server. Nếu điều đó có thể làm việc cho bạn, hãy sử dụng hướng dẫn của Olivier để thiết lập bảng SQL Server được liên kết ODBC. Hoặc bạn làm điều đó mà không cần tạo DSN: Using DSN-Less Connections.

Dù bằng cách nào bạn liên kết bảng, UPDATE tuyên bố bạn chạy từ trong Access sau đó có thể đơn giản như:

UPDATE 
    linked_table AS dest 
    INNER JOIN local_table AS src 
    ON dest.pkey_field = src.pkey_field 
SET dest.access_data = src.access_data 
WHERE 
    dest.access_data <> src.access_data 
    OR dest.access_data Is Null; 
Các vấn đề liên quan