Вернуться   Форум программистов > Форум Программирование > Форум VBA

VBA

Программирование на VBA

Ответ
 
Старый 29.07.2001, 23:10   #1
Albatross
Новичок
 
Регистрация: 29.07.2001
Сообщений: 8
Albatross пока не определено
По умолчанию Можно ли в VBA синхронно вызвать другую программу?

можно ли в VBA синхронно вызвать другую программу?
а то Call Shell(stAppName, 0) идет дальше, даже если прога не закончила работу
Albatross вне форума  
Старый 30.07.2001, 11:47   #2
Tim
Местный
 
Регистрация: 19.07.2001
Сообщений: 160
Tim пока не определено
По умолчанию RE: как в VBA

По-моему VBA не поддерживает многопоточности...
Tim вне форума  
Старый 30.07.2001, 15:13   #3
debutant
Местный
 
Регистрация: 09.06.2001
Сообщений: 537
debutant пока не определено
По умолчанию RE: как в VBA

2Albatross: Конкретизируй задачу, пожалуйста.
debutant вне форума  
Старый 30.07.2001, 17:28   #4
Albatross
Новичок
 
Регистрация: 29.07.2001
Сообщений: 8
Albatross пока не определено
По умолчанию RE: как в VBA

просто моя программа на MS ACCESS использует программу ,написанную на MSVC 6.0, которая обращается к той же базе данных и изменяет её, далее они просто выводятся в форме на MS ACCESS,
Это позволяет использовать всю пощь бибилиотек Visual Studio, но, очевидно , форма не должна выводится, пока вызываемая программа не закончит свою работу. Вот вопрос , как задержать выполнение на это время. Сейчас это работает так: VBA ждёт, когда в определёной таблице изменится значение одной записи, но это же очень криво...можно конечно, аналогично проверять записи в реестре , но всё равно никуда не годится
Albatross вне форума  
Старый 31.07.2001, 23:49   #5
VbGuest
Пользователь
 
Регистрация: 20.11.2000
Сообщений: 48
VbGuest пока не определено
По умолчанию RE: как в VBA

Используй функции API:

Const PROCESS_ALL_ACCESS& = &H1F0FFF
Const STILL_ACTIVE& = &H103&
Const INFINITE& = &HFFFF

Private Declare Function OpenProcess Lib 'kernel32' (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib 'kernel32' (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function CloseHandle Lib 'kernel32' (ByVal hObject As Long) As Long

Public Function IsRuning(ByVal lProgID As Long) As Long
Dim lExitCode As Long
Dim hdlProg As Long

hdlProg = OpenProcess(PROCESS_ALL_ACCESS, False, lProgID)
GetExitCodeProcess hdlProg, lExitCode

Do While lExitCode = STILL_ACTIVE&
DoEvents
GetExitCodeProcess hdlProg, lExitCode
Loop
CloseHandle hdlProg
IsRuning = lExitCode
End Function

А в тексте программы:
...
iProg = Shell(MyFileName, vbNormalFocus)
Do While IsRuning(iProg): DoEvents: Loop
...
VbGuest вне форума  
Старый 01.08.2001, 00:05   #6
debutant
Местный
 
Регистрация: 09.06.2001
Сообщений: 537
debutant пока не определено
По умолчанию RE: как в VBA

А нельзя ли заставить программу на MSVC 6.0 работать как COM EXE (в терминах VB)? Пусть бы она возвращала Recordset'ы программе на Access по требованию. В самом Access пишешь модуль класса, куда и инкапсулируешь логику. Форма заполняется кодом.
debutant вне форума  
Старый 01.08.2001, 16:09   #7
Ghost
Местный
 
Регистрация: 21.07.2000
Сообщений: 1,184
Ghost пока не определено
По умолчанию RE: как в VBA

А я просто накатал свой COM компонент - под VC++ все попроще будет

Не люблю API под Access ((
Ghost вне форума  
Старый 01.08.2001, 16:10   #8
Ghost
Местный
 
Регистрация: 21.07.2000
Сообщений: 1,184
Ghost пока не определено
По умолчанию RE: как в VBA

2 debutant - (IMHO) можно
Ghost вне форума  
Старый 01.08.2001, 17:45   #9
debutant
Местный
 
Регистрация: 09.06.2001
Сообщений: 537
debutant пока не определено
По умолчанию RE: как в VBA

2Ghost: я в курсе, что можно. Я хотел всего лишь спросить, а нельзя ли ЕГО программу заставить (с модификацией, естественно). Но судя по молчанию, ответ VbGuest'а его устроил. Ухожу.
debutant вне форума  
Ads
Ответ
Опции темы

Похожие темы
Тема Автор
Word/VBA - Параграфы, таблицы, картинки, итд...
Господа, у меня вопрос. Ответьте пожалуйста кто знает. Есть ли в Word'е какая нибудь коллекция которая объединяет в себе и таблицы и картинки и обычный текст? что бы можно было все это по порядку...
ov
Доступ к "приаттаченному" файлу в OUTLOOK??? VBA
воообще-то это где-то промелькнуло, но тогда я на это не обратил внимания. Может кто подскажет, как получить доступ к прицепленному файлу в Outlook98, не сохраняя его на диске?
Komrad
Как заблокировать ячейки в VBA в Spreadsheet?
Как заблокировать ячейки в VBA в Spreadsheet (в сетке EXCEL) чтобы при запуске в них ничего нельзя было вводить, но чтобы они и данные в них были видны? Помогите кто знает ПЛИЗ !!!
Kau
Автоматизация программы на VBA for EXCEL
Хотел написать на VBA for EXCEL маленькую програмку, а получилась большая. Теперь я не хочу чтобы она была зависима от msoffice. Хочу чтобы был екзешник. Возможно ли более менее автоматизированно...
realist
Как скопировать в Excel ч/з VBA целый лист или строку...
Как скопировать в Excel ч/з VBA целый лист или строку в новую книгу?
Alexander Kaiman
Как заблокировать ячейки в VBA в Spreadsheet?
Как заблокировать ячейки в VBA в Spreadsheet (в сетке EXCEL) чтобы при запуске в них ничего нельзя было вводить, но чтобы они и данные в них были видны? Помогите кто знает ПЛИЗ !!!
Kau



Текущее время: 11:56. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Рейтинг@Mail.ru