Kombibox-Datenherkunft variabel
Hallo Ihr Wissenden...
ist es möglich einem Kominationsfeld anhand der Auswahl in einem anderen Kombifeld eine andere Datenquelle zuzuweisen?
Beispiel:
1. Kombifeld dort stehen verschiedene Abteilungen
Datenherkunft eine Tabelle
die Auswahl(Primärschlüssel) wird in eine Haupttabelle geschrieben.
Das zweite Kombifeld ist von den Eigenschaften gleich, hat eine andere Tabelle bzw. Abfrage(Teilenummern) als Datenherkunft, und schreibt auch wieder eine Zahl in die Haupttabelle.
Diese Herkunft-Tabelle hat eine Spalte (Schlüssel).
Wenn in der 1. Kombibox der erste Eintrag gewäht wird, dann sollen in der Zweiten Kombibox nur die Daten zur Auswahl stehen, die in der Schlüsselspalte den Eintrag A haben.
Ich habe es trotz vieler Hilfe lesen nicht geschafft.
Zur Zeit hab ich für jeden Schlüsselbuchstaben eine Abfrage erstellt, und dem entsprechend so viele Komiboxen auf dem Formular.
(wovon dann immer nur eines sichtbar ist)
Es wäre mir schon sehr geholfen, wenn mir jemand eine VBA-Zeile nennen kann, welche in einer Abfrage ein Filterkriterium setzt.
Also in der Abfrage <AbfrTeilenummern> für's Feld <Schlüssel>
den Filter <=A>.
Ich hoffe mein Problem ausreichend beschrieben zu haben....
wenn nicht bitte nachfragen.
Gruß Andreas
Antwort schreiben
Antwort 1 von RalfH vom 05.10.2019, 06:49 Options
Morgen Andreas,
Nehmen wir an Du hast 2 Kombifelder. Kombifeld1 wählt das Kriterium aus, um das Kombifeld2 zu füllen.
Im Ereignis
Nach Aktualisierung des Kombifeld1 kommt folgender VBA Code:
Me!kombifeld1.RowSourceType = "Table/Query"
Me!kombifeld2.RowSource = "DeineTabelle/Query"
Wenn Du eine Abfrage nimmst, kommt als Kriterium
Wie [forms]![DeinFormular]![Kombifeld1]
Zur Zeit hab ich für jeden Schlüsselbuchstaben eine Abfrage erstellt, und dem entsprechend so viele Komiboxen auf dem Formular.
(wovon dann immer nur eines sichtbar ist)
Wäre damit auch erledigt ;-)
Gruß Ralf
Antwort 2 von RalfH vom 05.10.2019, 08:49 Options
uups !
Kleiner Nachtrag: Das sollte natürlich so gehen
Me!kombifeld2.RowSourceType = "Table/Query"
Me!kombifeld2.RowSource = "DeineTabelle/Query"
sorry
Ralf
Antwort 3 von Kauz vom 05.10.2019, 15:54 Options
Hallo Ralf...
deine Antwort war sehr hilfreich.
Ich komme nun auf dem Formular mit nur einer 2.Kombibox aus.
Habe jetzt für jeden Eintrag in Box1 eine abfrage für Box2 angelegt,
und setze die Datenherkunft auf die entspechende Abfrage:
Private Sub Abteilung_AfterUpdate()
If Abteilung.Value <> "" And Abteilung.Value <> "---" Then
Teilenummer.Visible = True
Teilenummer.RowSource = "AbfrTeilenummern" & Abteilung.ListIndex
End If
End Sub
Vielen Dank dafür!!.
---------------------------------------------------------
Wegen dem Lerneffekt wäre ich um eine Antwort auf den zweiten Teil trotzdem nicht böse. :-)
Zitat:
...Es wäre mir schon sehr geholfen, wenn mir jemand eine VBA-Zeile nennen kann, welche in einer Abfrage ein Filterkriterium setzt.
Also in der Abfrage <AbfrTeilenummern> für's Feld <Schlüssel>
den Filter <=A>.
Mag hierzu noch jemand sein Wissen äußern? :-)
Gruß Andreas
Antwort 4 von Marie vom 06.10.2019, 19:20 OptionsLösung
hm, also Du willst die Abfrage Teilenummern nur für den Inhalt A in Schlüssel öffnen? Oder was?
Select AbfrTeilenummern.*
From AbfrTeilenummern
WHERE ((AbfrTeilenummern.schlüssel)="A");
Äh, wenn du was anderes wissen wolltest, dann frag bitte Du genauer, dann gehts schneller. irgendwie hab ich nämlich den Eindruck, dass es das nicht ist, was Du wissen wolltest?
Gruß marie
Antwort 5 von Kauz vom 07.10.2019, 12:25 Options
Hallo Marie...
ich möchte diese Abrage nicht als Listenansicht öffnen, sondern als Datenherkunftobjekt für ein Kombinationsfeld.
Bislang habe ich für jeden möglichen Buchstaben im Feld Schlüssel eine eigene Abfrage erstellt. Die wird dann anhand des Listindex einer anderen Kombibox als Datenquelle zugewiesen.
Also AbfrTeilenummern1 für "A"
AbfrTeilenummern2 für "B" ...usw.
Teilenummer.RowSource = "AbfrTeilenummern" & Abteilung.ListIndex
Wenn man eine Abfrage im Entwurfsmodus öffnet, dann hat man unter dem Kästchen für Anzeigen eine Zeile <Kriterium>.
Dort hab Ich dann unter dem Feld SCHLÜSSEL ="A" bzw ="B" ...usw. eingetragen.
Diesen Eintrag möchte ich gerne per VBA setzen, dann würde eine einzige Abfrage reichen.
Ich hoffe es ist jetzt verständlicher....
Vielen Dank für die Mühe
Gruß Andreas
Antwort 6 von RalfH vom 09.10.2019, 06:28 Options
mojen,
schau Dir mal Antwort 4 von Marie genau an.
Gruß Ralf
Antwort 7 von Kauz vom 09.10.2019, 15:04 Options
Hallo...
wegen dem Hinweis von Ralf habe ich noch mal versucht die Antwort von Marie einzubinden.
Nach einigen Fehlermeldungen; einer leeren Kombibox; ändern des Schlüsseleintrags von Buchstaben auf Zahlen funzt es jetzt.
Vielen Dank
Gruß Andreas