Office: (Office 2007) Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken?

Helfe beim Thema Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo alle! Ich möchte die Auswahlmöglichkeiten in einem Kombinationsfeld (Herkunftstyp Tabelle/Abfrage) in Abhängigkeit vom Wert eines anderen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von ZytoVision, 9. Januar 2013.

  1. Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken?


    Hallo alle!

    Ich möchte die Auswahlmöglichkeiten in einem Kombinationsfeld (Herkunftstyp Tabelle/Abfrage) in Abhängigkeit vom Wert eines anderen Formularfeldes einschränken, bzw. nach dem Wert dieses anderen Feldes filtern. Leider bekomme ich das nicht hin, weil ich nicht weiß, wie ich in der Datensatzherkunft (SELECT...) des Kombinationsfeldes auf das Formularfeld Bezug nehmen muss.

    Gegeben ist eine Tabelle Fallinformationen, die über ihren Autowert-Primärschlüssel Fall_ID 1:n mit der Tabelle Teilfälle verbunden ist (1 Fall hat 1-n Teilfälle).
    Teilfälle wiederum ist über ihren Autowert-Primärschlüssel Teilfall_ID 1:n mit der Tabelle Untersuchungen verbunden (1 Teilfall hat 1-n Untersuchungen).

    Mein Formular basiert auf dieser Untersuchungen. In einem Feld von Untersuchungen wird per Kombinationsfeld die Fallinformation eingetragen: Datensatzherkunft des Kombinationsfeldes "Fall" ist Fallinformationen, wobei natürlich nicht Fall_ID, sondern die 2. Spalte der Tabelle, Fallbezeichnung, im Formularfeld angezeigt wird.

    Entsprechend ist es mit dem zweiten Kombinationsfelds des Formulars. Datensatzherkunft des Kombinationsfeldes "Teilfallbezeichnung" ist Teilfälle und dieser Eintrag stellt den "n"-Teil der 1:n-Beziehung dar.

    Was ich nun möchte, und nicht hinbekomme, ist, dass bei den Auswahlmöglichkeiten im Dropdown "Teilfallbezeichnung" nur diejenigen aus der Datensatzherkunft Teilfälle angezeigt werden, die ihreseits mit der Fall_ID übereinstimmen, welche im Formular im ersten Kombibeld "Fall" ausgewählt wurde.

    Im "SELECT..." der Datensatzherkunft des Kombifeldes scheint ein Bezug à la ME!Fall nicht zu funktionieren...weder per "WHERE Fallinformationen.Fall_ID=Me!Fall" in der SELECT-Anweisung, noch per setzen des Kriteriums "=Me!Fall" in der Abfrageansicht der Eigenschaft Datensatzherkunft.

    Was übersehe ich hier?

    Vielen Dank schomal!

    Gruß
    Klaus

    :)
     
    ZytoVision, 9. Januar 2013
    #1
  2. Moin Klaus.
    Der Bezug auf das Steuerelement muss aus der SQL Anweisung raus bzw. mit ihr verkettet werden: Code:
    Insofern kannst Du die Anweisung nicht direkt in die Eigenschaft eintragen sondern musst sie - bei Änderunge des bezogenen Steuerelements - per VBA besorgen.
    Code:
    Die Alternative wäre, in den Eigenschaften den Filter nicht unter Bezug auf Me! einzugeben sondern mit vollem Namen also z.B. Forms!Dein_Formular!
     
    hcscherzer, 10. Januar 2013
    #2
  3. Danke für die schnelle Antwort! Ich werde das mal ausprobieren (die VBA-Version).

    Wäre es nicht sinnvoller, die Anweisung nicht nur bei fall_afterupdate() auszuführen? Das würde doch nicht ausgelöst werden, wenn ich zu einem bestehenden Datensatz hinblättere um bei diesem bei schon vorher bestehendem Eintrag im Feld "Fall" die Auswahl in meinem Kombifeld zu ändern, oder? Die Auswahl im Kombifeld sollte ja immer an den bestehenden (neu eingestellten oder bereits älteren) Eintrag in "Fall" angepasst sein.

    Und: wenn ich den Code wie von dir vorgeschlagen verwende, lasse ich dann den SELECT...-Eintrag im Feld Datensatzherkunft der Kombifeld-Eigenschaft leer?

    Thanksalot!
     
    ZytoVision, 11. Januar 2013
    #3
  4. Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken?

    Hallo,

    du kannst auch den SQL-String mit dem Bezug auf das erste Kombifeld direkt in die RowSource eintragen: Code:
    Und du hast Recht, die Aktualisierung (in Form von Me!Teilfallbezeichnung.Requery) ist bei Änderung des Kombifeldes sowie beim Datensatzwechsel (Formular-Ereignis "Beim Anzeigen) notwendig.
     
    Anne Berg, 11. Januar 2013
    #4
  5. OK, das funktioniert soweit. Vielen Dank. Allerdings ist das bei mir eine PRIVATE SUB, die automatisch erstellt wurde durch die Auswahl von "Code-Generator" bei "Nach Aktualisierung". Ist das ok so oder muss ich das ändern? (meine letzten Aktivitäten in Access-VBA sind ca. 7 Jahre her... das ist alles so verschwommen mittlerweile)

    Wenn ich das von Anne erwähnte Me!Teilfallbezeichnung.Requery nun verwenden möchte um die Datenquelle des Kombifeldes auch beim blättern durch die Datensätze aktuell zu halten, wo muss ich das dann einbauen?

    VG,
    Klaus
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    ZytoVision, 15. Januar 2013
    #5
  6. Moin,
    Das ist in diesem Fall ok, Private bedeutet nur, dass diese Sub nur in diesem Formularmodul gilt und nicht von außerhalb ansprechbar ist.
    Das würde ich so lösen, dass ich die Sub aus dem Ereignis löse und dann beim Aktualisieren des Feldes und beim Anzeigen des Formulars aufrufe:
    Code:
    Ein Requery ist nicht notwendig, da die Rowsource des Kombis neu gesetzt wird. Das galt für den von Anne vorgeschlagenen Weg über den Steuerelementinhalt.
    maike
     
  7. Hmmmmm... ich stelle gerade fest, es läuft doch nicht ganz so rund, wie ich dachte.

    Also:
    ich hab eine SUB comboFallbezeichnungAuswahl() definiert, mit der SQL-Definition. Die funktioniert soweit.

    Mit den PRIVATE SUBs Fall_AfterUpdate() und Form_Current() rufe ich dann jew. die SUB auf.

    Das funktioniert soweit, dass ich beim öffnen der Dropdown-Auswahl von Teilfallbezeichnung tatsächlich nur diejenigen zur Auswahl angeboten bekomme, bei denen Fall=Me!Fall ist.
    Allerdings stimmt mit der Anzeige des ausgewählten Wertes im Kombifeld etwas nicht. Wenn ich zwischen Datensätzen hin- und herblättere, die den gleichen Fall haben, stimmt alles. Wenn ich aber zu einem DS mit einem anderen Fall blättere, dann bleibt das Feld leer. Klicke ich dann aber auf das Kombifeld wird der vorhandene Wert schließlich angezeigt und auch die Dropdownauswahl ist korrekt.
    Das sieht mir irgendwie so aus, als würde das Ereignis Form_Current erst ausgelöst, nachdem der vorhandene Wert im Kombifeld angezeigt wird (und somit die Filterung noch nicht stimmt). Blättere ich zum nächsten DS mit gleichem Fall-Wert stimmt der Filter ja noch und die Anzeige stimmt.
    Verwirrend finde ich, dass beim Form_Current der Fall-Wert auf dem der Kombifeld-Filter beruht mir korrekt angezeigt wird (hab ich per Msgbox in der PRIVATE SUB Form_Current vor dem Aufruf der SQL-SUB getestet). Wenn der Wert da bereits korrekt vorhanden ist, wieso funktioniert die auf dem SQL-Filter basierende Anzeige im Kombifeld dann erst bei anzeigen des 2. DS mit gleichem Fall...?

    Ich bin ratlos.

    Hat jemand eine Idee dazu?

    Thanksalot!

    Gruß
    Klaus
     
    ZytoVision, 17. Januar 2013
    #7
  8. Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken?

    Ist das Kombifeld denn korrekt an das Datenfeld gebunden?
     
    hcscherzer, 18. Januar 2013
    #8
  9. hallo wieder!
    Sorry, dass ich mich solange nicht gemeldet habe. Das Projekt wurde hier etwas zurückgestellt und ich hab völlig vergessen hier nach dem letzten Stand zu gucken.

    Hmm, ja, ich denke schon. Steuerelementinhalt=Teilfallinformationen. Genau wie in der zugehörigen Tabelle.
    Datensatzherkunft über die diskutierte SUB.

    Oder was meinst du? Bei falscher Anbindung würde ich doch eher immer gar nichts oder was falsches angezeigt bekommen, denke ich, und nicht nur beim Blättern zu einem anderen Teilfall ein leeres Feld.

    Gruß
    Klaus
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    ZytoVision, 11. Februar 2013
    #9
  10. Reden wir hier eventuell über ein Endlos-Formular?
    maike
     
  11. Nein, kein Endlosformular.
     
    ZytoVision, 11. Februar 2013
    #11
  12. Hi,

    dann zeig doch bitte mal den Code der SUB "comboFallbezeichnungAuswahl()" und überprüfe, ob sie tatsächlich im Current-Ereignis aufgerufen wird (-> Haltepunkt setzen).
     
    Anne Berg, 12. Februar 2013
    #12
  13. Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken?

    Hallo,

    ich habe so einen ähnlichen Fall.

    Ich möchte, dass das Kombinationsfeld das textfeld ausliest, die Auswahl filtert und dann in den anderen Feldern die Daten eingibt.
    Das Textfeld wird je nach Aktion geändert.

    Hab gerade keinen Ansatz, wie ich das Realisieren soll *frown.gif*

    Gruß

    silver
     
    silverstone1986, 14. Februar 2013
    #13
  14. Moin,
    Dazu erstellst du im Ereignis Textfeld AfterUpdate und im Ereignis Formular Beim Anzeigen jeweils eine Ereignisprozedur.
    Der Wert in der gebundenen Spalte des Kombis wird mit dem Wert des Textfeldes verglichen und das Kombifeld gefiltert.
    Code:
    Welche Auswahl? Die im Kombi? Dann ist das mit dem obigen schon erledigt.
    Im Formular? Dann wäre das dasselbe wie:
    Oder willst du tatsächlich "Daten eingeben"? Das müsstest du dann noch mal etwas genauer beschreiben.

    Wenn du einfach nur die entsprechenden Daten sehen/finden willst, dann filtere das Formular nach dem Wert der Auswahl im Kombi (Ereignis nach Aktualisierung des Kombis):
    Code:
    *confused.gif*Bahnhof?

    maike
     
  15. Hier der Code. Haltepunkt in Form_Current gesetzt und funktioniert beim Blättern durch die Datensätze einwandfrei. Mir als Laien sagt das, dass die SUB comboFallbezeichnungAuswahl somit ja eigentlich keinen Fehler haben kann und das Problem eher im Ereignis Form_Current liegen muss, oder seh' ich das falsch? Irgend eine Unstimmigkeit mit dem Auslösezeitpunkt von Form_Current denkbar...?

    Code:
    Das Ereignis Fall_AfterUpdate funktioniert auch korrekt - jede Änderung des Kombifeldes "Fall" hat die gewünschte Auswirkung auf die Rowsource.

    Von den drei Spalten Teilfaelle.Teilfall_ID, Teilfaelle.Teilfallbezeichnung, Fallinformationen.Fallbezeichnung hat die erste in der Dropdown-Auswahl Breite 0, wird also nicht mit angezeigt.

    Viele Grüße,
    Klaus
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    ZytoVision, 15. Februar 2013
    #15
Thema:

Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken?

Die Seite wird geladen...
  1. Auswahl in Kombinationsfeld abhängig von anderen Formularfeldwerten einschränken? - Similar Threads - Auswahl Kombinationsfeld abhängig

  2. Automatische Auswahl in einem Kombinationsfeld durch die Auswahl in einem Anderen

    in Microsoft Access Hilfe
    Automatische Auswahl in einem Kombinationsfeld durch die Auswahl in einem Anderen: Hallo miteinander, entschuldigt der lange Titel, ich wusste nicht wie ich das nennen sollte. Mein Problem ist folgendes: Ich habe ein Formular mit Kunden und Produkten. Ich kann in einer ListBox...
  3. Textfeld soll abhängig von Auswahl in Kombinationsfeld gefüllt werden

    in Microsoft Access Hilfe
    Textfeld soll abhängig von Auswahl in Kombinationsfeld gefüllt werden: Als Datenherkunft meines Formulars ist eine Abfrage definiert. In einem Kombinationsfeld kann (nach dem Import von Daten) aus den Werten einer Tabellenspalte ausgewählt werden. In Abhängigkeit von...
  4. Im Formular per Kombinationsfeld Gruppierung auswählen

    in Microsoft Access Hilfe
    Im Formular per Kombinationsfeld Gruppierung auswählen: Hallo zusammen Ich Habe eine Abfrage, welche eine Gruppierung beinhaltet. Diese rufe ich in einem Formular auf (als Endlosformular dargestellt). Jetzt möchte ich die Gruppierung dynamisch...
  5. Formular flackert nach Auswahl in Kombinationsfeld

    in Microsoft Access Hilfe
    Formular flackert nach Auswahl in Kombinationsfeld: Hallo zusammen, ich baue eine Datenbank für Maßnahmen auf. Die Maßnahmen sind in einer Tabelle und werden durch verschiedene andere Tabellen näher beschrieben (z.B. eigene Tabelle mit...
  6. Auswahl Kombinationsfeld Datenübernahme

    in Microsoft Access Hilfe
    Auswahl Kombinationsfeld Datenübernahme: Hallo, ich habe eine Tabelle mit Datensätzen und einem Eingabeformular dazu. Jetzt habe ich noch eine zusätzliche Tabelle mit Firmen. Ich möchte jetzt im Eingabeformular, die jeweilige Firma...
  7. Kombinationsfeld-Auswahl abhängig (machen) von anderem Kombinationsfeld

    in Microsoft Access Hilfe
    Kombinationsfeld-Auswahl abhängig (machen) von anderem Kombinationsfeld: Hi com, Ich habe in einem Formular 2 Kombinationsfelder. Nun möchte ich, dass im 2.Kombinationsfeld nicht mehr alle Möglichkeiten erscheinen, sondern nur solche, welche auf das im 1. zutreffen....
  8. Kombinationsfeld- Steuerelement, nach Auswahl vordefinierterter Text einfügen

    in Microsoft Word Hilfe
    Kombinationsfeld- Steuerelement, nach Auswahl vordefinierterter Text einfügen: Hallo Zusammen Ich scheitere wieder mal an meinem Unwissen... Hier mein Problem; Ich habe ein Kombinationsfeld- Steuerelement mit Auswahlmöglichkeiten. Jetzt möchte ich, dass ein Feld...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden