Ich habe viele Access-Dateien, die Code Behind-Ereignisprozeduren enthalten, die mit VBA definiert wurden. Ich möchte diesen Code nach einer großen Anzahl von Zeichenfolgen durchsuchen.
Ich kann dies erreichen, indem ich das Access-Klassenobjekt in Microsoft Visual Basic für Applikationen auswähle, mit der rechten Maustaste klicke und „Datei exportieren…“ auswähle und dann ausführe findstr
, aber ich kann immer nur ein Klassenobjekt auf einmal exportieren (das dauert sehr lange).
Gibt es eine Möglichkeit, mehrere Access-Klassenobjekte gleichzeitig zu exportieren oder dies per Skript zu tun?
Antwort1
Also habe ich eine Anwendung erstellt, die alle Formulardefinitionen für eine Access-Datei exportiert. Dies beinhaltet den Code dahinter, sodass Sie mit dem folgenden Code und einem Skript, das nur den CodeBehind-Abschnitt abruft, eine funktionsfähige Lösung erhalten.
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();
}
}
}