mysql - VBA脚本从MySql数据库读取时出现问题

标签 mysql vba excel excel-2007

我在使用 Excel 中的 vba 脚本时遇到一些问题,应该是 从 MySql 数据库读取。 SQL 查询应该只返回一个 记录但实际上返回一个空结果集。通过 phpMyAdmin 运行时,生成的语句工作正常。

这是我的代码:

Function getClientId(emailAddress As String)
    Dim rs As ADODB.Recordset
    Dim sql As String

    ConnectDB

    Set rs = New ADODB.Recordset

    sql = "SELECT client_id FROM clients WHERE email_address = '" & emailAddress & "' LIMIT 1"
    Debug.Print sql
    rs.Open sql, oConn

    Debug.Print rs.RecordCount

    If (rs.RecordCount = -1) Then
        getClientId = Null
    Else
        getClientId = rs(0)
    End If
    rs.Close
End Function

编辑:我的数据库连接功能。

Function ConnectDB()
    On Error GoTo ErrHandler

    Set oConn = New ADODB.Connection
    oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
    "SERVER=localhost;" & _
    "DATABASE=mydb;" & _
    "USER=user;" & _
    "PASSWORD=password;" & _
    "Option=3"

    'Debug.Print oConn

    Exit Function
ErrHandler:
    MsgBox Err.Description, vbCritical, Err.Source
End Function

ConnectDB 函数连接正常,因为我正在运行其他脚本 用它。如果有人能看到我做错了什么那么任何帮助都会 值得赞赏。

提前非常感谢。

加里

最佳答案

MyODBC 未正确提供 RecordCount 属性。

Re: Problem with RecordCount with ASP & MySQL

rs.recordcount = -1 with myODBC

Re: ADO Connection RecordCount

因此,如果您确实需要 RecordCount,请将 CursorLocation 属性设置为 adUseClient。 如果没有,只需像这样迭代 RecordSet:

Do While Not rs.EOF
    '...do your magic
    rs.MoveNext
Loop

关于mysql - VBA脚本从MySql数据库读取时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774690/

相关文章:

xml - 使用命名空间属性和 SelectSingleNode 属性的 XPATH

ms-access - Access 2000 Report -- 交替行颜色

c# - 是否有 Excel 图表对象到 System.Windows.Forms.DataVisualization.Charting 转换器?

vba - 如何锁定包含公式的单元格但仍允许宏工作?

python - 此线程本地 Flask-SQLAlchemy session 是否会导致 "MySQL server has gone away"错误?

php - 如何使用 URL 'append' 函数变量以及关于数组的问题

mysql - 查询获取列总计并减去 MySQL

vba - 组合框的无效属性值

javascript - 将 JSON 数据转换为可下载的 Excel

php - 显示两个 SQL 表中的数据语法解释