У меня есть много файлов доступа, у которых есть процедуры событий Code Behind, определенные с использованием VBA. Я хочу найти в этом коде большое количество строк.

Я могу сделать это, выбрав объект класса доступа в Microsoft Visual Basic для приложений, щелкнув правой кнопкой мыши и выбрав «Экспорт файла ...», затем запустив findstr , но я могу экспортировать только один объект класса за раз (это занимает очень много времени ).

Есть ли способ экспортировать несколько объектов класса доступа одновременно или создать сценарий?

1 ответ1

0

Итак, я сделал приложение, которое экспортирует все определения форм для файла доступа. Это включает в себя код позади, поэтому с помощью следующего кода и сценария, который извлекает только раздел 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();
        }
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .