Необходимо реализовать связь MapInfo и бд в Access. На карте выделен объект и в базе данных, при нажатии на кнопку должен осуществляться поиск выбранного объекта. Пишу следующий код, но подсвечивается строка MyVar = FServer.Eval(FServer, "Selection.ID"), в чем ошибка, не могу понять
Private Sub Кнопка165_Click()
Dim FServer As Object
Dim MyVar As String
Set FServer = GetObject(, "MapInfo.Application")
FServer.Visible = True
MyVar = FServer.Eval("Selection.ID")
pp = "Id_OOPT=" & """" & MyVar & """"
DoCmd.OpenForm "frmOOPT", , , pp
Set FServer = Nothing
End Sub
Ole
Модератор: Naeel Maqsudov
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Строка подсвечивается на этапе выполнения?
Ну а сообщение об ошибке-то какое?
Ну а сообщение об ошибке-то какое?
Сообщение об ошибке следующее: ActivX component can't create object
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
1) А до этого у Вас был опыт использования MapInfo из VB/VBA?
Продукт коммерческий. Теоретически он может позволять вызывать свои методы через COM только при наличии девелоперской лицензии.
2) Я, к сожалению, не знаком с MapInfo и его COM-объектами, но рискну предположить, что Вы пытаетесь методу Eval "подсунуть" имя поля Access-таблицы. Уверен, что это некорректно.
Надо его вычислить (выбрать) тут в макросе предварительно, а потом готовое значение "скормить" какому-нибудь методу.
3) Риску еще предположить, сто если Selection.ID - это то что выбрано в самом MapInfo (находится в фокусе), то может быть там на данный момент ничего не выбрано?
.... одни предположения, вобщем...
Продукт коммерческий. Теоретически он может позволять вызывать свои методы через COM только при наличии девелоперской лицензии.
2) Я, к сожалению, не знаком с MapInfo и его COM-объектами, но рискну предположить, что Вы пытаетесь методу Eval "подсунуть" имя поля Access-таблицы. Уверен, что это некорректно.
Надо его вычислить (выбрать) тут в макросе предварительно, а потом готовое значение "скормить" какому-нибудь методу.
3) Риску еще предположить, сто если Selection.ID - это то что выбрано в самом MapInfo (находится в фокусе), то может быть там на данный момент ничего не выбрано?
.... одни предположения, вобщем...
Спасибо, буду разбираться, в чем причина 
Я вообще первый раз работаю с MapInfo, поэтому столько сложностей возникает. Методу Eval я прописываю поле таблица MapInfo, и по значению данного поля должно найтись соответствие в бд Access. На другом компьютере этот же код работает

Я вообще первый раз работаю с MapInfo, поэтому столько сложностей возникает. Методу Eval я прописываю поле таблица MapInfo, и по значению данного поля должно найтись соответствие в бд Access. На другом компьютере этот же код работает
