Microsoft Visual Basic for Applications から複数の Access クラス オブジェクトを一度にテキストにエクスポートする方法

Microsoft Visual Basic for Applications から複数の Access クラス オブジェクトを一度にテキストにエクスポートする方法

VBA を使用して定義されたコード ビハインド イベント プロシージャを持つアクセス ファイルが多数あります。このコードで多数の文字列を検索したいと考えています。

Microsoft Visual Basic for Applications で Access クラス オブジェクトを選択し、右クリックして [ファイルのエクスポート...] を選択して を実行することでこれを実現できますfindstrが、一度にエクスポートできるクラス オブジェクトは 1 つだけです (非常に長い時間がかかります)。

複数のアクセス クラス オブジェクトを一度にエクスポートしたり、スクリプト化したりする方法はありますか?

答え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();
        }
    }
}

関連情報