首页 > 解决方案 > VBA:ADODB 记录集 - SQL 查询返回值 - 转换为函数中返回的数字

问题描述

我的 SQL 查询是:

SELECT fieldAge FROM tbl1 WHERE fieldName = 'Aaron'

它总是只返回 1 个数字。

我希望数字成为函数中的返回值 - 在该行出现错误。

谢谢!

Function getAge(thisName as String) As Double
    Dim cn as ADODB.Connection
    Dim rs as ADODB.Recordset
    Dim strSQL as string
    Dim strSomething as string

    strSQL = "SELECT fieldAge FROM tbl1 WHERE fieldName = 'Aaron'"

    Set cn = New ADODB.Connetion
    cn.ConnectionString = {connection string here}
    cn.open
    rs.open strSQL, cn
    While Not rs.EOF
        strSomething = rs!fieldAge
    Wend
    'rs.Close
    cn.Close
    'Set rs = Nothing
    Set cn = Nothing

    getAge = rs.Field(0).Value  // Doesn't work

End Function

标签: sqlvbafunctionadodb

解决方案


不,您已经关闭了记录集,这就是该行失败的原因..

除了返回范围通过 RS 打开/关闭并存储 SQL 结果的变量之外,您已经完成了其他所有操作。

getAge = strSomething

另请注意,rs.Field(0).Valueandrs!fieldAge是相同的,因为 fieldAge 是您选择的唯一列,并且它的索引在 fields 数组中为 0。


推荐阅读