Ole

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Diz
Сообщения: 5
Зарегистрирован: 24 апр 2009, 13:09

Необходимо реализовать связь 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
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Строка подсвечивается на этапе выполнения?
Ну а сообщение об ошибке-то какое?
Diz
Сообщения: 5
Зарегистрирован: 24 апр 2009, 13:09

Сообщение об ошибке следующее: 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 (находится в фокусе), то может быть там на данный момент ничего не выбрано?

.... одни предположения, вобщем...
Diz
Сообщения: 5
Зарегистрирован: 24 апр 2009, 13:09

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