Я непритязательный программист Access и не могу сказать, что понимаю ваш вопрос.
Насколько я могу судить, чтобы получить то, что вы хотите, вам придется автоматизировать доступ через COM - другого пути нет. Процедуры для этого не зависят от версии и будут работать во всех версиях Access, по крайней мере, с 97, при условии, что версия Access, которую вы автоматизируете, совместима с просматриваемыми файлами (т. Е. A2000 будет быть неспособным исследовать ACCDB и может (или не может) давать ненадежные результаты для MDB A2002, A2003 и A2007).
Ключ использует Application.SaveAsText для сохранения всех объектов, несущих код. Это будет означать, что вы захотите пройтись по всем модулям, формам и отчетам, а те, у которых есть программные модули, выводятся с помощью SaveAsText. Для форм и отчетов вы можете проверить свойство HasModule (хотя это доступно только в режиме конструктора или представления формы, т. Е. Форма должна быть открыта), если вы хотите пропустить все объекты, в которых отсутствуют модули.
Если вам не нужна совместимость с A97, это намного проще. Вы можете использовать CurrentProject.AllForms, CurrentProject.AllReports и CurrentProject.AllModules. Если вы не заинтересованы в разграничении форм / отчетов с модулями кода и без них на этом этапе, вам не нужно открывать их, чтобы проверить свойство HasModule. Вместо этого вы можете просмотреть полученный экспортированный текстовый файл. Если модуля нет, тег CodeBehindForm будет отсутствовать в выходном файле.
Тем не менее, формы очень часто имеют модуль, но не имеют реального кода. Эти модули будут перечислены в выводе SaveAsText следующим образом:
CodeBehindForm
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Compare Database
Option Explicit
Option Explicit может присутствовать или отсутствовать, а база данных Option Compare технически не требуется, но 99% модулей, созданных в Access, будут иметь один или оба (только базы данных, созданные в Access 2000 с настройками по умолчанию, будут иметь Option Explicit ). Код начнется после 4 атрибутов. Если это просто два оператора OPTION, то за формой нет реального кода.
Вы должны иметь возможность выполнять COM-автоматизацию Access из vbScript на любом ПК с установленной версией Access, совместимой со всеми MDB / ACCDB, которые вы хотите исследовать.