Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Proxy42 am März 01, 2020, 19:25:43

Titel: Feld-Eingabe mit einer WHERE Bedingung (VBA)
Beitrag von: Proxy42 am März 01, 2020, 19:25:43
Hallo,

ich bin jetzt schon eine Weile am knobeln wie ich dieses VBA Script entsprechend schreibe.

Tabellen:
Marke_1(ID, Marke)
Model_1(ID, Model, Marke(Beziehung zu Marke-Tabelle))
Version_1(ID, Version, Model(Beziehung zu Model-Tabelle))

In dem Formular zum Eintragen der Version soll nun folgende Funktion eingebaut sein:
Wenn es ein neuer Datensatz ist, gibt das erste Kombinationsfeld15. Bei diesem Feld kann man eine Marke auswählen.
Das Kombinationsfeld17 ist dazu da um das Model für die Version einzutragen. Dort sollen nur die Models zur Auswahl stehen, die als Marke die Marke aus dem ersten Kombinationsfeld eingetragen haben.

Ich habe nun das Problem, dass ich das Füllen des Kombinationsfeldes Kombinatinosfeld15 mit der benötigten WHERE Bedingung nicht richtig hin bekomme. Ich habe folgende Zeile, bei der ich mir unsicher bin ob sie richtig geschrieben ist:


Me.Kombinationsfeld15 = DLookup("[Marke]", "Model_1", "[Model] = " & Me.[Model])

Kann mir da jemand weiterhelfen?
Titel: Re: Feld-Eingabe mit einer WHERE Bedingung (VBA)
Beitrag von: DF6GL am März 01, 2020, 19:35:29
Hallo,

vermutlich redest Du von abhängigen Kombifeldern.

Die Kombis haben eine Eigenschaft "Datensatzherkunft", die mit einer filternden Abfrage (SQL-String, Where-Condition) versehen werden müssen, um die richtigen Daten in der Kombifeld-Liste anzuzeigen.

Da ist die Zuweisung eines Werte an das Kombi-Textfeld der falsche Ansatz.

Siehe: http://www.donkarl.com/?FAQ4.36
Titel: Re: Feld-Eingabe mit einer WHERE Bedingung (VBA)
Beitrag von: Proxy42 am März 01, 2020, 20:34:22
Hallo,

mir geht es in dem Fall nicht um das zweite KombiFeld mit der Abhängigkeit zum ersten KombiFeld.
Mein Problem ist, dass wenn ich einen Datensatz aufrufe, soll die Marke geladen werden, die das Model der Version in dem Datensatz hat.

Ich hab das jetzt versucht mal nochmal umzuschreiben:
Me!Kombinationsfeld15.RowSource = "SELECT [Marke] FROM Model_1 WHERE Model = " & Me![Model]
Leider klappt es damit immer noch nicht.
Titel: Re: Feld-Eingabe mit einer WHERE Bedingung (VBA)
Beitrag von: DF6GL am März 02, 2020, 10:00:11
Hallo,

sorry, ich versteh die ganze Beschreibung nicht..

ZitatWenn es ein neuer Datensatz ist, gibt das erste Kombinationsfeld15.

Was heißt das??

ZitatIch habe nun das Problem, dass ich das Füllen des Kombinationsfeldes Kombinatinosfeld15 mit der benötigten WHERE Bedingung nicht richtig hin bekomme

Kombinationsfeld15 (äußerst sinnvoller und aussagekräftiger Name) steht am "Anfang" der Auswahl-Hierarchie.  Was soll da bei einem neuen Datensatz denn zugewiesen werden?

Bessere und genauere Beschreibung der Situation (Screenshot des Beziehungsfensters, Datenherkunft und weitere Eigenschaften der Kombis, Datentypen der Tabellenfelder und kompletter Code) und des erwarteten Ergebnisses könnten konkrete Lösungsvorschläge bewirken....
Titel: Re: Feld-Eingabe mit einer WHERE Bedingung (VBA)
Beitrag von: Beaker s.a. am März 02, 2020, 10:40:00
Vermutlich könnte dies die Lösung sein: http://www.donkarl.com?FAQ4.12 (http://www.donkarl.com?FAQ4.12)