Связь ArcGIS с Excess и наоборот

0 голосов
спросил 15 Фев, 08 от Tiger (920 баллов) в категории Программные продукты Esri
Подскажите пожалуйста скрипты, которые позволяют вытаскивать из БД в формате Access запрос по точке при нажатии на нее в ArcGIS и наоборот - при изучении форм Access загружать изображение объекта в ГИС. Заранее спасибо. Smile

13 Ответы

0 голосов
ответил 24 Фев, 08 от Tiger (920 баллов)
AndreyL, спасибо. Связь по гиперлинку очень подходит. Я думаю, так решится проблема с ArcReaderом, поскольку настроенные в АркИнфо гиперлинки там работают...
0 голосов
ответил 29 Март, 08 от Tiger (920 баллов)
 
Тут проще. На гиперлинк цепляем примерно так:
 
Sub FindPoint(pLink, pLayer)
  Dim sPoint As String
  Dim pHyperlink As IHyperlink
  Set pHyperlink = pLink
  Dim pFLayer As IFeatureLayer
  Set pFLayer = pLayer
  sPoint = pHyperlink.Link
 
  Set acc = GetObject(MiDaBa)
  acc.DoCmd.OpenForm "Points", acNormal, "", "", , acNormal
  acc.DoCmd.GoToControl "point"
  acc.DoCmd.FindRecord sPoint, acEntire, False, , False, acCurrent, True
  AppActivate "Microsoft Access"
End Sub
 
Предполагается, что база находится по адресу MiDaBa, есть форма Points, в которой есть поле point.
 
И еще вопрос - можно ли как нибудь запихать скрипт в ArcReader9.2? (то есть использовать не ArcINFO, а ArcReader9.2, так как мне нужно предоставить окончательный вариант заказчику на диске, а у него нет ArcGIS (ArcReader я скачал как бесплатную версию и прилагаю к проекту).
  А вот это не ко мне, но если узнаете и если будет несложно, сообщите.
 
Подскажите пожалуйста, как оформляется адрес MiDaBa чтобы программа находила конкретную запись, а то что-то не получается...
0 голосов
ответил 07 Апр, 08 от AndreyL (5,420 баллов)
Подскажите пожалуйста, как оформляется адрес MiDaBa чтобы программа находила конкретную запись, а то что-то не получается...
MiDaBa - это строковая константа, где записан путь до базы данных. Вариантов тут много (предполагается, что база D:\MyDataBase.mdb):
1. Вместо
   Set acc = GetObject(MiDaBa)
   можно написать
   Set acc = GetObject("D:\MyDataBase.mdb")
2. сделать строковую переменную в процедуре
   Dim MiDaBa As String
   MiDaBa="D:\MyDataBase.mdb"

3. если предполагаются еще процедуры, использующие эту базу, то можно сделать публичную константу вне процедуры
   Public Const MiDaBa = "D:\MyDataBase.mdb"
   если эти процедуры находятся в пределах одного модуля, то можно и не публичную
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...