online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Kauz vom 04.10.2019, 17:05 Options

Lösung

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

Lö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

Antwort 8 von Marie vom 11.10.2019, 22:22 Options

:-))

marie

Ähnliche Themen

Dezimal Zahl in Zeit umrechnen
Gillmore  09.02.2007 - 169 Hits - 5 Antworten

Abhängige Listenfelder
simbi  19.06.2007 - 114 Hits - 8 Antworten

VBA- Range variabel angeben
RatloseIvy  13.11.2007 - 94 Hits -

Zellen nach min und max vergleichen
JURU  05.01.2008 - 53 Hits - 1 Antwort

standardabweichung
stoile  01.02.2008 - 66 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 20:06:00 2026