OpenRecordset в Access

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Konst37
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 27.12.2004 (Пн) 15:58

OpenRecordset в Access

Сообщение Konst37 » 16.02.2005 (Ср) 9:34

Имею такой кусок кода

Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("select * from [Справочник]", dbOpenDynaset, dbReadOnly)

И в троке db.OpenRecordset
пишет run-time error 13
type mismatch

в чем проблема, подскажите....

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.02.2005 (Ср) 9:37

Укажи конкретно, какая библиотека используется. CurrentDb это DAO, а в Access 2000 и выше по умолчанию используется ADO.
Т.е. либо пиши Dim rs As DAO.Recordset, либо Set rs = CurrentProject.Connection.Execute(...)
Lasciate ogni speranza, voi ch'entrate.

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Сообщение snov » 16.02.2005 (Ср) 10:58

alibek писал(а):Укажи конкретно, какая библиотека используется. CurrentDb это DAO, а в Access 2000 и выше по умолчанию используется ADO.
Т.е. либо пиши Dim rs As DAO.Recordset, либо Set rs = CurrentProject.Connection.Execute(...)
Используется DAO, в ADO нет типа Database

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Re: OpenRecordset в Access

Сообщение snov » 16.02.2005 (Ср) 11:00

Konst37 писал(а):... в чем проблема, подскажите....
А без ридонли как себя ведет?

Konst37
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 27.12.2004 (Пн) 15:58

Сообщение Konst37 » 16.02.2005 (Ср) 11:20

да Dim rs As DAO.Recordset
это помогло...
А где посмотреть, какая библиотека используется DAO или ADO

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Сообщение snov » 16.02.2005 (Ср) 11:27

Глупость свою понял. молчу :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.02.2005 (Ср) 11:45

Смотреть в F2.
Если имена совпадают, то приоритет дается тому, чья библиотека подключена раньше (это ADO). В результате db имеет тип DAO.Database, а rs имеет тип ADODB.Recordset. db.OpenRecordset возвращает же DAO.Recordset, отсюда и несоответствие типов.
Lasciate ogni speranza, voi ch'entrate.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 16.02.2005 (Ср) 12:01

alibek писал(а):Смотреть в F2.

Удобнее смотреть не в F2 (Object Browser), а в Tools->Referencies. Какая библиотека выше, та и главнее. Передвинуть можно стрелочками справа.

P.S. а у меня в Access 2000 почему-то по-прежнему DAO по умолчанию...
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Konst37
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 27.12.2004 (Пн) 15:58

Сообщение Konst37 » 16.02.2005 (Ср) 12:20

Спасибо всем ;)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.02.2005 (Ср) 13:10

Rainbow писал(а):
alibek писал(а):Смотреть в F2.

Удобнее смотреть не в F2 (Object Browser), а в Tools->Referencies. Какая библиотека выше, та и главнее. Передвинуть можно стрелочками справа.


Обычно пользуют только одну из них - так что галочку на нее, а с ненужной снять...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 2

    TopList