2.6k Aufrufe
Gefragt in Datenbanken von
Hallo zusammen,

ich habe in meinem Formular zwei Kombinationsfelder mit der selben Datensatzherkunft (einer Abfrage). Dabei handelt es sich um die Felder Behältertyp und Behältergröße. Meine Frage ist nun. Kann ich eine abhängige Auswahl hinbekommen, so das mir nach der Auswahl des Behältertyps nur noch die dazu gehörigen Behältergrössen zur Auswahl zur Verfügung stehen.

Vielen Dank schon mal im Voraus.

mfg

11 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

Ohne das Formular gesehen zu haben würde ein Kombinationsfeld vollkommen ausreichen

>Entwurfsansicht Formular
>Toolbox
>Kombinationsfeld
>Kombinationsfeld-Assistent
>Einen Datensatz im Formular basierend.....>markieren
>Felder auswählen>Behältertyp>Behältergröße
>Weiter
>Weiter
>Namen vergeben
>Fertigstellen

Im so erstellten Kombinationsfeld wird bei Anwahl der Behältergröße zum dazugehörigen Behältertyp der dementsprechende Datensatz in den Formularfeldern aufscheinen.

Gruß

Paul1


Excel/Access 2003
0 Punkte
Beantwortet von
Hallo,

ist richtig. Wenn es möglich wäre, würde ich eine Lösung bevorzugen bei der ich zwei Felder habe. Im ersten Feld wähle ich den Behältertyp: ÜKL und im zweiten Feld werden mir nur die Behältergrößen: 5cbm; 7cbm; 12cbm zur Auswahl angezeigt.
Hab auch schon versucht über Ereignisse (afterupdate) und Makros was zu machen. Bislang leider ohne Erfolg.

mfg
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

Ich sehe weder die Datei noch kann ich einen praktischen Nutzen
erkennen, wofür es 2 Kombinationsfelder brauchen würde..
Sollte mir diesbezüglich noch was einfallen, würde ich es schreiben.

Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

getrennte Kombinations- oder Listenfelder in Abhängigkeit sind möglich, aber einfach ist es nicht, muß mich da selbst erst reinknien.
Im nachfolgenden Link wäre eine Beispieldatei downloadbar in der 97er Version, läßt sich aber locker in 2003 konvertieren, habe es getestet.

Könnte Deinen Vorstellungen entsprechen, soweit ich gesehen habe ist eine Abfrage nicht erforderlich.

Crea Combi

Trotzdem glaube ich wäre die von mir empfohlene Version mit nur einem Kombinationsfeld pflegeleichter.

Gruß

Paul1

Excel/Access 2003
0 Punkte
Beantwortet von
Hallo,

der praktische Nutzen dahinter bzw. der Gedanke dahinter ist die Eingabe für den Endbenutzer zu erleichtern und die Qualität der Daten zu Erhöhen. Nartürlich ist es zu überlegen, ob der Aufwand den Nutzen rechtfertig.
Wie wäre es, wenn man mit einer zweiten Abbfrage arbeitet und in den Kriterien: Formulare![frmUnterformular]![Kombinationsfeld18] einträgt.
Leider bekommen ich es nicht hin, den eingegeben Wert aus dem Formular des Feldes Behältertyps (Kombinationsfeld18) der Abfrage zu zuweisen.
Wäre das ein Ansatz oder bin ich komplett auf dem Holzweg?

mfg
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

falls mir noch was einfällt, schreibe ich es, versprechen kann ich allerdings nichts.

Gruß

Paul1

Excel/Access 2003
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Goetzwolf,

Habe ein Konzept mit Unterformular aus 2 Tabellen erstellt, würde vorschlagen schaue es Dir einmal an und bei Fragen schreibe es.

Datenbank Konzept

Im so erstellten Formular kann man sowohl abfragen, ändern und Neueingaben durchführen.

Gruß

Paul1
0 Punkte
Beantwortet von
Hallo,

danke Paul1 für die Mühe. Das Konzept hilft mir in diesem Fall leider nicht. Falls ich noch eine Lösung für dieses Problem finden sollte, werde ich es posten.

Folgendes versuche ich zur Zeit.

Tabelle1: tblbehaeltertyp
Inhalt: idbehaeltertyp, behaeltertyp

Tabelle2: tblbehaeltergr
Inhalt: idbehaeltergr, idbehaeltertyp, behaeltergr

Die Tabellen stehen dementsprechend in 1-n Beziehung.

Formular: frmabfallsituation

Im Formular sind zwei Kombinationsfelder
Kombi1: Datensatzherkunft: tblbehaeltertyp
Kombi2: Datensatzherkunft: tblbehaeltergr

Nun fehlt mir anscheindend ein VB-Code, den ich bei Kombi1 bei afterupdate eintrage, so das mir im Kombi2 nur noch dazugehörigen Behältergrößen anzeigt werden.

Folgendes müsste der VB-Code nach meinem Verständis machen:
die Datensatzherkunft des Feldes Kombi2 neubestimmen und um das im Kombi1 Kriterium filtern.
Vieleicht auch so.
Kombi1 auslesen, die dazugehörige idbehaeltertyp aus tblbehaeltertyp (Tabelle) nehmen, nach den einträgen idbehaeltertyp aus tblbehaeltergr (Tabelle) suchen und diese im Kombi2 zur Auswahl zur Verfügung stellen.


mfg
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Goetzwolf,

In meinem Konzept ist nach Auswahl im Kombifeld "Behältertypauswahl" die Auswahl aller Behältergrößen je nach Behältertyp im Unterformular ersichtlich und auch auswählbar zur Bearbeitung etc. so wie bei Dir in Kombi2 gewünscht, ich sehe hier eine echte Alternative und somit keinen Nachteil.

Wenn es aber unbedingt ein zusätzliches Kombifeld (Kombi2) sein soll, akzeptiere ich das, damit kann ich leider nicht dienen, zumal meine VBA-Kenntnisse nicht ausreichend sind.

Übrigens, die beiden Tabellen in meinem Konzept habe ich auch mit 1-n in Beziehung gebracht und zwar: Tabelle1"Behältertyp"-Tabelle2 "Behältertyp",
Anschließend habe ich mit den Feldern "Behältertyp" aus Tabelle1, "Behältergröße" und "Menge" aus Tabelle2 ein Formular mit dem Assistenten erstellt. Das Unterformular (Tabelle2) wurde automatisch erzeugt.

Wünsche Dir viel Erfolg das Problem nach Deinen Vorstellungen (2 Kombifelder in Abhängigkeit) zu lösen.

Gruß

Paul1
0 Punkte
Beantwortet von
Hallo,

hier der Code mit den es geht.

Private Sub cmbbehaeltertyp_AfterUpdate()

Me!cmbbehaeltergr.Requery

Me!cmbbehaeltergr.RowSource = "Select behaeltergr FROM tblbehaeltergr where idbehaeltertyp = " & Me!cmbbehaeltertyp

Me![cmbbehaeltergr].SetFocus
Me![cmbbehaeltergr].Dropdown

End Sub

Wichtig. In der Tabelle im Feld behaeltertyp unter Nachschlagen gebundene Spalte eine 2 eintragen, sonst bekommt man die idbehaeltertyp angezeigt.

mfg
...