Office: (Office 2007) Listenfeld aktualisieren

Helfe beim Thema Listenfeld aktualisieren in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe ein Formular erstellt, auf dem sich verschiedene voneinander abhängige Listenfelder befinden. Funktionalität der Datenanzeige... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von ghandi, 3. September 2012.

  1. Listenfeld aktualisieren


    Hallo zusammen,
    ich habe ein Formular erstellt, auf dem sich verschiedene voneinander abhängige Listenfelder befinden. Funktionalität der Datenanzeige funktioniert wie gewünscht.

    Probleme habe ich mit der Datenaktualisierung.
    An und für sich sollten alle Listenfelder von den Eigenschaften her gleich sein, lediglich mit unterschiedlicher Datenherkunft.
    Mit den jeweiligen AfterUpdate-Ereignissen aktualisiere ich das ganze Formular mittels
    Code:
    Das funktioniert auch soweit, nur ein Listenfeld ist störrisch. Es werden keine Daten angezeigt - zumindest nicht über oben gezeigten Code.
    Wechsle ich jedoch in die Entwurfsansicht und dann wieder zurück in die Formularansicht, werden die Daten korrekt angezeigt und können ausgewählt werden.

    Zur Info noch der Code für das Laden und Aktivieren des Formulars - obwohl eine Entfernung selbigens keine Verbesserung zeigt.
    Code:
    Was mich auch stutzig mach, dass der 'AlleAktualisieren'-Button keine Wirkung auf das betreffende Listenfeld zeigt.

    Woran könnte das liegen?
    Danke und Gruß

    :)
     
  2. Ein Recalc habe ich noch nie verwendet. Ein Requery bedeutet das Neuabrufen der Datenherkunft. Ein Me.Requery betrifft dann (nur) das Formular. Listenfelder/Kombifelder haben eigene Datenherkünfte. Diese müssen bei Bedarf eigens aktualisiert werden:
    Code:
     
  3. Danke für die Antwort.
    Diesen Code habe ich auch ohne Erfolg getestet.

    bin jetzt aber einen Schritt weiter:
    das nicht-aktualisierbare Listenfeld hat zwei weitere Listenfelder in seiner Datenherkunft als Kriterien.

    Das erste dieser beiden Listenfelder wird vom Benutzer angeklickt.
    Daraufhin erscheint im zweiten Listenfeld ein von dieser Auswahl abhängiger Wert.
    Und da liegt das Problem.
    Da es sich nur um einen Wert handelt, wird dieser vom Benutzer auch nicht extra ausgewählt.
    Der Wert ist zu sehen, aber das Listenfeld gibt ihn nicht an das Problem-Listenfeld weiter (weil nicht ausgewählt).

    Was mich aber wundert ist, dass dieser einzelne Wert nach dem Wechsel von der Entwurfsansicht zur Formularansicht offensichtlich gewählt wird. Denn dann funktioniert alles bestens.

    Wie kann ich per VBA diesen ersten Wert des Listenfelds wählen?
    Danke und Gruß
     
  4. Listenfeld aktualisieren

    Du müsstest die gebundene Spalte des Listenfeldes mit einem gültigen Wert bedienen, dann wird der gewählte Datensatz aktiv, womit dann auch das Listenfeld (mit eingestellter Einfachauswahl) auch einen Rückgabewert liefert, der dann nachfolgend genutzt werden kann.
    Code:
     
  5. Verstehe.

    Aber wenn ich den gültigen Wert eines Listenfelds nicht kenne - wenn ich nicht einmal weiß, ob Werte zur Auswahl stehen?
    Wenn ich aber standardmäßig den ersten Wert in der Liste wählen will um eben gültige Werte für nachfolgende Abfragen zu erhalten?

    Danke und Gruß
     
  6. Es scheint sich hierbei um ein generelles Problem zu handeln, das nicht nur beim Öffnen eines Formulars auftritt.

    Wie gesagt, mehrere Listenfelder auf dem Formular, die gegenseitig ihre Werte verwenden um Daten anzuzeigen. Funktionalität alles bestens.

    Man stelle sich drei Listenfelder in Reihe vor - erstes beeinflusst zweites - zweites beeinflusst drittes.
    User trifft Auswahl in Liste1, Daten in Liste2 werden berechnet.
    User trifft Auswahl in Liste2, Daten in Liste3 werden berechnet - alles bestens.

    Nun verändert der User die Auswahl in Liste1, in Liste2 erscheinen dann Werte, die den zuvor in Liste2 gewählten Wert nicht mehr enthalten, oder Liste2 ist komplett leer.
    Problem: Liste3 zeigt immer noch Werte, die auf den zuvor in Liste2 gewählten Daten basieren.
    Offensichtlich arbeitet Liste2 mit einem Wert im Hintergrund, der aber nicht mehr sichtbar ist.
    Ich habe bislang keinen Weg gefunden Liste2 oder Liste3 so zu aktualisieren, dass plausible Daten angezeigt werden.

    Um eines klar zu stellen, wählt der User in Liste2 einen Wert aus, sind die Daten in Liste3 korrekt. Aber es geht eben um den Fall, dass nach erneuter Datenberechnung in Liste2, sich die Wert so ändern, dass der zuvor gewählte nicht mehr vorhanden ist.
    In Liste2 ist dann kein Wert gewählt.
    Am auffälligsten ist das Problem wenn Liste2 leer ist und Liste3 immer noch Werte anzeigt.

    Freilich könnte ich bei jeder Änderung in Liste1, automatisch den ersten Wert in Liste2 auswählen per VBA.
    Ich finde es aber gut, wenn sich das Listenfeld den zuvor gewählten Wert merkt.

    Ich kann das Listenfeld per VBA in ein Textfeld auslesen lassen, wenn erst mal ein Datensatz gewählt wurde. Dieser Wert verändert sich auch nicht, wenn die Liste den Wert gar nicht mehr enthält.
    Gibt es eine Möglichkeit zu prüfen, ob der Listenwert in der Liste überhaupt als Datensatz sichtbar ist? (ich finde diese Fragestellung an sich fragwürdig und hoffe dass die Lösung wo anders liegt)

    Wäre froh wenn mir jemand helfen könnte.
    Danke und Gruß
     
  7. Moin,
    versuche mal folgendes:
    im AfterUpdate von Liste1
    Code:
    im AfterUpdate von Liste2
    Code:
    Dann sollte imho der erste in den Listen vorhandene Wert für die Auswahl herangezogen werden.
    Alternativ/zusätzlich könntest du Liste3 noch im AfterUpdate von 1 leeren, um den User zu einer gezielten Auswahl in Liste2 zu zwingen.
    maike
     
  8. Listenfeld aktualisieren

    Danke für deine Antwort.
    Dein erster Vorschlag, die beiden Listen in den AfterUpdate-Ereignissen über me.liste.requery zu aktualisieren führt nicht zum Ziel.

    In Liste2 sind keine Daten vorhanden und in Liste3 werden trotzdem noch Daten vom zuvor gewählten Wert aus Liste2 angezeigt.

    Was meinst du damit, wenn du sagst, ich soll die Liste leeren?

    Danke und Gruß
     
  9. Hallo.

    Ich möchte nochmal anregen, statt

    zu verwenden. Gut wäre es auch, wenn die Listenfelder "sprechende" Namen gefolgt von einer Zahl für die Reihenfolge hätten. Kannst Du das umsetzen und dann den Quellcode posten?

    Ergänzende Frage/Nachtrag: Sind die Listenfelder an ein Feld der Datenherkunft des Formulares gebunden? Die gebundene Spalte wird in jedem der abhängigen Listenfelder auch richtig angesprochen?
     
    SaschaBHH, 6. September 2012
    #9
  10. Damit meinte ich, die Datenherkunft des Listenfeldes auf einen Leerstring zu setzen:
    Code:
    Ich vermute, du hast die Listen fest mit gespeicherten Abfragen verdrahtet und Formularfeldbezüge als Filterkriterium angegeben? Dann mußt du diese Abfrage nach Aktualisierung von Liste2 wieder zuweisen:
    Code:
    maike
     
  11. Huhu Maike! :-)

    Insofern der Bezug auf das Listenfeld liegt, sollte doch ein Requery reichen, oder? Fraglich ist doch auch ob man den RowSource wirklich löschen muss. Wenn Liste3 keine Daten dem Kriterium der Liste2 hat, so sollte es auch nichts anzeigen. Ich vermute der Hund liegt woanders begraben :-)
     
    SaschaBHH, 6. September 2012
    #11
  12. Moin Sascha,
    hätt' ich auch angenommen, dass ein .Requery in dem Fall reicht ... habe aber mit Formularbezügen wenig Erfahrung, da ich die nicht verwende.
    Naja, vielleicht wäre es an der Zeit, das Ganze mal in Augenschein zu nehmen.

    @ghandi
    Kannst du vielleicht eine auf das Problem reduzierte, komprimierte, gezippte Dummydatenbank hier hochladen?

    maike
     
  13. Listenfeld aktualisieren

    Danke für die Antworten.
    Habe nun eine reduzierte Datenbank hochgeladen.
    Vielleicht wird mein Problem nun klarer.

    Danke und Gruß
     
  14. Hi.

    Ich kann mir das erst morgen früh anschauen. Vielleicht ist Maike schneller :-) We will see...
     
    SaschaBHH, 6. September 2012
    #14
  15. Schneller vielleicht *grins aber sie kann nur bis Access 2003 mitmachen *bye .
    maike
     
