ник: Прохожий
Пробовал все и CreateObject и GetObject и New с одним и тем же конечным результатом.
Простой пример из области технологии автоматизации.
запускается db3.mdb в которой по макросу AutoExec вызывается функция:
Public Function MyCopyTable()
On Error GoTo Err_MyCopyTable
Dim appAccess As Access.Application
' Dim appAccess As New Access.Application
MsgBox 1
' Set appAccess = CreateObject("Access.Application")
' appAccess.OpenCurrentDatabase "D:\Мои документы\db2.mdb", False
Set appAccess = GetObject("D:\Мои документы\db2.mdb", "Access.Application")
appAccess.DoCmd.CopyObject "D:\Мои документы\db1.mdb", , acTable, "tblWares"
Set appAccess = Nothing
MsgBox 2
Exit_MyCopyTable:
Exit Function
Err_MyCopyTable:
MsgBox Err & ": " & Error$
Resume Exit_MyCopyTable
End Function
В программе:
Формируется ссылка (по GetObject в данном случае) на приложение db2.mdb
В приложении db2.mdb запускается команда копирования таблицы в базу db1.mdb
Простейший пример.
Под полновесным Access все отрабатывает без проблем.
А вот под Runtime выдает сообщение:
429: ActiveX conponent can't create object
Причем вне зависимости от того как формируется ссылка на приложение выполняющее роль сервера автоматизации:
по CreateObject или GetObject или New
А проблема в том, что возникла потребность исполнения приложения,
используещего такого рода ссылки под рантаймом.
Само приложение я естествено не привожу, в нем своих сложностей хватает.
Но вот пример, без лишней шелухи, казалось бы проще простого.
И работать вроде бы должен, и в рантайме есть все нужные библиотеки в которых
присутствуют все нужные функции и объекты.
ВОТ ТАКАЯ НЕПОНЯТКА...
P.S. При запуске примера под Access в режиме /runtime все работает.
Не работает под "натуральным" рантаймом, хотя вроде бы и должен.