大家好:
新手在这里有一个问题。我终于能够找到足够的信息来弄清楚如何从Access w VBA和ObjectDBX中读取和更改dwg文件中的摘要信息,但是当我清理时,要么我无法启动它,要么acad.exe进程仍然存在。
有人能告诉我如何在不需要用户干预的情况下完成它吗?
如果我这样做,
- Dim objAcad As Object
- Dim dbxDoc As AxDbDocument
- Dim oSumInfo As AcadSummaryInfo
- Dim strDwgName As String
-
- strDwgName = "D:\Working\Doc_nums_and_logs\NewVersionOffice\Drawing1.dwg"
-
- Set objAcad = GetObject(, "AutoCAD.Application.16")
- Set dbxDoc = objAcad.GetInterfaceObject("ObjectDBX.AxDbDocument.16")
-
- dbxDoc.Open (strDwgName)
- Set oSumInfo = dbxDoc.SummaryInfo
-
- MsgBox "this is it before " & oSumInfo.Comments
-
- dbxDoc.SummaryInfo.Comments = "changed here by me again"
- dbxDoc.SaveAs (strDwgName)
- objAcad.Quit
-
- MsgBox "this is it after " & oSumInfo.Comments
- objAcad.Quit
- Set oSumInfo = Nothing
- Set dbxDoc = Nothing
- Set objAcad = Nothing
那么如果没有Autocad已经启动,它就无法工作。
如果我这样做,没有“对象”:
- Dim dbxDoc As AxDbDocument
- Dim oSumInfo As AcadSummaryInfo
- Dim strDwgName As String
-
- strDwgName = "D:\Working\Doc_nums_and_logs\NewVersionOffice\Drawing1.dwg"
-
- Set dbxDoc = GetInterfaceObject("ObjectDBX.AxDbDocument.16")
-
- dbxDoc.Open (strDwgName)
- Set oSumInfo = dbxDoc.SummaryInfo
-
- MsgBox "this is it before " & oSumInfo.Comments
-
- dbxDoc.SummaryInfo.Comments = "changed here by me again"
- dbxDoc.SaveAs (strDwgName)
-
- MsgBox "this is it after " & oSumInfo.Comments
- Set oSumInfo = Nothing
- Set dbxDoc = Nothing
那么它将在没有Autocad已经启动的情况下正常启动,但它不会正确关闭并保持acad.exe进程处于活动状态。(据我所知)但是如果我没有要关闭的对象,我该怎么办?
感谢您提供任何线索,但真正明目张胆的线索更值得赞赏
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |