У меня есть много файлов доступа, в которых есть процедуры событий Code Behind, определенные с помощью VBA. Я хочу выполнить поиск в этом коде большого количества строк.
Это можно сделать, выбрав объект класса Access в Microsoft Visual Basic для приложений, щелкнув правой кнопкой мыши и выбрав «Экспорт файла...», а затем запустив findstr
, но я могу экспортировать только один объект класса за раз (это занимает очень много времени).
Есть ли способ экспортировать несколько объектов класса доступа одновременно или написать для этого скрипт?
решение1
Итак, я создал приложение, которое экспортирует все определения форм для файла доступа. Это включает в себя код позади, поэтому с помощью следующего кода и скрипта для извлечения только раздела CodeBehind вы можете получить работоспособное решение.
using Microsoft.Office.Interop.Access;
using System;
namespace AccessExporter
{
class Program
{
static void Main(string[] args)
{
ApplicationClass app = new ApplicationClass();
String fileName = @"C:\AccessFile.accdb";
app.Visible = false;
app.OpenCurrentDatabase(fileName);
foreach (AccessObject obj in app.CurrentProject.AllForms)
{
Console.WriteLine(obj.Name);
app.SaveAsText(AcObjectType.acForm, obj.Name, String.Format(@"C:\{0}.txt", obj.Name));
}
app.CloseCurrentDatabase();
}
}
}