【发布时间】:2013-12-30 22:36:45
【问题描述】:
我对整个 ADODB 的东西都很陌生。我写了一个代码,试图计算这个特定数据库使用的列。但不知何故,我得到了以下错误:
运行时错误“-2147217900 (80040e14)”:语法错误
我尝试了几种方法来阅读这些专栏,但我无法完成。有人可以告诉我如何解决这个问题吗?在此先感谢:)
Public Function GetParameterDbfTotalColumn() As Long
Dim sConnectionString As String
Dim mdbConn As ADODB.Connection
Dim mrst As ADODB.Recordset
Dim pPath As String
Dim sTable As String
GetParameterDbfTotalColumn = -1
pPath = "C:\ProgramData\Citect\CitectSCADA 7.20\User\Huisman V4\parameters.dbf"
Set mdbConn = New ADODB.Connection
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & pPath & ";Extended Properties=""DBASE IV;"";"
sConnectionString = "Driver={Microsoft dBase Driver (*.dbf)};DefaultDir=" & pPath & ";Extended Properties=""DBASE IV;"";DriverId=533;CollatingSequence=ASCII;Deleted=0;FIL=dBase 5.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Statistics=0;Threads=3;UserCommitSync=Yes;"
sConnectionString = "Provider=VfpOleDB.1;Data Source=" & pPath & ";Collating Sequence=MACHINE;Exclusive=ON"
mdbConn.Open sConnectionString
Set mrst = New ADODB.Recordset
mrst.Open sTable, mdbConn, adOpenDynamic, adLockPessimistic, adCmdTable
GetParameterDbfTotalColumn = mrst.Fields.Count
GetParameterDbfTotalColumn = 0
Exit Function
End Function
【问题讨论】:
-
在我看来你的连接字符串有问题。检查HERE
-
顺便说一句,对于
.Open方法,您只传递sConnectionString的最后一个值。可能您错过了应该以这种方式完成的其他部分的连接:sConnectionString = sConnectionString & "Provider......" -
啊,好的,谢谢,我会玩一会儿:)