Tachen,
Ich möchte mit C# eine Accessdatenbank öffnen. Das starten einer Anwendung ist grundsätzlich ja kein Problem außer Access mit Datenbankkennwort und Benutzersteuerung (Benutzer und Kennwort in *.mdw). Das ganze funktioniert mit Process.Start() unter WinXP. Ist zwar keine saubere Lösung da das Datenbankkennwort bei meiner Lösung mit sendKey übertragen wird. Unter Win7 würde das zwar auch funktioniern aber wegen dazwischengeschalteten (UAC) Dialog geht der Fokus vom Access verloren und das Datenbankkennwort landet irgendwo (zur Not verzichte ich auf Absicherung mit Datenbankkennwort) und als dankeschön wird der komplette String im Klartext ausgegeben (inkl. Benutzername und Kennwort). Ich hab's auch mit Automatisierung versucht mittels der dll Microsoft.Office.Interops das funktioniert leider auch nicht. Gibt es da eine Möglichkeit die System mdw mit einzubinden. Vielleicht weiß von euch jemand wie ich das lösen kann.
Wozu? Kann mir nicht vorstellen, dass das wichtig ist. Mach halt notfalls den Explorer auf und selektier die Datei vor, dann soll der Benutzer sie selber aufmachen und sein Passwort eintippen.
Ich persönlich machs ganz klassisch.
// Initialize Api COMObject Support
LateBindingApi.Core.Factory.Initialize();
// start access
Access.Application accessApplication = new Access.Application();
accessApplication.OpenCurrentDatabase("c:\\db1.mdb", false, "MeinPasswort");
accessApplication.Visible = true;
Die Lösung von Sebastian.Lange habe ich schon probiert funktioniert aber nur begrenzt. Mit dieser Variante habe ich keine Möglichkeit für die Benutzersteuerung (Übergabe einer benutzerdefinierten mdw Datei).
@Coder007 Dein Tip ist wirklich der beste 👍