Ms access 是否有方法从表中的对象字段提取AutoCAD图形和图片?

Ms access 是否有方法从表中的对象字段提取AutoCAD图形和图片?,ms-access,autocad,Ms Access,Autocad,我是一家公司的机械工程师,这里的老年人在Access 2003中创建了一个数据库,它基本上采用了AutoCAD绘图或图片OLE,并将其与一系列其他信息放在一个框架精美的报告中。我对数据库做了一些修改,其中之一就是将所有对象作为链接存储到共享网络中的实际文件中。过去一周左右添加到数据库中的每一个新文件都已链接,这些人似乎已经掌握了窍门 此时我的问题是尝试检索表中嵌入的所有对象。我试过了,但这似乎不适用于AutoCAD图形(即.dwg和.dxf文件),也不适用于“图片” 我知道这是一个相当有争议的话

我是一家公司的机械工程师,这里的老年人在Access 2003中创建了一个数据库,它基本上采用了AutoCAD绘图或图片OLE,并将其与一系列其他信息放在一个框架精美的报告中。我对数据库做了一些修改,其中之一就是将所有对象作为链接存储到共享网络中的实际文件中。过去一周左右添加到数据库中的每一个新文件都已链接,这些人似乎已经掌握了窍门

此时我的问题是尝试检索表中嵌入的所有对象。我试过了,但这似乎不适用于AutoCAD图形(即.dwg和.dxf文件),也不适用于“图片”

我知道这是一个相当有争议的话题,因为我没有提供任何代码来开始,但我认为这对我来说太复杂了,以至于我无法开始做,而且我已经不知所措了。手工提取对象是不可行的,因为有8000多个对象分布在多个数据库中。有没有办法通过代码自动提取

提前感谢,

Rafael。

如果访问绑定对象框控件的属性,对于AutoCAD图形,这将返回。然后可以调用Document对象的方法将文件保存到已知位置

例如,类似于:

With Me.MyBoundObjectFrame.Object
    .SaveAs "Drive:\YourPath\YourDrawing.dwg"
End With
其中
MyBoundObjectFrame
是绑定对象帧控件的名称


这在我有限的测试中成功地起作用。

我没有AutoCAD绘图OLE对象的经验,但您能检查它支持哪些谓词吗?大多数对象都支持动词将其保存到磁盘。关于如何自动化OLE对象操作,特别是创建新的OLE对象,我有一个答案,但这应该给您一个起点。要确定OLE对象支持哪些谓词,您可以使用acOLEFetchVerbs属性(请参阅了解更多详细信息)。此外,您可能没有共享任何代码,但您已经投入了研究工作,这是值得赞赏的,而且定义很窄(但很难)主题。我希望在AutoCAD绘图对象方面有经验的人能够提供帮助,添加了一个标记,以查看该领域的一些专家是否能够提供深刻的见解。感谢Erik的回复。我尝试通过带有boundOLE的表单上的cmdbutton获取动词,结果返回为两个空白字符串,但不确定是我做错了什么,还是有问题特定于AutoCAD…我还查看了您发送的链接,尽管这提供了如何与对象交互的基础,但我无法终生了解如何检索信息,更不用说将其保存在Access之外…请参阅有关迭代谓词的更多参考代码。谓词取决于ole对象的类型。尚未获得AutoCAD,但它们通常不是空字符串。该页面末尾的代码片段正是我使用的,它肯定返回空的…哇,这太简单了,好主意!我会尽快尝试一下,并返回结果!它对AutoCAD文件非常有效,非常感谢!让我劫持它并询问您是否知道如何使用它检索“图片”OLE?我很高兴它对您有用。不幸的是,我对这一领域的知识没有扩展到图像,因此您可能需要将其作为一个单独的问题提出,并相应地为该领域的专家标记。