Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 HELP! Работа с Database  [new]
Oleg O
Member

Откуда:
Сообщений: 25
Спрашивал у спецов по VB. Знатоки молчат. Может профи по SQL помогут.

Написал внешнюю функцию возврата значения по условию поиска (MS Access 2000):

Public Function FindTMP(DatabaseToOpen, Condition, ValueField) As String
Dim dbs As Database, rst As Recordset, fldLoop As Field
tmpTxt = ""
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(DatabaseToOpen)
rst.FindFirst Condition
' Проверяет, найдена ли запись
If (rst.NoMatch) Then
tmpTxt = ""
Else
tmpTxt = Str(rst(ValueField))
End If
rst.Close
Set dbs = Nothing
End Function

Выделяет dbs As Database и выдает ошибку: User-defined type not defined
В чем проблема? Как ее исправить?
Самое интересное, что такая же процедура в MS Access 97 работает !?
5 апр 03, 22:24    [165826]     Ответить | Цитировать Сообщить модератору
 Re: HELP! Работа с Database  [new]
Святослав
Member

Откуда: Брянск
Сообщений: 7
Возможно тебе надо подключить DAO (у тебя наверное ADO по-умолчанию прописано, а там нет объекта Database). Tools -> References...
5 апр 03, 22:43    [165828]     Ответить | Цитировать Сообщить модератору
 Re: HELP! Работа с Database  [new]
Oleg O
Member

Откуда:
Сообщений: 25
Если можно, то опишите подробнее суть дела (где исправлять).
5 апр 03, 23:41    [165832]     Ответить | Цитировать Сообщить модератору
 Re: HELP! Работа с Database  [new]
-=Alexey=-
Member

Откуда:
Сообщений: 245
To Oleg O этот вопрос нужно задавать в форуме по Access, а еще лучше делать поиск, так как ваш вопрос задавали раз 100, наверное.

Суть проблеммы: программисты для Access 97 привыкли использовать в качестве обьектов доступа к данным DAO, в Acc97 эта библиотека подключается автоматически при создании базы. Начиная с Acc2000, по умолчанию подключается схожая по функциональности библиотека ADO, DAO надо подключать ручками. В редакторе кода, меню tools -> Reference библиотека Microsoft DAO x.x Object Library.

В вашем случае ошибка возникает из-за того, что в ADO нет обьекта Database, если бы использовали такой код Set rst = CurrentDb.OpenRecordset(DatabaseToOpen), т.е. без явного объявления Database, ошибки бы не было, так как в ADO есть обьект Recordset, но потом в коде проявлялись бы скрытые ошибки, на основании которых, трудно предположить что дело в библиотеках. Лучше такие вещи узнавать от компилятора еще на этапе объявления переменных, а для этого перед объектом нужно указывать библиотеку, из которой он берется.
Dim dbs As DAO.Database, rst As DAO.Recordset, rstADO As ADODB.Recordset
Успехов :)
6 апр 03, 02:35    [165852]     Ответить | Цитировать Сообщить модератору
 Re: HELP! Работа с Database  [new]
Oleg O
Member

Откуда:
Сообщений: 25
Спасибо, ребята.
6 апр 03, 09:31    [165887]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить