Nhớ lại những ngày thanh bình thời thơ ấu khi món mì Ý có những sợi mì hình chữ cái là bữa ăn vui nhộn của bạn. Hãy giữ những suy nghĩ vui vẻ đó sau khi chúng tôi nếm vài phiên bản cơ sở dữ liệu của món mì Ý chữ cái này. Những nội dung dưới đây giải thích rõ các thông tin cơ bản để truy nhập cơ sở dữ liệu bằng các chuỗi kết nối và sử dụng giao diện lập trình cơ sở dữ liệu trong mã Access VBA của bạn.
Trong bài viết này
Sử dụng trình điều khiển ODBC hoặc trình cung cấp OLE DB
Giao diện theo chương trình sang SQL Server từ Access
Tóm tắt các phiên bản trình điều khiển ODBC
Sử dụng trình điều khiển ODBC hoặc trình cung cấp OLE DB
Chuỗi kết nối đã có một khoảng thời gian dài. Bạn có thể xác định một chuỗi kết nối đã định dạng trong giao diện người dùng Access hoặc trong mã VBA. Chuỗi kết nối (có thể là ODBC hoặc DB OLE) truyền thông tin trực tiếp đến cơ sở dữ liệu, chẳng hạn như vị trí máy chủ, tên cơ sở dữ liệu, loại bảo mật và các tùy chọn hữu ích khác. Ví dụ:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Trước tiên, đã có SQL Server Native Client (SNAC). Đây là một thư viện độc lập có công nghệ ODBC và OLEDB và vẫn dùng được cho SQL Server phiên bản 2005 đến 2012. Nhiều ứng dụng lỗi thừa sử dụng SNAC và nó vẫn được hỗ trợ để tương thích ngược nhưng chúng tôi không khuyên bạn sử dụng tính năng này để phát triển ứng dụng mới. Bạn nên sử dụng các phiên bản có thể tải xuống sau và riêng biệt của trình điều khiển ODBC.
Trình điều khiển ODBC
Kết nối Cơ sở Dữ liệu Mở (ODBC) là một giao thức mà bạn sử dụng để kết nối cơ sở dữ liệu Access với nguồn dữ liệu ngoài, chẳng hạn như Microsoft SQL Server. Thông thường, bạn sử dụng nguồn dữ liệu tệp (còn gọi là tệp DSN) để thêm một chuỗi kết nối, trong trường hợp này, từ khóa FILEDSN được dùng trên chuỗi kết nối hoặc được lưu trữ trong sổ đăng ký và dùng từ khóa DSN. Ngoài ra, bạn có thể sử dụng VBA để đặt các thuộc tính này bằng cách sử dụng chuỗi kết nối "không chứa DSN".
Trong những năm qua, trình điều khiển ODBC đã trải qua ba giai đoạn:
-
Trước năm 2005, trình điều khiển ODBC đi kèm với các Cấu phần Truy nhập Dữ liệu của Windows (WDAC), với tên gọi ban đầu là các Cấu phần Truy nhập Dữ liệu của Microsoft (MDAC). Các cấu phần này vẫn đi kèm với Windows để đảm bảo tính tương thích ngược. Để biết thêm thông tin, vui lòng xem mục các Cấu phần Truy nhập Dữ liệu của Microsoft hoặc Windows.
-
Trình điều khiển ODBC đi kèm với SNAC dành cho SQL Server 2005 đến SQL Server 2012.
-
Sau SQL Server 2012, trình điều khiển ODBC đã được tách riêng và có hỗ trợ các tính năng mới của SQL Server.
Khi phát triển ứng dụng mới, tránh sử dụng các trình điều khiển ODBC từ hai giai đoạn đầu tiên và sử dụng các trình điều khiển ODBC từ giai đoạn thứ ba.
Trình cung cấp OLE DB
Nối kết và Nhúng Đối tượng, Cơ sở Dữ liệu (ODBC) là một giao thức mới hơn mà bạn sử dụng để kết nối cơ sở dữ liệu Access với nguồn dữ liệu ngoài, chẳng hạn như Microsoft SQL Server. OLE DB không yêu cầu DSN và cũng cấp quyền truy nhập đầy đủ vào nguồn dữ liệu ODBC và trình điều khiển ODBC.
Mẹo Thông thường, bạn sử dụng hôp thoại Thuộc tính liên kết dữ liệu để thêm một chuỗi kết nối OLE DB. Mặc dù không thể mở hộp thoại Thuộc tính liên kết dữ liệu từ Access, nhưng trong Windows Explorer, bạn có thể tạo một tệp trống .txt, thay đổi loại tệp thành .udl, rồi bấm đúp vào tệp. Sau khi tạo một chuỗi kết nối, thay đổi loại tệp lại thành .txt.
Trong những năm qua, trình cung cấp OLE DB đã trải qua ba giai đoạn:
-
Trước năm 2005, trình cung cấp OLE DB đi kèm với các Cấu phần Truy nhập Dữ liệu của Windows (WDAC), với tên gọi ban đầu là các Cấu phần Truy nhập Dữ liệu của Microsoft (MDAC).
-
Trình cung cấp OLE DB đi kèm với SQL Server 2005 đến SQL Server 2017. Trình cung cấp này đã ngừng phát triển trong năm 2011.
-
Trong năm 2017, trình cung cấp SQL Server OLE DB được phát triển trở lại.
Phiên bản hiện đang được khuyên dùng để phát triển giải pháp mới là trình điều khiển OLE DB 18 cho SQL Server.
Cách tối ưu hóa hiệu suất với một chuỗi kết nối ODBC
Để tối ưu hóa hiệu suất, giảm thiểu lưu lượng mạng và giảm quyền truy nhập nhiều người dùng vào cơ sở dữ liệu SQL Server, hãy sử dụng càng ít chuỗi kết nối càng tốt bằng cách chia sẻ chuỗi kết nối qua nhiều tập dữ liệu. Mặc dù chỉ kiểm duyệt một chuỗi kết nối đến máy chủ, Ace sẽ hiểu và sử dụng các từ khóa sau: DSN, CƠ SỞ DỮ LIỆU, UID, PWD và TRÌNH ĐIỀU KHIỂN để trợ giúp giảm thiểu giao tiếp máy khách/máy chủ.
Lưu ý Nếu bị mất kết nối ODBC đến một nguồn dữ liệu bên ngoài, Access sẽ tự động tìm cách kết nối lại với nguồn dữ liệu đó. Nếu lần thử lại thành công, bạn có thể tiếp tục làm việc. Nếu lần thử lại không thành công, bạn vẫn có thể làm việc với các đối tượng không phụ thuộc vào kết nối. Để kết nối lại, hãy đóng và mở lại Access.
Lời khuyên khi sử dụng cả ODBC và OLE DB
Tránh pha trộn các công nghệ chuỗi kết nối và truy nhập cơ sở dữ liệu. Sử dụng một chuỗi kết nối ODBC cho DAO. Sử dụng một chuỗi kết nối OLE DB cho DAO. Nếu ứng dụng của bạn chứa mã VBA sử dụng cả DAO và ADO, sau đó sử dụng trình điều khiển ODBC cho DAO và trình cung cấp OLE DB cho ADO. Cố gắng sử dụng những sự hỗ trợ và tính năng mới nhất cho cả ODBC và OLEDB.
ODBC sử dụng trình điều khiển thuật ngữ và OLE DB sử dụng trình cung cấp thuật ngữ. Các thuật ngữ mô tả cùng một loại cấu phần phần mềm nhưng không thể thay đổi cho nhau trong cú pháp chuỗi kết nối. Sử dụng giá trị chính xác đã lưu giữ.
Giao diện theo chương trình sang SQL Server từ Access
Có hai cách chính để giao diện theo chương trình sang cơ sở dữ liệu SQL Server từ Access.
DAO
Đối tượng truy nhập dữ liệu (DAO) cung cấp giao diện trừu tượng cho cơ sở dữ liệu. Đối tượng truy nhập dữ liệu của Microsoft (DAO) là mô hình đối tượng lập trình gốc cho phép bạn truy nhập trung tâm Access và SQL Server để tạo, xóa, sửa đổi và lên danh sách đối tượng, bảng, trường, chỉ mục, mối quan hệ, truy vấn, thuộc tính và cơ sở dữ liệu bên ngoài.
Để biết thêm thông tin, vui lòng xem mục tham khảo Microsoft Data Access Objects.
ADO
Đối tượng dữ liệu ActiveX (ADO) cung cấp một mô hình lập trình cấp cao và có sẵn trong Access bằng một tham chiếu đến thư viện của bên thứ ba. Học cách sử dụng ADO rất đơn giản. ADO cho phép các ứng dụng máy khách truy nhập và thao tác dữ liệu từ nhiều nguồn khác nhau, bao gồm Access và SQL Server. Lợi ích chính của ADO là dễ sử dụng, tốc độ cao, chi phí quản lý bộ nhớ thấp, cũng như diện tích ổ đĩa nhỏ. ADO còn hỗ trợ những tính năng chính cho các ứng dụng thiết kế và trên nền web.
Để biết thêm thông tin, vui lòng xem mục tham khảo Microsoft Data Access Objects và Đối tượng dữ liệu ActiveX (ADO).
Bạn nên dùng trang nào?
Trong giải pháp Access dùng mã VBA, bạn có thể sử dụng DAO, ADO hoặc cả hai làm công nghệ giao diện cơ sở dữ liệu của bạn. DAO tiếp tục là công nghệ giao diện cơ sở dữ liệu mặc định trong Access. Ví dụ: Tất cả các biểu mẫu, báo cáo và truy vấn Access sử dụng DAO. Nhưng khi di chuyển sang SQL Server, hãy cân nhắc đến việc sử dụng ADO để tăng tính hiệu quả cho giải pháp của bạn. Đây là các hướng dẫn chung để giúp bạn quyết định khi nào sử dụng DAO hoặc ADO.
Sử dụng DAO khi bạn muốn:
-
Tạo biểu mẫu đọc/viết, liên kết mà không cần sử dụng VBA.
-
Các bảng cục bộ truy vấn.
-
Tải dữ liệu xuống bảng tạm thời.
-
Sử dụng truy vấn chuyển qua làm nguồn dữ liệu cho các báo cáo hoặc biểu mẫu trong chế độ chỉ đọc.
-
Xác định và sử dụng đối tượng TableDef hoặc Querydef trong VBA.
Sử dụng ADO khi bạn muốn:
-
Tận dụng thêm các cách thức tối ưu hóa, chẳng hạn như thực hiện các thao tác không đồng bộ.
-
Chạy các truy vấn chuyển qua DDL và DML.
-
Truy nhập dữ liệu SQL Server trực tiếp thông qua recordsets trong VBA.
-
Viết mã đơn giản hơn cho một số tác vụ nhất định, chẳng hạn như truyền các đối tượng lớn dưới dạng nhị phân.
-
Gọi trực tiếp một thủ tục lưu sẵn bằng các tham số, sử dụng đối tượng lệnh trong VBA.
Tóm tắt các phiên bản trình điều khiển ODBC
Bảng sau đây tổng hợp thông tin quan trọng về các phiên bản trình điều khiển ODBC, vị trí tải xuống và hỗ trợ tính năng. Hãy đảm bảo rằng bạn sử dụng phiên bản bit chính xác (64 bit hoặc 32 bit) của trình điều khiển theo Windows chứ không phải theo Office. Nếu bạn đang chạy Access 32 bit trên Windows 64 bit, hãy cài đặt trình điều khiển phiên bản 64 bit, bao gồm các cấu phần của phiên bản 32 bit cần cho Access.
Để biết thêm thông tin, vui lòng xem mục Sử dụng Từ khóa Chuỗi kết nối với SQL Server Native Client, Ghi chú Phát hành của ODBC cho SQL Server trên Windows (Phiên bản 17) và Các tính năng của Microsoft ODBC Driver cho SQL Server trên Windows (Phiên bản 13, 11).
Tổng hợp các phiên bản của trình cung cấp OLE DB
Bảng sau đây tổng hợp thông tin quan trọng về các phiên bản trình điều khiển OLE DB, vị trí tải xuống và hỗ trợ tính năng. Hãy đảm bảo rằng bạn sử dụng phiên bản bit chính xác (64 bit hoặc 32 bit) của trình điều khiển theo Windows chứ không phải theo Office. Nếu bạn đang chạy Access 32 bit trên Windows 64 bit, hãy cài đặt trình điều khiển phiên bản 64 bit, bao gồm các cấu phần của phiên bản 32 bit cần cho Access.
Để biết thêm thông tin, vui lòng xem mục Sử dụng Từ khóa Chuỗi kết nối với SQL Server Native Client.
Trình cung cấp OLE DB |
Phiên bản |
Tải xuống |
Tính năng mới |
Trình điều khiển OLE DB 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Xem tính năng của trình điều khiển OLE DB cho SQL Server và Ghi chú Phát hành của trình điều khiển Microsoft OLE DB cho SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server phiên bản 2005 đến 2012 |
Đã ngừng phát triển, không sử dụng |
|
Trình điều khiển OLE DB (SQLOLEDB) |
Đã ngừng phát triển, không sử dụng |
Tổng hợp từ khóa ODBC
Bảng sau đây tổng hợp các từ khóa ODBC được SQL Server nhận ra và mục đích của những từ khóa này. Access chỉ nhận ra một tập hợp con.
Từ khóa |
Mô tả |
Địa chỉ |
Địa chỉ mạng của máy chủ đang chạy một phiên bản SQL Server. |
AnsiNPW |
Chỉ định việc sử dụng các hành vi được ANSI xác định để xử lý các so sánh NULL, chèn dữ liệu ký tự, cảnh báo và ghép NULL (Có hoặc Không). |
ỨNG DỤNG |
Tên của ứng dụng gọi SQLDriverConnect. |
ApplicationIntent |
Quyết định loại khối lượng công việc ứng dụng khi kết nối với một máy chủ (ReadOnly hoặc ReadWrite). |
AttachDBFileName |
Tên tệp chính của một cơ sở dữ liệu có thể kết nối. |
AutoTranslate |
Chỉ định liệu chuỗi ký tự ANSI có được gửi giữa máy khách hoặc máy chủ hoặc có được dịch sang Unicode hay không (Có hoặc Không). |
Cơ sở dữ liệu |
Tên cơ sở dữ liệu. Mô tả Mục đích kết nối. Trình điều khiển Tên của trình điều khiển khi được SQLDrivers trả về. |
DSN |
Tên của một người dùng ODBC hoặc nguồn dữ liệu hệ thống hiện tại. Mã hóa Chỉ định liệu có nên mã hóa dữ liệu trước khi gửi qua mạng hay không (Có hoặc Không). |
Failover_Partner |
Dùng tên của máy chủ đối tác chuyển đổi nếu không thể kết nối với máy chủ chính. |
FailoverPartnerSPN |
SPN cho đối tác chuyển đổi. |
Fallback |
Từ khóa không còn sử dụng. |
FileDSN |
Tên của một nguồn dữ liệu tệp ODBC hiện tại. Ngôn ngữ Ngôn ngữ SQL Server. |
MARS_Connection |
Chỉ định nhiều bộ kết quả hiện hoạt (MARS) trên kết nối cho SQL Server 2005 (9. x) hoặc đời cao hơn (Có hoặc Không). |
MultiSubnetFailover |
Chỉ định liệu kết nối với người nghe nhóm dự phòng của nhóm dự phòng SQL Server hay phiên bản cụm chuyển đổi (Có hoặc Không). |
Net |
dbnmpntw biểu thị ống dữ liệu đã được đặt tên và dbmssocn biểu thị TCP/IP. |
PWD |
Mật khẩu đăng nhập SQL Server. |
QueryLog_On |
Chỉ định nhật ký truy vấn trong thời gian dài (Có hoặc Không). |
QueryLogFile |
Đường dẫn và tên tệp đầy đủ của tệp dùng để ghi nhật ký dữ liệu truy vấn trong thời gian dài. |
QueryLogTime |
Chuỗi ký tự dạng chữ số chỉ định ngưỡng (theo phần nghìn giây) để ghi lại các truy vấn trong thời gian dài. |
QuotedId |
Chỉ định liệu SQL Server sử dụng các quy tắc ISO liên quan đến việc sử dụng dấu ngoặc kép trong câu lệnh SQL hay không (Có hoặc Không). |
Regional |
Chỉ định trình điều khiển ODBC cho SQL Server Native Client có sử dụng thiết đặt máy khách khi chuyển đổi dữ liệu tiền tệ, ngày tháng hoặc thời gian sang dữ liệu ký tự hay không (Có hoặc Không). |
SaveFile |
Tên của tệp nguồn dữ liệu ODBC lưu các thuộc tính của kết nối hiện tại nếu kết nối thành công. |
Máy chủ |
Tên của một phiên bản SQL Server: Máy chủ trên mạng, địa chỉ IP hoặc biệt danh Trình quản lý Cấu hình. |
ServerSPN |
SPN cho máy chủ. |
StatsLog_On |
Cho phép chụp dữ liệu hiệu suất của trình điều khiển ODBC cho SQL Server Native Client. |
StatsLogFile |
Đường dẫn và tên tệp đầy đủ của một tệp dùng để ghi lại số liệu thống kê hiệu suất của trình điều khiển ODBC cho SQL Server Native Client. |
Trusted_Connection |
Chỉ định có sử dụng chế độ xác thực Windows hay tên người dùng hoặc mật khẩu SQL Server để xác thực đăng nhập hay không (Có hoặc Không). |
TrustServerCertificate |
Khi dùng với tính năng Mã hóa, cho phép mã hóa bằng cách sử dụng chứng chỉ máy chủ tự ký. |
UID |
Tên đăng nhập SQL Server. |
UseProcForPrepare |
Từ khóa không còn sử dụng. |
WSID |
Mã định danh máy trạm, tên mạng máy tính sẽ đặt ứng dụng trên đó. |
Tóm tắt từ khóa ODBC
Bảng sau đây tổng hợp các từ khóa OLE DB được SQL Server nhận ra và mục đích của những từ khóa này. Access chỉ nhận ra một tập hợp con.
Từ khóa |
Mô tả |
Địa chỉ |
Địa chỉ mạng của máy chủ đang chạy một phiên bản SQL Server. |
ỨNG DỤNG |
Chuỗi định danh ứng dụng. |
ApplicationIntent |
Quyết định loại khối lượng công việc ứng dụng khi kết nối với một máy chủ (ReadOnly hoặc ReadWrite). |
AttachDBFileName |
Tên tệp chính của một cơ sở dữ liệu có thể kết nối. |
AutoTranslate |
Đặt cấu hình dịch ký tự OEM/ANSI (True hoặc False). |
Thời gian chờ kết nối |
Khoảng thời gian (tính bằng giây) phải chờ để hoàn tất quá trình khởi tạo nguồn dữ liệu. |
Ngôn ngữ hiện tại |
Tên ngôn ngữ SQL Server. |
Nguồn dữ liệu |
Tên phiên bản SQL Server trong tổ chức. |
Cơ sở dữ liệu |
Tên cơ sở dữ liệu. |
DataTypeCompatibility |
Con số định dạnh chế độ xử lý kiểu dữ liệu sẽ dùng. |
Mã hóa |
Chỉ định liệu có nên mã hóa dữ liệu trước khi gửi qua mạng hay không (Có hoặc Không). |
FailoverPartner |
Tên của máy chủ chuyển đổi dùng để phản chiếu cơ sở dữ liệu. |
FailoverPartnerSPN |
SPN cho đối tác chuyển đổi. |
Danh mục ban đầu |
Tên cơ sở dữ liệu. |
Tên tệp ban đầu |
Tên tệp chính (bao gồm toàn bộ tên đường dẫn) của một cơ sở dữ liệu có thể kết nối. |
Bảo mật tích hợp |
Dùng để xác thực Windows (SSPI). |
Ngôn ngữ |
Ngôn ngữ SQL Server. |
MarsConn |
Chỉ định nhiều bộ kết quả hiện hoạt (MARS) trên kết nối cho SQL Server 2005 (9. x) hoặc đời cao hơn (Có hoặc Không). |
Net |
Thư viện mạng dùng để thiết lập kết nối đến phiên bản SQL Server trong tổ chức. |
Địa chỉ mạng |
Địa chỉ mạng của phiên bản SQL Server trong tổ chức. |
PacketSize |
Dung lượng gói mạng. Mặc định là 4096. |
Duy trì thông tin bảo mật |
Chỉ định có tiếp tục bật chức năng bảo mật hay không (True hoặc False). |
PersistSensitive |
Chỉ định có tiếp tục bật chức năng PersistSensitive hay không (True hoặc False). |
Trình cung cấp |
Đối với SQL Server Native Client, trình cung cấp nên là SQLNCLI11. |
PWD |
Mật khẩu đăng nhập SQL Server. |
Máy chủ |
Tên của một phiên bản SQL Server: Máy chủ trên mạng, địa chỉ IP hoặc biệt danh Trình quản lý Cấu hình. |
ServerSPN |
SPN cho máy chủ. |
Thời gian chờ |
Khoảng thời gian (tính bằng giây) phải chờ để hoàn tất quá trình khởi tạo nguồn dữ liệu. |
Trusted_Connection |
Chỉ định có sử dụng chế độ xác thực Windows hay tên người dùng hoặc mật khẩu SQL Server để xác thực đăng nhập hay không (Có hoặc Không). |
TrustServerCertificate |
Chỉ định có xác thực chứng chỉ máy chủ hay không (True hoặc False). |
UID |
Tên đăng nhập SQL Server. |
Sử dụng mã hóa cho dữ liệu |
Chỉ định có Chỉ định liệu có nên mã hóa dữ liệu trước khi gửi qua mạng hay không (True hoặc False). |
UseProcForPrepare |
Từ khóa không còn sử dụng. |
WSID |
Mã định danh máy trạm, tên mạng máy tính sẽ đặt ứng dụng trên đó. |