|
|
|
| ???
В конструкции RetVal=Shell("База.mdb") получение кода RetVal означает, что приложение уже успешно загружено ???
На него уже можно ссылаться по, например, Set obj=GetObject("База.mdb") ???
и выполнять команды, например, obj.DoCmd.OpenForm ... ???
Или же получение кода RetVal означает лишь начало успешной загрузки
и необходимость дождаться окончания этой загрузки, прежде чем начать
исполнять последующий код ??? | |
|
| |
|
|
|
|
| И как корректно определить момент окончания ожидания ? | |
|
| |
|
|
|
| ИМХО, никак.
Я в таком случае после GetObject выполняю 1-2 вызова DoEvents. Обычно этого достаточно.
А ваше RetVal=Shell("База.mdb") срабатывает? У меня без указания пути к MSAccess.exe не работает.
Кстати, GetObject("Путь к БД") обращается к открытой ранее БД или открывает ее в новом окне.
В вашем случае (если не используются другие ключи командной строки) применение Shell - избыточно. | |
|
| |
|
|
|
| Пример чистая иллюстрация, не воспринимайте буквально.
Увы. Это не избыточность, а попытка обойти глюк Runtime: сбоит он при создании объекта типа Access.Aplication
А по поводу "никак": может как то через WINAPI ?
Кто то, когда то мог сталкиваться с подобной ситуаций и возможно находил решение
или хотя бы намек на него...
Просто установить фиксированную задержку решение очевидное, но не красивое.
Уж лучше тогда все построить на обработке ошибки создания Access.Aplication ... | |
|
| |
|
|
|
| можэ через CreateProcess?
http://hiprog.com/index.php?option=com_content&task=view&id=326&Itemid=35
и вот еще че нашел
http://hiprog.com/index.php?option=com_content&task=view&id=83&Itemid=35 | |
|
| |