如何使用 VBScript 连接到 Access 数据库

Dav*_*itz 5 vbscript ms-access

我有一个 Access 数据库,供希望使用 vbscript 连接和查询数据库的客户使用(这样他们就可以实现自动化,而无需实际打开 Access 2000 MDB)。我不知道如何建立数据库连接。

我已经尝试了几个脚本,使用 DAO 和 OLEDB。下面我粘贴了我所得到的最接近的,使用 ODBC 文件 DSN(恐怕使用系统 DSN 需要在客户端进行额外的工作,我试图保持简单)。

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")

'ERROR OCCURS HERE
objConnection.Open "FileDSN=D:\RLS.dsn;" 

objRecordset.CursorLocation = adUseClient
objRecordset.Open "SELECT County FROM CountyTBL" , objConnection, adOpenStatic, adLockOptimistic
Run Code Online (Sandbox Code Playgroud)

以下是 RLS.dsn 的内容(我使用 Windows 控制面板创建了它,因此我确信它是正确的):

[ODBC]
DRIVER=Microsoft Access Driver (*.mdb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=MS Access
DriverId=25
DefaultDir=D:\
DBQ=D:\RLS_be.mdb
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息(这与我尝试过的其他两个脚本类似)是:

“第 5 行,字符 4 错误:[Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序。来源:Microsoft OLE DB Provider for ODBC Drivers”

Éti*_*lle 4

您可以简单地使用 ADO 连接到文件,而无需设置 DSN。这对您的客户来说会更简单。

对于Access 2000、2002-2003 MDB,请使用以下连接字符串:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\RLS_be.mdb"

对于Access 2007、2010、2013 ACCDB

"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\RLS_be.accdb"

整体连接代码:

' Build connection string
Dim sConnectionString
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\RLS_be.mdb"

' Create connection object
Dim objConnection
Set objConnection = CreateObject("ADODB.Connection")

' Open Connection
objConnection.open sConnectionString

' Get recordset from SQL query
Dim objRecordset
Dim sQuery
sQuery = "SELECT County FROM CountyTBL"

Set objRecordset = CreateObject("ADODB.Recordset")
objRecordset.CursorLocation = adUseClient
objRecordset.Open sQuery, objConnection, adOpenStatic, adLockOptimistic
Run Code Online (Sandbox Code Playgroud)