Access.Application.CurrentDb - это ничто? - PullRequest
0 голосов
/ 06 января 2009

Я затрудняюсь объяснить это:

Я получаю ошибку:

Ошибка «91» (объект или блок не установлен)

во второй строке ниже:

Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("SELECT * FROM employees")

Следующее также вызывает это:

`Set rs = CurrentDb.OpenRecordset("employees")`

Выполнение только ?CurrentDb.Name в ближайшем окне также вызывает ошибку.

Теперь, очевидно, база данных открыта, так как я редактирую форму в ней, так что может вызвать эту ошибку здесь?

Ответы [ 4 ]

7 голосов
/ 08 января 2009

Если вы работаете с проектом ADP, вы должны использовать CurrentProject вместо CurrentDB.

3 голосов
/ 06 января 2009

Вы должны назначить свой метод .openRecordset объекту dao.recordset или универсальному объекту (техника «позднего связывания»). попробуйте что-то вроде этого:

dim rs as dao.recordset
set rs = currentDb.openRecordset(your SELECT instruction,...)
1 голос
/ 10 февраля 2009

Попробуйте создать объект базы данных и использовать его вместо ссылки на CurrentDb. Например:

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM Employees")
0 голосов
/ 16 марта 2010

Причина, по которой я подозреваю, что код не будет работать, заключается в том, что в соответствии с M / Soft текст ссылки CurrentDb - это метод, который возвращает переменную объекта типа База данных, Таким образом, код, показанный Forester93, должен работать. Это то, что я бы использовал и использовал уже много лет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...