Есть ли способ извлечь рисунки и рисунки AutoCAD из поля OLEObject в таблице? - PullRequest
2 голосов
/ 21 июня 2019

Просто для справки, я инженер-механик в компании, и старшие ребята здесь создали базу данных в Access 2003, которая в основном берет AutoCAD Drawing или Picture OLE и объединяет их в красиво оформленном отчете с кучейДополнительная информация.Я вносил некоторые изменения в эту базу данных, одна из которых заключается в том, чтобы хранить все объекты OLEObject в виде ссылок на реальные файлы в нашей общей сети.Каждый новый файл, который был добавлен в базу данных на прошлой неделе или около того, был связан, и ребята, похоже, поняли его.

Моя проблема на данный момент состоит в том, чтобы попытаться получить всеОбъекты, которые встроены в таблицы.Я пробовал Lebans OLE to Disk , но, похоже, это не работает с чертежами AutoCAD (которые являются файлами .dwg и .dxf) и не работает с "Picture".

Я знаю, что это довольно спорная тема, потому что я не предоставляю никакого кода для начала, но я думаю, что это слишком сложно для меня, чтобы даже начать делать, и я нахожусь над головой.Извлечение OLEObjects вручную неосуществимо, поскольку существует более 8000 таких объектов, распределенных по нескольким базам данных.Есть ли способ автоматизировать извлечение с помощью кода?

Заранее спасибо,

Рафаэль.

1 Ответ

1 голос
/ 21 июня 2019

Если вы обращаетесь к свойству Object элемента управления Bound Object Frame, для чертежа AutoCAD это должно вернуть Объект документа AutoCAD . Затем вы можете вызвать метод SaveAs объекта Document, чтобы сохранить файл в известном месте.

Например, что-то вроде:

With Me.MyBoundObjectFrame.Object
    .SaveAs "Drive:\YourPath\YourDrawing.dwg"
End With

Где MyBoundObjectFrame - имя вашего элемента управления Bound Object Frame.

Это успешно работает в моем ограниченном тестировании.

...