Neuigkeiten:

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

Mobiles Hauptmenü

Kombinationsfelder in einem Formular mit m:n Beziehung

Begonnen von MagY, Dezember 29, 2011, 16:07:12

⏪ vorheriges - nächstes ⏩

MagY

Hallo Leute!

Als ich versucht habe mein Problem hier reinzuschreiben entstand ein langer Roman, sodass ich gleich meine komprimierte Datenbank angehängt habe und versuche nur das Wesentliche zu schreiben. Ich hoffe das ist ok.

Ich habe eine m:n Beziehung und in der Verbindungstabelle "tblDaten_Batterien" sind die beiden ID`s Primärschlüssel. Denn es soll immer nur eine Kombination Batterien-Kriterium existieren für welche ich dann in Daten_Batterien_Text (Memofeld) Informationen reinschreiben will.

In einem Formular (frmabfGesamt), welches auf einer Abfrage beruht, die das Feld Daten_Batterien_Text beinhaltet, sollen nun mittels Kombinationsfeldern ein bestimmtes Merkmal und eine bestimmte Batterie gewählt
und daraufhin die Informationen für diese Kombination Merkmal-Kriterium in dem Memofeld angezeigt werden.

Weiß jemand ob es möglich ist dies in einem Formular, also ohne Unterformular hinzubekommen? Und wenn ja, wie?
Die LookUp Funktion klappt wohl nicht bei m:n Beziehungen?!


Bin dankbar für jede Hilfe.

LG
MagY

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

naja, entspr. den Tabellenbeziehungen könntest Du im ersten Kombi die Vorauswahl der Antrieb für die Einschränkung der Batterien im zweiten Kombi durchführen. deses 2. Kombi in Verbindung mit dem 3. Kombi (Datensatzherkunft aus tblKriterien_Antriebe) filtert Dir den enstpr. Datensatz aus tblDaten_Batterien.



MagY

Hey,

danke für die schnelle Antwort.

Also im ersten Kombi soll man ja ein Kriterium (z.B Preis) auswählen können.
Im zweiten Kombi dann den Antriebstyp der die Auswahl der Batterietypen im dritten Kombi einschränken soll (im Sinne von abhängigen Kombifeldern). Das klappt soweit auch.

Wenn man dann die gewünschte Batterie (z.B Blei) im dritten Kombi gewählt hat, sollen im Textfeld die Daten für diese Kombination aus Preis/Bleibatterie angezeigt werden.
Und ich bekomme den Sprung nicht hin, dass ich diese Daten aus dem Feld "Daten_Batterien_Text" abrufen kann.

Ich weiß nicht genau, ob ich dazu einen VBA brauche oder doch irgendeine bestimmte Datensatzherkunft.


DF6GL

Hallo,

theoretisch ginge das auch über eine parametrisierte Abfrage (Verweise im Kriteriumsfeld auf die beiden nötigen Kombis) ... das ist aber gar nicht zu empfehlen, besser ist eine Ereignisprozedur zum "Nach Aktualisierung"-Ereignis des "Batterie-Kombis":

Private Sub kombibatterie_AfterUpdate()
Me.Filter = "Batterien_ID = " & Me!kombibatterie & " and Kriterien_Antriebe_ID= " & Me!kombikriterium
Me.FilterOn = True
End Sub



Das Form erhält als Datenherkunft die (den) Tabelle(nnamen) und keine(n) Abfrage(namen) zugewiesen.


MagY

Hallo DF6GL,

ich bin Deinem Rat gefolgt und habe das After Update Ereignis genommen.

Allerdings erhalte ich eine Parameterabfrage bzgl. der Batterie_ID. Laut einer Microsoft Office Hilfe soll man dann den "Bezeichner" suchen und Unstimmigkeiten beseitigen. Allerdings weiß ich nicht genau was das heißt.
Noch eine Frage: Wenn man das After Update Ereignis nutzt für "kombibatterie", dann muss man auch dieses Kombi als letztes auswählen. Ist es möglich einen Code einzugeben der es erlaubt eine andere/beliebige Reihenfolge der Auswahl zu treffen? Also z.B erst die Batteriewahl, dann das Kriterium.

Danke für die Unterstützung!

DF6GL

Hallo,

Bezeichner ist hier wohl die Schreibweise eines Namens, bzw. der Name selber, der falsch ist.


Wenn das bei allen Kombis funktionieren soll, dann muss für jedes Kombi dessen "Afterupdate"- Ereignisprozedur erstellt werden, die den Filter-Code ausführt. "Übersichtlicher" wäre aber eine Schaltfläche, mit der der Suchvorgang gestartet wird, nachdem die Auswahl in den Kombis erfolgt ist.

MagY

Hallo Franz,

ich habe es doch mit der LookUp Funktion geschafft und habe dann, wie Du gesagt hast, eine Schaltfläche gewählt.

Nun klappt es.

Vielen Dank!
LG