Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Übergabeparameter an unterformular

Begonnen von Antelito, April 20, 2017, 16:08:42

⏪ vorheriges - nächstes ⏩

Antelito

Hallo,

nach nun mehreren tagen rumprobieren und googeln wende ich mich heute an euch mit meinem Problem. Vielleicht kennt ja jemand die Lösung...

in einer Collection befinden sich Objekte. ich habe in MS Access ein Formular, das über die Collection.Cound Methode die Anzahl ausgibt. Jetzt möchte ich durch Klick auf ein Button ein bestimmtes Attribut jedes dieser Objekte in einem Unterformular in Textfeldern anzeigen lassen. Ich habe auch schon einen Tipp bekommen (OpenArgs), jedoch bekomme ich es auf Biegen und Brechen nicht hin. Da man bei OpenArgs nur einen String übergeben kann, schreibe ich die Attribute vorher - durch ein ; getrennt - in eine Stringvariable und übergebe diese der Funktion DoCmd.OpenForm. Es öffnet sich zwar das Formular und es ist auch 1(!) Textfeld zu sehen, allerdings steht in diesem nur der Wert #Name? . Außerdem befinden sich in der Collection 16 Objekte, so dass ich eigentlich 16 Textfelder erwartet hätte mit dem gewünschten Inhalt.

kann mir jemand weiterhelfen? hier ein paar benutzte Code-Schnipsel:

'Öffnen des Formulars

DoCmd.OpenForm strFormularname, acNormal, , , , acWindowNormal, strOpArg


strOpArg könnte z.B. so aussehen: Äpfel;Birnen;Bananen;Kirschen;

Vielen Dank im vorraus

MzKlMu

Hallo,
die Übergabe in den OpenArgs macht zunächst mal gar nichts.

Du musst im aufgerufenen Formular OpenArgs auswerten und den String in seine Teile zerlegen und den Feldern zuweisen.

Ich finde das Vorhaben aber reichlich umständlich, erkläre mal genauer, was Du da eigentlich vorhast und zu was die Collection ?

Warum verwendest Du nicht einfach gebundene Formulare ?

Wobei ich aber zugeben muss, dass mit Deiner Schilderung grundsätzliche Verständnisprobleme habe, daher die Bitte das mal ausführlicher zu erklären.
Gruß Klaus

Wurliwurm

Ich meine, daß Du Dir das Leben hier unnötig schwer machst, wenn Du Arrays in String verpackst und anschließend wieder zerlegst.

Ich würde hier so eine Art "Dependency Injection" machen, um die Restriktion zu umschiffen. Das Formular wird zuerst normal geöffnet per docmd.openform und dann eine selbstgeschriebene Methode im Formular von der Aufruftstelle aufgerufen. In der selbsterstellten Methode (~Sub) kannst Du beliebige Daten, auch Objekte, als Parameter übergeben.

Antelito

Hi,

mit dem auswerten des openargs hats geklappt. Danke!