Laden...

Access Form in C# ansprechen

Erstellt von socomjoy vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.404 Views
S
socomjoy Themenstarter:in
1 Beiträge seit 2015
vor 9 Jahren
Access Form in C# ansprechen

Hallo,

ich hab im Internet schon einiges gefunden, aber nichts Konkretes, was mir geholfen hat.

Ich habe ein veraltetes Programm, dass leider komplett in Access erstellt worden ist. Die eigentlichen Macher haben bestimmte Schnittstellen implementiert, sodass ich mittels eines in dem Access Programm aufgerufenen Zusatzmoduls mittels C# programmieren kann, was auch sehr schön ist.

Die alten Forms selbst sind natürlich alle in Access - per VBA/VBScript kann ich natürlich super auf diese zugreifen, um z.B. eine Textbox mit einem bestimmten Wert zu versehen: Forms("NameDerForm").NameDerTextbox.Text = "Test"

In C# kann ich an diese Form gelangen, allerdings muss ich diese dafür in einen dynamic "parken" - dann bekomme ich mit Hilfe von ToString() den dahinterliegenden Datentyp: In diesem Fall natürlich leider nur das com-Objekt. Alle anderen Methoden lassen sich nicht ohne Ausnahmefehler aufrufen.

Die Macher stellen in C# die Access-Instanz bereit, sodass ich zumindest durch alle geöffneten Access Forms itterieren kann:

foreach (dynamic oForm in ((dynamic)goApplication.oApplication).Forms)
System.Windows.Forms.MessageBox.Show(oForm.ToString());

Hat noch irgendjemand eine Ahnung, wie in in C# wirklich an die Access Form - "oForm" in meinem Beispiel - komme, sodass ich zumindest mitgels dynamic-Gebrauch public Access Methoden aufrufen kann oder gar die Steuerelemente?

Grüße!