Thema:

Listenfeld aktualisieren

Die Seite wird geladen...
  1. Listenfeld aktualisieren - Similar Threads - Listenfeld aktualisieren

  2. Listenfeld im Endlosformular

    in Microsoft Access Hilfe
    Listenfeld im Endlosformular: Hallo in die Runde! Ich stehe gerade furchtbar auf dem Schlauch und hoffe, ihr könnt mir helfen: Problemkind ist eine Art Zimmerverwaltung: - jedes Zimmer hat eine ID und ist einem Objekt...
  3. Listenfeld aus Textfeld heraus füllen

    in Microsoft Access Hilfe
    Listenfeld aus Textfeld heraus füllen: Hallo Ich möchte gern mittels einem Listenfeld auf eine Auswahl an "Texten" (Text Bausteine) die sich oft widerholen zugreifen können und diese in ein MEMO Feld im Formular einfügen. Das klappt...
  4. Kombinationsfelder und Listeneinträge

    in Microsoft Access Hilfe
    Kombinationsfelder und Listeneinträge: Hallo in die Runde, ich fange gerade an, Access zu erforschen und möchte eine Art digitalen Aktenschrank erstellen. Folgenden Workflow möchte ich erreichen: 1. im Kombinationsfeld wird ein...
  5. Daten aus Listenfeld in Textfeld übergeben

    in Microsoft Access Hilfe
    Daten aus Listenfeld in Textfeld übergeben: Hallo Ich habe ein (Hauptformular Tabelle1) und (Abfrage Tabelle2) mit Daten in dem Hauptformular habe ich eine Listenfeld mit der (Tabelle2 Abfrage) Wenn ich im Listenfeld eine Zeile anklicke...
  6. Listenfeld mit Verbundenen Zellen

    in Microsoft Excel Hilfe
    Listenfeld mit Verbundenen Zellen: Hallo Zusammen, habe mir einen Code mit Hilfe aus einem Video geschrieben. Hier soll wenn in eine Zelle in dem Bereich Stoerungen_ eine Listbox auftauchen und den Ausgewählten Störgrund einfügen....
  7. Listenfeld aktualisieren

    in Microsoft Excel Hilfe
    Listenfeld aktualisieren: Hallo Forum, kann mir jemand helfen? Ich öffne eine UserForm mit Listenfeld und zwei Textboxen. In die Textboxen werden Werte für einen neuen Eintrag in das Listenfeld eingefügt. Mittels...
  8. Listenfeld nach Änderung aktualisieren (VBA)

    in Microsoft Access Hilfe
    Listenfeld nach Änderung aktualisieren (VBA): Hallo zusammen! Ich hoffe, ihr könnt mir helfen, ich bin langsam echt am verzweifeln.. Ich habe ein Listenfeld, was mit Daten aus einer Abfrage gefüllt ist: Me!liste.RowSource = "SELECT...
  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