我的oledb连接适用于工作簿但不适用于另一个

时间:2016-03-14 16:02:17

标签: excel vba excel-vba database-connection adodb

所以我在两个不同的工作簿中有这个代码,两个不同的文件。它们甚至位于同一台计算机的同一个文件夹中。

strFile = "Z:\service\climatizacion.mdb"

strCon = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & strFile

Set cn = CreateObject("ADODB.Connection")
cn.Open strCon

strSQL = "SELECT codigorep, cantidad, precio, descripcion FROM cotizacion WHERE codigorep = " & lngInput & ";"
Set rs = CreateObject("ADODB.RECORDSET")
rs.Open Source:=strSQL, ActiveConnection:=cn, CursorType:=adOpenDynamic, LockType:=adLockOptimistic

在其中一个工作簿中,它完美无缺,它从数据库中选择了我需要的所有数据。

另一方面,当我尝试打开记录集时,它会给我运行时错误3001(应用程序正在使用类型错误的参数,超出可接受范围或彼此冲突)。

我通过这段代码知道连接是问题(我可能错了)

If cn.State = adStateOpen Then
  MsgBox "connected"
Else
  MsgBox "not connected"
End If

我无法找到可以使这种连接或整个代码工作或使其停止工作的这些工作簿之间的区别。 声明了所有变量,表存在,我可以通过访问打开它们没有问题,数据库位于我本地网络的PC上。

数据库是一个mdb文件,来自访问97.我在excel 2003上运行它,两个工作簿,两者都是由我用同一个excel 2003创建的。

提前感谢您花时间阅读本文:D

0 个答案:

没有答案