【发布时间】:2020-02-22 04:32:34
【问题描述】:
我有一个 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
这是 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
我收到的错误消息(这与我尝试的其他 2 个脚本类似)是:
“第 5 行,字符 4 错误:[Microsoft][ODBC 驱动程序管理器] 未找到数据源名称并且未指定默认驱动程序。源:用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序”
【问题讨论】:
-
你是如何运行文件的? 32 位还是 64 位 CSCRIPT.EXE 或 WSCRIPT.EXE?
-
嗯,其实我只是将它保存为.vbs 到我的桌面并双击它。
-
我已经发布了a general Q&A on the subject。您可以查看它,并How do I run a VBScript in 32-bit mode on a 64-bit machine?。很可能,在最后一个之后可以解决您的问题。
-
谢谢埃里克!我快把自己逼疯了,想知道我是否使用了正确的连接语法,但在 32 位下运行它是否有效!