Консультация № 60076
24.10.2006, 22:05
0.00 руб.
0 3 1
Здравствуйте!
Подскажите пожалуйста как создать объект Recordset.
Есть модуль в Access 2000 и функция , внутри которой я хачу создать объект Recordset , данные по запросу SELECT, только для чтения, сделать нужные расчеты , потом закрыть его.

Обсуждение

Неизвестный
25.10.2006, 14:16
общий
это ответ
Здравствуйте, DragonTusk!
Различных вариантов достаточно много, конкретно ответить сложно, не зная КАКОЙ Recordset Вы хотите создать, посмотрите в справке VBA для Access метод OpenRecordset
там слишком много всего написано, чтобы пересказывать, также есть обширные примеры.
Для примера нашел у себя маленькую функцию, которая работает с DAO.Recordset.
Будут вопросы пишите в почту.
Успехов.

Приложение:
Function GroupConcat(sql As String, Optional ws As String = "; ") As String‘в References нужно добавить Microsoft DAO 3.6 Object Library‘функция открывает Recordset для sql(SQL SELECT запрос), проходит по всем записям‘и объединяет значения 0-го поля каждой записи результата запроса в одну строку, разделяя их ws‘пример: user_companies=GroupConcat("SELECT company FROM user_company WHERE userid=1") Dim s As String Dim r As DAO.Recordset On Error GoTo GroupConcat_Error‘открываем рекордсет Set r = CurrentDb.OpenRecordset(sql, dbOpenForwardOnly) s = ""‘проходим по всем записям While Not r.EOF s = s & CStr(r(0)) & ws r.MoveNext Wend‘закрываем рекордсет r.Close GroupConcat = sGroupConcat_Exit:Exit FunctionGroupConcat_Error: GroupConcat = "#Ошибка!"Resume GroupConcat_Exit End Function
Неизвестный
25.10.2006, 15:26
общий
По ответу HookEst.Нет смысла подключать Microsoft DAO 3.6 Object , ведь Access 2000 работает через ADO. Попробую сделать образец и напишу результат.С уважением.
Неизвестный
25.10.2006, 16:12
общий
Нашел в справке Office2000 > Программирование > Преобразование > Преобразование программы DAO в ADO и проверил в своей базе.Dim r_1 As New ADODB.Recordsetr_1.Open "select * from zatrat where kod<3", CurrentProject.Connection, adOpenKeyset, adLockOptimisticDo While Not r_1.EOF MsgBox (r_1!kod) r_1.MoveNextLoopПример рабочий. По опциям можно посмотреть в справке по команде.Доступ к базам через DAO устанавливается из Office97 либо отдельными программами. В инсталляции Office2000 только ADO, и то через Excel > Надстройки > ODBC.Может нужно будет добавить через Tools > Reference Microsoft ADO 2.1 library.С уважением.
Форма ответа