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

person itgonerain    schedule 07.11.2020    source источник
comment
ваш набор записей закрыт.   -  person Jeremy    schedule 07.11.2020


Ответы (1)


Нет, вы закрыли набор записей, и поэтому эта строка не работает ..

Все остальное вы сделали правильно, за исключением того, что вернули переменную, область действия которой прошла через открытие / закрытие RS и сохранила результат SQL.

getAge = strSomething

Также обратите внимание, что rs.Field(0).Value и rs!fieldAge одинаковы, потому что fieldAge - единственный столбец, который вы выбираете, и его индекс равен 0 в массиве полей.

person Jeremy Thompson    schedule 07.11.2020
comment
Привет, спасибо за ответ! Извините, ошибка вставки - закомментировал rs близко. однако последняя строка по-прежнему не работает. Я думаю, что это не преобразование значения rs в число / двойное? - person itgonerain; 07.11.2020
comment
Раскомментируйте и следуйте моему совету. - person Jeremy Thompson; 07.11.2020