VBA:ADODB记录集-SQL查询返回值-转换为函数中返回的数字

VBA:ADODB记录集-SQL查询返回值-转换为函数中返回的数字,sql,vba,function,adodb,Sql,Vba,Function,Adodb,我的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 strSometh

我的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

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

除了返回变量(该变量的作用域通过RS打开/关闭并存储SQL结果)之外,其他所有操作都做得很好

getAge=strSomething


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

您的记录集已关闭。您好,谢谢回复!抱歉,粘贴错误-已注释掉rs close。但最后一行仍然不起作用。我认为这不是将rs值转换为数字/双精度?取消注释并遵循我的建议。