某些机器而非其他机器上的E_FAIL状态

时间:2018-11-09 15:49:24

标签: mysql excel vba odbc

我在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位驱动程序。代码有问题吗?在连接字符串中?

1 个答案:

答案 0 :(得分:0)

我将DATE字段强制转换为CHAR,错误消失了。我仍然不知道为什么某些运行相同版本的Windows,Excel和ODBC驱动程序的计算机的行为与其他计算机不同。