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