Код VBA можно использовать, чтобы получить (по крайней мере, некоторые из) то, что вам нужно. Например, вы можете перебирать все макрокоманд в текущей базе данных с
Dim m As Object
For Each m In CurrentProject.AllMacros
Dim macroName As String
macroName = m.Name
Debug.Print macroName
Next
Теперь вместо того, чтобы просто напечатать имя макроса, вы можете сбросить его в текстовый файл с
Application.SaveAsText acMacro, macroName, "C:\Users\Gord\Desktop\macroDump.txt"
, который будет создать файл, который выглядит как этот
Version =196611
PublishOption =1
ColumnsShown =0
Begin
Action ="OpenQuery"
Argument ="MyUpdateQuery"
Argument ="0"
Argument ="1"
End
Begin
Comment ="_AXL:<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\015\012<UserI"
"nterfaceMacro MinimumClientDesignVersion=\"14.0.0000.0000\" xmlns=\"http://schem"
"as.microsoft.com/office/accessservices/2009/11/application\" xmlns:a=\"http://sc"
"hemas.microsoft.com/office/acc"
End
Begin
Comment ="_AXL:essservices/2009/11/forms\"><Statements><Action Name=\"OpenQuery\"><Argumen"
"t Name=\"QueryName\">MyUpdateQuery</Argument></Action></Statements></UserInterfa"
"ceMacro>"
End
затем можно разобрать этот файл, ищет Begin/End блоков, которые содержат Action ="OpenQuery"
и извлекая имя запроса. При том, что вы могли бы открыть объект QueryDef и восстановить его SQL
Dim cdb As DAO.Database
Set cdb = CurrentDb
Dim qdf As DAO.QueryDef
Set qdf = cdb.QueryDefs(queryName) ' MyUpdateQuery
Dim querySql As String
querySql = qdf.SQL
Сделайте это один раз с помощью макросъемщика, и у вас будет базовый код для того, что вы хотите. – litelite
@ AlbertD.Kallal, чтобы уточнить, я предлагаю, чтобы иметь возможность получить SQL-скрипт макроса/запроса, а не использовать SQL для сценариев ... (также, пожалуйста, будьте более конструктивными в своих комментариях) – Sauron
@ AlbertD.Kallal Я никогда не думал, что мне придется это написать, но, пожалуйста, прекратите использовать «клоун родео» на сайте. Никогда не бывает времени, когда можно сравнить кого-то другого с клоуном-родео, будь то пьяные или безработные. – meagar