powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Присвоение с использованием CurrentDb и DBEngine(0)(0)
2 сообщений из 2, страница 1 из 1
Присвоение с использованием CurrentDb и DBEngine(0)(0)
    #39301688
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обнаружил интересный эффект. Нужно было получить TableDef определенной таблицы, а присвоение
Код: vbnet
1.
Set tdf = CurrentDb.TableDefs(strTable)


не работало - на tdf рагалось дальше "Object invalid or no longer set"

Вот так работает:
Код: vbnet
1.
Set tdf = DBEngine(0)(0).TableDefs(strTable)



И так работает:
Код: vbnet
1.
2.
Set db = CurrentDb()
Set tdf = db.TableDefs(strTable)



Не совсем понятно, почему такое происходит. Понятно, что CurrntDb дает ссылку на текущую копию базы данных, каждое обращение это будет новая копия, но ссылка на объект с определением таблицы должен быть тот же самый. Или все ссылки на объекты базы данных, полученные через CurrentDb разрушаются сразу же после обращения к CurrentDb?
...
Рейтинг: 0 / 0
Присвоение с использованием CurrentDb и DBEngine(0)(0)
    #39301847
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteerвсе ссылки на объекты базы данных, полученные через CurrentDb разрушаются сразу же после обращения к CurrentDb?
Да, верно. CurrentDB - не объект, а метод. который возвращает ссылку на базу данных, но если ее не запомнить, она автоматически разрушается вместе с содержимым. Вот тут , например, обсуждалось это
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Присвоение с использованием CurrentDb и DBEngine(0)(0)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]