Tengo muchos archivos de acceso que tienen procedimientos de eventos de Code Behind definidos usando VBA. Quiero buscar en este código una gran cantidad de cadenas.
Puedo lograr esto seleccionando el objeto Clase de acceso en Microsoft Visual Basic para Aplicaciones, haciendo clic derecho y seleccionando "Exportar archivo..." y luego ejecutando findstr
, pero solo puedo exportar un objeto de clase a la vez (lleva mucho tiempo) .
¿Hay alguna forma de exportar varios objetos de clase de Access a la vez o crear un script?
Respuesta1
Entonces, creé una aplicación que exporta todas las definiciones de formulario para un archivo de acceso. Esto incluye el código subyacente, por lo que con el siguiente código y un script para extraer solo la sección CodeBehind, puede obtener una solución viable.
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();
}
}
}