для тех кто спрашивал. может пригодиться.
Итак, попытаюсь объяснить.
1. Для передачи данных (а точнее команды) из Акцесса в Арквью
1.1. Арквью
выполнить скрипт имеющий строчку
DDEServer.StartNamed("ArcMyName")
лучше всего (или может даже обязательно - см. справку)
это сделать в скрипте автозапуска (см. свойства проекта)
после этого Арквью станет доступным как DDEServer с именем "ArcMyName"
1.2. в Акцессе делаем програмку вроде такой
sub DoItInArcView
'инициализируем какнал DDE
chan = DDEInitiate("ArcGeochim", "system")
If err Then
' При возникновении ошибки сообщаем об этом
MsgBox "Не удалось установить связь с ArcView!", vbOKOnly, "Ошибка!"
'и выходим из програмки
Exit Sub
End If
'связь установить удалось, посылаем команду
DDEPoke chan, "string DoAccessCommand", Module1.WorkDir
'что касается второго аргумента, то слово "string" в нем обяъательно
'(см. Арквьюшный хэлп) а слово "DoAccessCommand" означает имя скрипта
'который будет выполнен в Арквью (см. ниже)
'ну а третий параметр - это некие данные, которые можено передать с
'этой командой
'теперь закрываем каналы DDE, ибо они ресурсоемки...
DDETerminateAll
end sub
1.3. В Арквью, естественно должен существовать вышеупомянутый скрипт
он может выглядеть примерно так
'==================================================
'получили команду от Акцесса, надо обработать
aString = self
'как вы поняли, параметр, который мы передали из Акцесса
'получаем как self...
'насколько я помню, параметр этот может быть только строковым
'но, кажется может быть очень длинным, хотя лучше глянуть хэлп
'делаем что-нибудь с полученной строкой
msgbox.Info(aString,"Полученно из Акцесса")
return ("ok")
'вот это последнее, насколько я помню надо чтобы Акцесс (или
'другая программа, связывавшаяся с Арквью) понял, что команда
'принята успешно
'==================================================
2. Из Арквью в Акцесс
2.1. в Арквью имеем скрипт
'==================================================
'создаем ДДЕ клиент
aDDE = DDEClient.Make("MSAccess", "System")
'причем как заставить Акцесс иметь другое имя сервера
'я не разобрался :(
'передадим Акцессу команду
aDDE.Execute("[OpenForm myForm]")
DDETerminate intChan1
'
aDDE.Close
'==================================================
2.2. в Акцессе нужно только иметь форму myForm ну чтобы
он (Акцесс) был запущен
===================================================================
все.... все?... вроде да... :)