Сотрудник унаследовал макрос Microsoft Access, который выполняет серию операций SQL с базой данных Sybase, вызывая OpenQuery на кучу запросов о действиях, которые используют связанные таблицы через ODBC. Я хотел бы помочь ему преобразовать его в SQL-скрипт, который мы можем выполнить непосредственно против базы данных. И поскольку у нас есть немало таких макросов, я бы хотел придумать инструмент преобразования.Обратный инженер Доступ к макросу из .NET
(если один уже не существует, и в этом случае, пожалуйста, направить меня к нему.)
я ожидал, чтобы иметь возможность получить доступ к детали макроса с помощью 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 я буду иметь задачу преобразования его в Sybase SQL. Я пересечь этот мост, когда я прихожу к нему.)
... а затем получить SQL из сохраненных QueryDefs. –