如何一次从 Microsoft Visual Basic for Applications 导出多个 Access Class 对象到文本

如何一次从 Microsoft Visual Basic for Applications 导出多个 Access Class 对象到文本

我有很多使用 VBA 定义的隐藏代码事件过程的访问文件。我想在此代码中搜索大量字符串。

我可以通过在 Microsoft Visual Basic for Applications 中选择 Access Class 对象,右键单击并选择“导出文件......”然后运行来实现此目的findstr,但我一次只能导出一个类对象(这需要很长时间)。

有没有办法可以一次导出多个访问类对象,或者编写脚本?

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

相关内容