|
|
|
| Здравствуйте все!
Возник совсем глупый вопрос.
Я делаю приложения на Microsoft Access 2003 с использованием VBA/DAO. В некоторый момент в скрипте управляющей формы создается некоторая таблица (локальная), которую затем требуется открыть из-под этой управляющей формы именно как таблицу и получить к ней доступ для внесения пользователем в таблицу нужных изменений данных. Вариант создать отдельную форму на основе этой таблицы и открывать эту отдельную форму по некоторым причинам не годится.
У меня пока получается так: таблица создается как планировалось, таблица открывается из-под управляющей формы, но не удается сделать таблицу активной и, соответственно, нет к этой таблице доступа.
Заранее спасибо. | |
|
| |
|
|
|
| "таблица открывается из-под управляющей формы"
подробнее. что вы понимаете под этой фразой | |
|
| |
|
|
|
| Для внесения и( или) изменения даныых в таблице используйте конструкцию типа
CurrentDB.Execute "Insert чего то там инсертим"
CurrentDB.Execute "Update чего то там апдэйтим"
Для добавления ( изменения ) записей не нужно делать таблицу активной. ( Если речь идет именно о таблице а не о табличной форме ) | |
|
| |
|
|
|
| Если имеется ввиду - открыть таблицу на экране, то используйте DoCmd.OpenTable. | |
|
| |
|
|
|
| Под этой фразой понимаю как раз то, что предложил и Анатолий из Киева: открываю таблицу из скрипта командой DoCmd.OpenTable. Она (таблица) и открывается, но активной остается управляющая форма, в скрипте которой выполняется указанная выше команда, а к таблице доступиться нельзя.
То, что предложил Format, не годится, потому что по схеме работы приложения создание таблицы происходит скриптом, а вот внесение изменений (в открываемую таблицу) должно быть предоставлено пользователю по его усмотрению в режиме диалога как составная часть выполнения приложения, — ради этого затеяна вся конструкция; а скрипт потом должен обработать внесенные пользователем изменения (если таковые окажутся), но сейчас вопрос не в этом. | |
|
| |
|
|
|
| форма в которой выполняется код не модальная? | |
|
| |
|
|
|
| Форма, из скрипта которой выполняется DoCmd.OpenTable — модальная (модальное окно). | |
|
| |
|
|
|
| ну так в чем тогда вопрос? модальная - это значит только она доступна | |
|
| |
|
|
|
| Сделал как Вы посоветовали, окно управляющей формы не модальное.
За совет спасибо, но на результате это не отразилось: попрежнему формируемая таблица открывается из-под управляющей формы, но остается недоступной. Может быть, я где-то еще какие-то параметры недоучел? | |
|
| |
|
|
|
|
| или хотя бы строчку
DoCmd.OpenTable .................................................что там далее у ВАС? | |
|
| |
|
|
|
| Что значит посмотреть базу, я не совсем понимаю.
Строка обращения к открытию таблицы:
DoCmd.OpenTable TNG, acViewNormal, acEdit
Здесь TNG - переменная, содержащая имя открываемой таблицы, остальное стандартно. | |
|
| |
|
|
|
| хочется понять как у вас открывается форма из которой открывается таблица и какие у этой формы установлены свойства для окна.
Поскольку форма не дает редактировать открывшуюся таблицу, то она (скорее всего) открыта как окно диалога, или у нее установлено свойство "модальная". Это можно установить как свойствами формы так и способом ее вызова (Docmd.OpenForm .....) что бы не выяснять все это здесь, задавая длинные вопросы, хотел просто посмотреть кусок базы с вызовом формы и открытием таблицы из нее. | |
|
| |