Domanda

Quello che sto provando è accedere alle proprietà di accesso MS senza aprire effettivamente il database.

Ecco un codice per ottenere una migliore comprensione:

var processStartInfo = new ProcessStartInfo(args[0]) 
    { 
        WindowStyle = ProcessWindowStyle.Hidden, 
        CreateNoWindow = true
    };

Process.Start(processStartInfo);

application = (Access.Application)Marshal.GetActiveObject("Access.Application");

dao.Property allowByPassKeyProperty = null;

foreach (dao.Property property in application.CurrentDb().Properties)
{
    if (property.Name == "AllowByPassKey")
    {
        allowByPassKeyProperty = property;
        break;
    }
}

Il mio problema è che in tal caso, apro il database per cercare le proprietà (applicazione.currentdb (). Proprietà) e le cose di avvio Access MS entrano in gioco.

Voglio evitare tutte le cose di avvio e iniettare il giusto valore per la proprietà.

È possibile passare attraverso le proprietà, forse con riflessione e vincolo tardivo in questo modo: http://www.codeproject.com/kb/database/mdbcompact_latebind.aspx?

O c'è qualche altra opzione per ottenere ciò che vorrei?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top