vb6无法打开以前完美工作的连接obj

时间:2013-07-11 18:08:01

标签: vb6 connection-string adodb

此代码位于ActiveX .dll中。一年来,这种联系完美无缺,现在还没有。这是代码:

Dim objConnection As ADODB.Connection
Dim objRs As ADODB.Recordset
Dim theConnectionStr As String

Dim SanMarDB As Databas
Dim SanMarRs As Recordse
.
.
.
    Set objConnection = New ADODB.Connection
    theConnectionStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                       "Data Source=" & gProgramFilesPath & ";" & _
                       "Extended Properties='text;HDR=YES;FMT=Delimited;IMEX=1'"
    objConnection.Open theConnectionStr

这是我在.dll中的引用列表:

  • Visual Basic for Applications
  • Visual Basic运行时对象和过程
  • Visual Basic对象和过程
  • Microsoft Scripting Runtime
  • Microsoft Excel 14.0对象库
  • Microsoft DAO 3.6对象库
  • Microsoft ActiveX数据对象6.1库
  • Microsoft数据格式化对象库6.0(SP6)
  • Microsoft Shell控件和自动化

我收到两条错误消息之一。这是第一个

  

Windows注册表的“引擎”部分的Excel键中的设置无效。

Google向我指出了此错误消息的一些原因,并且我已检查了注册表设置,它显示正确,CSVDelimited,没有5-char条目等。

第二条错误消息是:

  

对象变量或未设置块变量

使这个特别奇怪的是我有另一个dll具有完全相同的引用和代码,它完美地工作。 (只有一些文件名不同)。

有什么想法?谢谢你帮我解决这个问题。

-t

1 个答案:

答案 0 :(得分:0)

至少尝试一下:

theConnectionStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   "Data Source='" & gProgramFilesPath & "';" & _
                   "Extended Properties='text;HDR=YES;FMT=Delimited;IMEX=1'"

即。如果字符中断连接字符串解析,请在Data Source的值周围使用引号(上面的撇号)。

此外,IMEX是否仅用于Excel IISAM而不是Text和HTML IISAM?

在一个程序中混合使用ADO和DAO很奇怪,但希望无关。