一位同事继承了一个Microsoft Access宏,该宏通过对一组操作查询调用openquery来对Sybase数据库执行一系列SQL操作,这些操作查询在ODBC上使用链接表。我想帮助他将其转换为一个SQL脚本,我们可以直接对数据库执行该脚本。因为我们有很多这样的宏,所以我想设计一个转换工具。
(除非已经存在,在这种情况下,请指示我。)
我希望能够使用COM互操作访问宏的详细信息。到目前为止,我还没有找到一种方法来了解这些细节。这是我到目前为止所拥有的。
Imports Access = Microsoft.Office.Interop.Access
Imports System.Runtime.InteropServices
Module Module1
Sub Main()
Dim app As New Access.Application()
app.OpenCurrentDatabase("c:\test.mdb")
Dim macro As Access.AccessObject = app.CurrentProject.AllMacros("Macro1")
'Do something with variable "macro"???'
app.Quit(Access.AcQuitOption.acQuitSaveNone)
Marshal.FinalReleaseComObject(app)
End Sub
End Module
我认为AccessObject的任何成员都没有提供我需要的信息。但我找不到任何其他提到宏的东西。有人做过这样的事吗?这里有什么可以使用的docmd或syscmd操作吗?
(顺便说一下,我知道一旦我得到了SQL,我就有了将其转换为SybaseSQL的任务。我一到那座桥就过去。)