MS Access: öffnen von Formular mittels Befehlsschaltfläche basierend auf den aktuellen Datensatz?
Sagen wir, ich habe zwei Tabellen, tblA
und tblB
, dass eine 1:n-Beziehung, d.h. für einen bestimmten Datensatz in tblA kann es viele Einträge in tblB.
Nun habe ich ein Formular, frmA
Basis tblA. Auf diesem Formular gibt es einen Befehl, Schaltfläche, öffnet sich ein zweites Formular, frmB
Basis tblB
. Jetzt möchte ich, dass die zweite form frmB
nur Anzeige von Datensätzen aus tblB
entsprechen den aktuellen Datensatz aus tblA
.
Ich fand, dass es eine built-in Möglichkeit (ich benutze Access 2010 -) - Filter, die die Daten aus tblB
. Aber da innerhalb frmB
ich tun müssen, einige mehr Sachen, die basierend auf den aktuellen Datensatz, ist dies nicht genug.
Wie mache ich das dann?
Dachte ich an eine Abfrage erstellen, qryAB
, das macht einen "inner join" und hat einen parameter wählen Sie einen bestimmten Datensatz aus tblA
. Aber wie würde ich den pass etwas auf diese Abfrage zu verwenden, die als parameter von der auf-Klick-makro (oder vba) für mein command button?
InformationsquelleAutor janitor048 | 2012-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Where-argument der OpenForm-Methode, die Sie hinzufügen können OpenArgs zu OpenForm-und Sie können sich auf ein bereits geöffnetes Formular im code. Es hängt alles davon ab, was Sie als Nächstes tun möchten.
Wenn formB ist immer geöffnet von formA, können Sie legen Sie die Datensatzherkunft des Kombinationsfeld um, sagen wir,
SELECT FROM Table WHERE AField=Forms!formA!SomeControl
. Allerdings müssen Sie möglicherweise nicht zum verweisen auf die form überhaupt, nachdem alle, das Formular zeigt nun nur die Datensätze wo die id übereinstimmt formA, damit Ihr rowsource verweisen können, formB ID. Schließlich übergeben Sie eine Referenz als OpenArg und erstellen Sie die combo von code. Als eine Allgemeine Regel, die ich versuche zu vermeiden, dass Formulare, die nicht funktionieren als stand-alone-und ich versuche, bauen Sie combos zu, die Arbeit wird basierend auf die verfügbaren Informationen auf dem aktuellen Formular.Mithilfe der OpenForm-Methode zusammen mit einer entsprechenden select-Anweisung scheint, den job zu erledigen. Und ich kann dann die combobox auf dem Formular B werden auf der Grundlage der verfügbaren Informationen auf dem Formular. Ich bin nicht so vertraut mit Access und manchmal ein wenig verloren, als auf die Art und Weise, Dinge zu tun, die am besten funktioniert... Danke für deine Hilfe!
InformationsquelleAutor Fionnuala
Haben Sie überlegt, frmb einem Unterformular frma und mit dem Eltern-Kind-Beziehung.
InformationsquelleAutor ChrisPadgham