我在Excel中有一个非常简单的VBA代码,该代码使用ADO查询MariaDB数据库,然后将该记录集复制到Excel中。问题是,当代码在某些计算机上运行时,它可以正常工作,而在其他计算机上,则返回“数据提供程序或其他服务返回了E_FAIL状态”。
Dim sConn As String
Set adConn = New ADODB.Connection
If adConn.State = adStateClosed Then
sConn = "Driver=MariaDB ODBC 3.0 Driver;" & _
"Server=server;" & _
"Database=database;" & _
"User=user;" & _
"Password=password;" & _
"Option=3"
adConn.ConnectionString = sConn
adConn.Open
End If
Dim adRs As ADODB.Recordset
Set adRs = New ADODB.Recordset
adRs.CursorLocation = adUseClient
Dim SQLQuery as String
SQLQuery = "SELECT * FROM table;"
adRs.Open SQLQuery, adConn, adOpenStatic, adLockPessimistic
Worksheets("Sheet1").Range("A1").CopyFromRecordset adRs
鉴于它可以在某些计算机上运行,而不能在其他计算机上运行,我想它可能与计算机本身的配置或驱动程序有关,而不是与Excel,VBA或SQL有关。我应该去哪里看?所有机器都是64位的,驱动程序是64位驱动程序。代码有问题吗?在连接字符串中?
答案 0 :(得分:0)
我将DATE字段强制转换为CHAR,错误消失了。我仍然不知道为什么某些运行相同版本的Windows,Excel和ODBC驱动程序的计算机的行为与其他计算机不同。