So exportieren Sie mehrere Access-Klassenobjekte gleichzeitig in Text aus Microsoft Visual Basic for Applications

So exportieren Sie mehrere Access-Klassenobjekte gleichzeitig in Text aus Microsoft Visual Basic for Applications

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

verwandte Informationen