Страница 1 из 1
Ole
Добавлено: 17 май 2009, 11:27
Diz
Необходимо реализовать связь 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
Re: Ole
Добавлено: 23 май 2009, 16:00
Naeel Maqsudov
Строка подсвечивается на этапе выполнения?
Ну а сообщение об ошибке-то какое?
Re: Ole
Добавлено: 23 май 2009, 16:14
Diz
Сообщение об ошибке следующее: ActivX component can't create object
Re: Ole
Добавлено: 23 май 2009, 20:22
Naeel Maqsudov
1) А до этого у Вас был опыт использования MapInfo из VB/VBA?
Продукт коммерческий. Теоретически он может позволять вызывать свои методы через COM только при наличии девелоперской лицензии.
2) Я, к сожалению, не знаком с MapInfo и его COM-объектами, но рискну предположить, что Вы пытаетесь методу Eval "подсунуть" имя поля Access-таблицы. Уверен, что это некорректно.
Надо его вычислить (выбрать) тут в макросе предварительно, а потом готовое значение "скормить" какому-нибудь методу.
3) Риску еще предположить, сто если Selection.ID - это то что выбрано в самом MapInfo (находится в фокусе), то может быть там на данный момент ничего не выбрано?
.... одни предположения, вобщем...
Re: Ole
Добавлено: 24 май 2009, 11:50
Diz
Спасибо, буду разбираться, в чем причина

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