|
|
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
Hummerно писать в макросе открытие другого мдб и закрытие самого себя - именно в autoexec - полёт извращённой фантазии... Все претензии - к постановке задачи. См. исходный вопрос топика. Значит, для моего случая это решение не годится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:47:23 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
VictoshaИ Shell тебя не спасет. Спасет. Точнее, отсутствие OpenCurrentDatabase спасет. Потому что у меня будет два разных mdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:48:55 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
VictoshaПочему, получив экземпляр Ексель, тебе не страшно открыть в нем рабочую книгу. Вдруг зациклишся, поскольку она начнет открывать сама себя в бесконечном цикле... Потому что там нет Автоэкзека, который делает OpenCurrentDatabase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:49:59 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
Владимир СанычВсем привет. Спасибо всем, кто поможет. Хочу сделать так, чтобы выполнялись две операции: 1. Копирование файла mdb из бэкапа. Это внешний по отношению к текущему приложению процесс Владимир Саныч 2. Запуск файла, полученного после копирования. Но при этом юзер должен нажимать на один ярлык, а не на два. Видимо, задача сводится к тому, чтобы по ходу работы программы запустить другой mdb (причем на переднем плане экрана), а старый закрыть. Реально ли такое? Аксесс 2000. Буквально вышеописанную комбинацию действий производит скрипт, указанный Hummer. Почему объявлено, что не устраивает - я не понял. Видимо какие-то существенные детали остались мной "непрочитаны". ЗЫ Извини за "пачкотню" - больше не буду (здесь)... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:52:14 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч 1. Копирование файла mdb из бэкапа. 2. Запуск файла, полученного после копирования. Для решения такой задачи аксес абсолютно не нужен - делается скрипт или екзешник, в котором можно указать путь к бекапу - в любом случае, работать будет быстрее, чем на аксесе:) А макрос autoexec вообще не причём - в любом случае, не будет зацикливание - зачем копировать из бекапа файл, в котором при загрузке опять происходит копирование скамого себя?:) Это и имелось в виду. Нормальное решение на сайте у Алексея Козина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:55:06 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч VictoshaПочему, получив экземпляр Ексель, тебе не страшно открыть в нем рабочую книгу. Вдруг зациклишся, поскольку она начнет открывать сама себя в бесконечном цикле... Потому что там нет Автоэкзека, который делает OpenCurrentDatabase. Я конечно, обещал, что "не буду". Только вот сдержаться возможности нет. Саныч, а КУДА ОН ДЕНЕТСЯ? ЧТО ЕГО ОСТАНОВИТ, если ты базу через Shell запустишь. ЗЫ Закралось подозрение, поэтому на всякий случай - autoexec - он локальный по отношений к конкретному mdb и, если есть, то у каждого свой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:55:27 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
2 Victosha В командной строке можно указать запуск аксеса с имуляцие шифта, т.е. блокирования макросов на страте мдб или адп. Поэтому, если нужно универсально блокировать макрос автоекзек - то шелл лучше. Но вот если там стоит защита от шифта - получаем замкнутый круг:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:57:43 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
извените конечно, а нафига вообще этот аутоэкзек? нельзя что-ли форму назначить и всё нужное на её открытие повесить? Саныч , а у тебя в ивритских версиях с макросами разве не было проблем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:59:42 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
2 TatianaT Дело вкуса. Зачем мне лишняя форма, если я совершаю одно нужно действие, например, запуск моей функции, которая считает конфиг приложения и, в зависимости от типа аутентификации конкретного пользователя, выведет или нет форму для ввода логина и пароля к серверу? Мне больше подойдёт автоекзек:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 13:02:23 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
Ой скока мне сейчас отвечать... попробую коротко. 1. Скрипт по ссылке посмотрел. Спасибо. Не хочу никого обидеть, но мне чисто физически проще написать свою программу, когда я понимаю идею, чем приспосабливать чужую, в которой я понимаю не все. 2. Про зацикливание - я говорю только про OpenCurrentDatabase. Вместо Автоэкзека можно взять что угодно другое, исполняемое при запуске базы, это ничего не меняет. Хотя, возможно, я не понял, что такое OpenCurrentDatabase, и тогда мои извинения. Я почему-то решил, что OpenCurrentDatabase открывает ту же базу, из которой он вызывается. 3. В ивритских версиях куча багов, но с макросами пока везло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 13:08:59 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
зачем разбираться - вот с комментариями: копируешь в текстовый редактор, сохраняешь под именем updater.vbs и делаешь ярлычек на рабочий стол Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 13:37:24 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
Владимир СанычОй скока мне сейчас отвечать... попробую коротко. 2. Про зацикливание - я говорю только про OpenCurrentDatabase. Вместо Автоэкзека можно взять что угодно другое, исполняемое при запуске базы, это ничего не меняет. Хотя, возможно, я не понял, что такое OpenCurrentDatabase, и тогда мои извинения. Я почему-то решил, что OpenCurrentDatabase открывает ту же базу, из которой он вызывается. OpenCurrentDatabase открывает файл (mdb), который, после открытия, становится текущей базой данных для того приложения Акцесс, в котором он (файл) открыт. вот кусок из хелпа. OpenCurrentDatabase Method See Also Applies To Example Specifics You can use the OpenCurrentDatabase method to open an existing Microsoft Access database (.mdb) as the current database. expression.OpenCurrentDatabase(filepath, Exclusive, bstrPassword) expression Required. An expression that returns one of the objects in the Applies To list. filepath Required String. A string expression that is the name of an existing database file, including the path name and the file name extension. If your network supports it, you can also specify a network path in the following form: \\Server\Share\Folder\Filename Note If you don't supply the filename extension, .mdb is appended to the filename. Exclusive Optional Boolean. Specifies whether you want to open the database in exclusive mode. The default value is False, which specifies that the database should be opened in shared mode. bstrPassword Optional String. The password to open the specified database. Remarks You can use this method to open a database from another application that is controlling Microsoft Access through Automation, formerly called OLE Automation. For example, you can use the OpenCurrentDatabase method from Microsoft Excel to open the Northwind.mdb sample database in the Microsoft Access window. Once you have created an instance of Microsoft Access from another application, you must also create a new database or specify a particular database to open. This database opens in the Microsoft Access window. Note Use the OpenAccessProject method to open an existing Microsoft Access project (.adp) as the current database. If you have already opened a database and wish to open another database in the Microsoft Access window, you can use the CloseCurrentDatabase method to close the first database before opening another. Set the Exclusive argument to True to open the database in exclusive mode. If you omit this argument, the database will open in shared mode. Note Don't confuse the OpenCurrentDatabase method with the ActiveX Data Objects (ADO) Open method or the Data Access Object (DAO) OpenDatabase method. The OpenCurrentDatabase method opens a database in the Microsoft Access window. The ADO Open method returns a Connection object variable, and the DAO OpenDatabase method returns a Database object variable, both of which represent a particular database but don't actually open that database in the Microsoft Access window. Example The following example opens a Microsoft Access database from another application through Automation and then opens a form in that database. You can enter this code in a Visual Basic module in any application that can act as a COM component. For example, you might run the following code from Microsoft Excel, Microsoft Visual Basic, or Microsoft Access. When the variable pointing to the Application object goes out of scope, the instance of Microsoft Access that it represents closes as well. Therefore, you should declare this variable at the module level. ' Include the following in Declarations section of module. Dim appAccess As Access.Application Sub DisplayForm() ' Initialize string to database path. Const strConPathToSamples = "C:\Program " _ & "Files\Microsoft Office\Office\Samples\" strDB = strConPathToSamples & "Northwind.mdb" ' Create new instance of Microsoft Access. Set appAccess = _ CreateObject("Access.Application") ' Open database in Microsoft Access window. appAccess.OpenCurrentDatabase strConPathToSamples ' Open Orders form. appAccess.DoCmd.OpenForm "Orders" End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 13:47:42 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
АлексейКзачем разбираться - вот с комментариями: Честное слово, спасибо. В этом скрипте есть несколько вещей, которые мне не подходят. Если надо, я могу объяснить подробно, но топик вырастет страниц на 10. VictoshaOpenCurrentDatabase открывает файл (mdb), который, после открытия, становится текущей базой данных для того приложения Акцесс, в котором он (файл) открыт. Да, дошло. Я тормоз и серость. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 14:12:29 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
авторЯ тормоз и серость вихвам, этого флага у мене ты вырвешь :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 14:15:16 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
Victosha авторЯ тормоз и серость вихвам, этого флага у мене ты вырвешь :)) Я себе свой сошью. Серого цвета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 14:16:21 |
|
||
|
запустить другой mdb (причем на переднем плане экрана), а старый закрыть
|
|||
|---|---|---|---|
|
#18+
В конечном счете сделан вариант, основанный на предложении paparome. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 17:31:11 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32633259&tid=1672745]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 373ms |

| 0 / 0 |
