Подскажите причину, почему не откывается рекордсет...

Программирование на Visual Basic for Applications
echo
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 26.01.2005 (Ср) 8:25
Откуда: Хабаровск

Подскажите причину, почему не откывается рекордсет...

Сообщение echo » 23.03.2005 (Ср) 8:32

ни вот так:
Код: Выделить всё

Set Rs = db.OpenRecordset(db.TableDefs(td).Name)
Выдаёт ошибку 3265: "Элемент не обнаружен в данном семействе"
ни так:
Код: Выделить всё

Set Rs = db.OpenRecordset(Worksheets("q").Name)
Выдаёт ошибку 13: Несоответствие типа;

При том, что структура таблицы в Аксесовской базе (Office 97) создана на основе данных с листа "q".
Душа болит... А лечишь её - печень болит!

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

Сообщение alibek » 23.03.2005 (Ср) 8:46

А что есть td? Объект или строковая переменная? И чему оно равно?
В любом случае, проще использовать такое:
Код: Выделить всё
Set Rs = db.TableDefs(td).OpenRecordset
Lasciate ogni speranza, voi ch'entrate.

echo
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 26.01.2005 (Ср) 8:25
Откуда: Хабаровск

Сообщение echo » 23.03.2005 (Ср) 12:11

Td это объект
Set td = db.CreateTableDef(Worksheets("q").Select)
Душа болит... А лечишь её - печень болит!

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

Сообщение alibek » 23.03.2005 (Ср) 14:01

Тогда достаточно td.OpenRecordset
Lasciate ogni speranza, voi ch'entrate.

echo
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 26.01.2005 (Ср) 8:25
Откуда: Хабаровск

Сообщение echo » 24.03.2005 (Чт) 1:58

борода... :cry:
Душа болит... А лечишь её - печень болит!

echo
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 26.01.2005 (Ср) 8:25
Откуда: Хабаровск

Сообщение echo » 24.03.2005 (Чт) 4:26

Блин, а решилось то всё просто.
Вместо
Код: Выделить всё

     Dim db As Database
     Dim rs As Recordset
     Dim td As TableDef

нужно было
Код: Выделить всё

     Dim db As DAO.Database
     Dim rs As DAO.Recordset
     Dim td As DAO.TableDef
Душа болит... А лечишь её - печень болит!

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

Сообщение alibek » 24.03.2005 (Чт) 8:08

У тебя видимо еще и ADO подключено. Оставь только DAO и все будет работать и так.
Lasciate ogni speranza, voi ch'entrate.

echo
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 26.01.2005 (Ср) 8:25
Откуда: Хабаровск

Сообщение echo » 24.03.2005 (Чт) 8:27

alibek

ну вот теперь стало всё совсем понятно. сенки.
Душа болит... А лечишь её - печень болит!


Вернуться в VBA

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList