Sử dụng Chế độ xem SQL để Thêm / Chỉnh sửa Dữ liệu trong Microsoft Access
Đây là phần II của loạt bài gồm hai phần về các quan điểm mà tôi đã viết, bạn có thể xem phần I tại đây.
Trong vài năm qua, tôi đã có nhiều kinh nghiệm làm việc trên Cơ sở dữ liệu Access với Dữ liệu được liên kết với các bảng được lưu trữ trong SQL Server. Với cơ sở dữ liệu quan hệ và bảng tra cứu, bạn có thể dễ dàng kết thúc bằng một dạng xem chứa nhiều cột số chỉ giữ khóa chính từ các bảng khác.
Ví dụ:bạn có một cơ sở dữ liệu với hai bảng:một bảng cho thông tin công ty và một bảng khác chỉ cho các liên hệ, nhưng bạn cần liên kết các liên hệ của mình với các công ty và bạn gặp phải các tình huống trong đó một liên hệ được liên kết với nhiều công ty. Bạn có thể dễ dàng quản lý điều này bằng cách tạo bảng thứ ba của CompanyContacts, bảng này sẽ là các hàng dữ liệu có chứa CompanyID và ContactID. Có nhiều trường hợp trong đó bạn có một bảng tương tự đang liên kết dữ liệu từ bảng này sang bảng khác nhưng những bảng này cần được duy trì và quản lý bởi những người dùng thực sự cần xem dữ liệu cơ bản chứ không chỉ ID. Để giải quyết vấn đề, bạn có thể tạo một dạng xem với tất cả các bảng cần thiết và dựa trên biểu mẫu của bạn trên dạng xem được liên kết, nhưng bạn sẽ nhanh chóng nhận thấy rằng bạn không thể chỉnh sửa bất kỳ dữ liệu nào, tất cả chỉ được đọc.
Mẹo để làm cho chế độ xem của bạn có thể chỉnh sửa được
Để chỉnh sửa chế độ xem của bạn trong Access, bạn cần đảm bảo rằng nó có khóa chính từ bảng mà bạn muốn chỉnh sửa, cùng với trường dấu thời gian và chỉ mục. Có thể dễ dàng thực hiện hai cách đầu tiên bằng cách thêm các trường vào thiết kế dạng xem của bạn trong SQL Server, đối với trường hợp sau, hãy sử dụng TẠO CHỈ SỐ DUY NHẤT như được hiển thị bên dưới, cùng với mã để thêm dạng xem của bạn dưới dạng bảng được liên kết:
Dim tdf As DAO.TableDef
Dim db As DAO.DatabaseĐặt db =CurrentDb
Đặt tdf =db.CreateTableDef
tdf.Name =“ViewNameInAccess”
tdf.SourceTableName =“dbo.ViewName ”
tdf.Connect =“ ODBC;”
db.TableDefs.Append tdfdb. Thực thi “TẠO CHỈ SỐ DUY NHẤT [CHÍNH] TRÊN [ViewNameInAccess] (MainTableID);”, dbFailOnError