使用ACE / JET驱动程序无法连接两次到链接表

时间:2010-04-15 22:26:27

标签: ms-access vbscript odbc ado

我正在尝试连接到VBScript中的MS Access数据库链接表。它可以在一个连接上第一次正常连接,但如果我关闭该连接并在同一个脚本中打开一个新连接,则会给我一个错误。

test.vbs(13, 1) Microsoft Office Access Database Engine: 
ODBC--connection to '{Oracle in OraClient10g_home1}DB_NAME' failed.

这是一些触发错误的代码。 TABLE_1是test.mdb文件中的ODBC链接表。

Dim cnn, rs

Set cnn = CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=test.mdb"

Set rs = cnn.Execute("SELECT * FROM [TABLE_1]")
rs.Close
cnn.Close

Set cnn = CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=test.mdb"

Set rs = cnn.Execute("SELECT * FROM [TABLE_1]") '' crashes here
rs.Close
cnn.Close

如果我尝试访问普通的Access表,则不会发生此错误。现在我认为这是Oracle ODBC驱动程序中的一个错误。

1 个答案:

答案 0 :(得分:0)

我刚刚尝试了一些我已经链接到SQL服务器的表,它工作得很好(对不起,我没有oracle DB来测试)但是我有一些东西供你试用。

首先在你的DIM线上你没有指定cnn和rs的类型。这通常是不好的做法,所以把它改成像这样的东西

Dim cnn as ADODB.Connection
Dim rs as ADODB.Recordset

其次你需要关闭语句之间的连接吗?最好保持它开放并重新使用它。同时作为习惯的力量,我也倾向于关闭我打开的任何物体,并将它们设置为无。即

Set cnn=nothing

如果您必须关闭它并重新打开它,请尝试将其设置为空,看看是否有帮助