RecordSet c параметром глючит

zam-ministra
Дата: 26.09.2005 15:50:59
Есть фукция типа
Function f1(tabl_name As String, pole_name As String)

Dim db As Database
Dim rs As Recordset
Dim param As String

Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM " & tabl_name & " WHERE " & pole_name & " = 2")

param = rs![pole_name] //выдает ошибку!!!!! Элемента нет в смействе

End Sub
Как вынуть в переменную то что получилось в запросе???
Анонимыч
Дата: 26.09.2005 15:52:40
param = rs(pole_name])
Анонимыч
Дата: 26.09.2005 15:53:31
Ой... :(
param = rs(pole_name)
Анонимыч
Дата: 26.09.2005 15:58:22
А если запрос ничего не вернёт? Ошибка будет: "Текущая запись отсуствует"

If Not rs.EOF Then param = rs(pole_name)
zam-ministra
Дата: 26.09.2005 15:58:35
ошибка : Символ описания типа данных не соответствует описываему типу данных. И вообще rs(имя поля) это похоже на выхов функции
Анонимыч
Дата: 26.09.2005 16:03:25
работает железно. Только что проверил.
Sub nnn()
Dim rst As Recordset, qq As String
    qq = "AddressID"
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM tblAddress WHERE AddressID = 1;")
    qq = rst(qq)
    Debug.Print qq
End Sub
Анонимыч
Дата: 26.09.2005 16:04:53
Покажите новый вариант вашего кода.
zam-ministra
Дата: 26.09.2005 16:08:13
Я понял! фишка в том что возвращаемое поле типа Memo что с ним делать фукцией CStr() не получается. Как быть.
Анонимыч
Дата: 26.09.2005 16:15:38
Если я правильно понял, Вы хотите прочитать из произвольной таблицы, значение произвольного поля и вернуть его в вызывающую функцию?

Используйте Dlookup:
param = DLookup(pole_name, tabl_name, pole_name & "= 2")

А что находится в этом поле memo?
Diroled
Дата: 26.09.2005 16:16:16
zam-ministra
Я понял! фишка в том что возвращаемое поле типа Memo что с ним делать фукцией CStr() не получается. Как быть.

Проверь соответствие типа данных которые учавствую как параметры запроса с типом данных поля по которому идут отборы. Согласуй и будет все ОК