Office: Listbox per QDF füllen

Helfe beim Thema Listbox per QDF füllen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich verzweifel gerade an einer Zuweisung einer parametrisierten Abfrage an eine Listenbox. Folgendes Konstrukt: Formular mit... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von CptChaos, 10. Februar 2014.

  1. Listbox per QDF füllen


    Hallo zusammen,

    ich verzweifel gerade an einer Zuweisung einer parametrisierten Abfrage an eine Listenbox.
    Folgendes Konstrukt:
    Formular mit ungenbundener Listenbox
    Dieser Listenbox wird (per Auswahl in einer anderen Listenbox) die RowSource über Me!lstResults.RowSource = "MeineAbfrage" das Ergebnis verschiedener Abfragen zugewiesen.
    Nun gibt es Abfragen in denen per Kriterien das Ergebnis eingeschränkt wird (DatumsFeld between [von] AND [bis]).
    von und bis sind als Parameter vom Typ DateTime in der jeweiligen Abfrage definiert.

    Wenn ich nun eine dieser Abfragen der Listenbox als RowSource zuweise, erhalte ich erwartungsgemäß zwei Dialoge für die Parameter.
    Diese möchte ich nun "umgehen" und durch Werte vorgeben.

    Meine Idee sieht momentan so aus: Code:
    Leider erhalte ich in der Zeile Me!lstResult.RowSource = qdf.Name nach wie vor die Dialoge für die Parameter [von] und [bis].
    Auch ein qdf.SQL führt zum selben Verhalten.

    Kann mir jemand einen Tip geben, wie (bzw. ob) das ganze ohne direkten Bezug auf Forms!... möglich ist und wenn ja wie.
    Alternativ habe ich mir auch schon überlegt das SQL-Statement anhand der QueryDef auszulesen und [von]/[bis] per replace zu ersetzen und diesen "bereinigten" String an die RowSource zu übergeben.
    Oder aber ich muss doch über Forms!... darauf zugreifen, was ich an sich vermeiden möchte.

    Der Vollständigkeithalber noch die SQL-Anweisung der Abfrage: Code:
     
    CptChaos, 10. Februar 2014
    #1
  2. Hi,

    das funktioniert nicht, weil die Parameter ja nicht in der Abfrage gespeichert werden. Aber wie willst du die Abfrage variabel halten, wenn du die Werte fest einträgst. Irgendwann bzw. irgendwo musst du die doch festlegen.

    Eine Möglichkeit wäre es, die Parameter per Funktionsaufruf in die Abfrage zu holen. Die Funktion wiederum holt sich die Parameter per InputBox oder aus einem Formular oder aus globalen Variablen, die zuvor belegt wurden.

    Ist es das, worauf es hinauslaufen sollte?
     
    Anne Berg, 12. Februar 2014
    #2
  3. Die Alternative Funktion hatte ich auch schon überlegt... letztlich bleibt mir vmtl. nichts anderes übrig.
    Ich habe bereits eine Klasse, über die die Zeitraumauswahl vorgenommen wird. Vmtl. muss ich dort ansetzen.
    Ich hatte gehofft das ich das über die Parameter lösen kann, da ich diese relativ simpel fülle könnte.
    Ich habe bisher mit den Parametern in Abfragen nicht großartig gearbeitet, daher war/ist mir deren Funktionsweise nicht ganz klar.

    Letztlich heißt es doch, dass ich diese nicht beim Aufruf der Abfrage gezielt füllen kann; die Dialoge zur Eingabe der Parameterwerte kommen ja trotzdem.

    Oder gibt es eine Möglichkeit diese Dialoge (um die geht es letztlich!) zu umgehen?
     
    CptChaos, 12. Februar 2014
    #3
  4. Listbox per QDF füllen

    Hallo Benny,
    Code:
    Edit:
    wenn die Parameter als DateTime deklariert sind, solltest du evtl.
    statt der Strings Date-Werte übergeben
    #1/31/2014#
    oder die Typumwandlung bemühen
    cDate("31.01.2014").
    *wink.gif*
     
    Marsu65, 12. Februar 2014
    #4
  5. \@Marsu: Das hatte ich bereits probiert; dabei bekomme ich einen 438 (Object doesn't support this property or method)

    Ich habe es mittlerweile (Danke an Anne für den "Schubs" in die richtige Richtung) anders gelöst.
    Ich öffne bei der Auswahl der Abfrage ein zusätzliches Formular in dem ich den gewünschten Zeitraum auswähle/eingebe. Beim bestätigen des Formulars werden die erfassten, plausiblisierten Daten in 2 "hidden" Textfelder auf dem eigentlichen Formular (das mit der Listenbox) übertragen.
    Die Abfrage bedient sich anhand dieser Felder und nicht mehr über Parameter.

    Über Alternative, und sei es nur um was anderes zu probieren, bin ich jederzeit bereit *wink.gif*
     
    CptChaos, 12. Februar 2014
    #5
  6. Benny,
    welche Access-Version setzt du ein?

    Der oben gepostete Code ist getestet und funktioniert.

    Edit:#gelöscht
     
    Marsu65, 12. Februar 2014
    #6
  7. Code:
    Der Name der Abfrage hat mit Parametern nichts zu tun. Daher müsste schon das sich ergebende Recordset übergeben werden, wie das Marsu zeigt, siehe auch Parameterabfrage per VBA öffnen

    Alternativen:

    - Funktionen können in Jet-SQL gelesen werden. Diese würden also vor Abfrageaufruf mit den Parametern versorgt - wie das Anne schon vorschlug.

    - Die Parameter werden als Werte statt als Variablen übergeben:
    Code:
    - Nutzung Parametertabelle
    Code:
     
  8. Listbox per QDF füllen

    Das mit der Parameterabfrage habe ich mittlerweile gelöst.
    Bzgl. der WHERE-Klausel muss ich Dir zustimmen; ich fand allerdings keine andere Lösung für das Problem das auch DonKarl in seiner FAQ 3.13 beschreibt und so löst.

    Hintergrund: Das Tabellenfeld DateAdded ist ein TimeStamp-Feld.
    In der Abfrage möchte ich nach Auswahl nur die DS in einem bestimmten Zeitraum (between 01.01.2014 AND 31.01.2014) anzeigen.
    Da das Tabellenfeld aber z.B. 31.01.2014 17:42:13 enthält, werden diese nicht mit angezeigt was sie aber sollten.
    Ich habe auch mit diversen zusätzlichen Feldern in der Abfrage experimentiert um nur das Datum im Format dd.mm.yyyy zu verwenden; leider erfolglos.
    Wenn es dafür eine sauberere/bessere Lösung gibt wie über INT bin ich sehr dankbar.
     
    CptChaos, 12. Februar 2014
    #8
  9. Code:
    So hat man auch eine Nutzung eines möglicherweise vorhandenen Index.

    Bei Zeitraumfilterungen ist es übersichtlich: Ein Datum hat immer Zeitanteile, ohne deren Angabe ist es 0:00 Uhr. Um also Zeitanteile für den letzten Tag zu erfassen, nimmt man den Folgetag als Obergrenze des Zeitraumes, darf diesen selber aber nicht einschließen.
     
  10. Auch das hatte ich probiert... leider ohne Erfolg *frown.gif*
    Datensätze in der Tabelle:
    ID; fk_ID; FeldX; Kommentar; DateAdded
    1; 60000059; Test; Test; 24.01.2014 11:08:09
    2; 60000059; Test; Test; 24.01.2014 11:09:40
    3; 50010613; Test; Test; 05.02.2014 16:39:05
    Code:
    mit anschließender Eingabe in den Dialogen von 01.01.2014 und 31.01.2014 liefert mir leider alle Datensätze *frown.gif*
    Die Eingabe von 01.02.2014 und 28.02.2014 merkwürdigerweise nur den DS 3 *confused.gif*
    Kommando zurück... mit korrekter Formatierung (ist einfach schon zu spät...) klappts, dann sogar mit between!
    Code:
    Bin zwar nach wie vor der Meinung das bereits getestet zu haben, aber möglicherweise scheiterte es da bereits an den Klammern...
    Danke Eberhard
     
    CptChaos, 12. Februar 2014
    #10
  11. Hallo!

    Ist das ein Timestampfeld (Datums-Datentyp) oder nur ein Textfeld in dem etwas steht, das wie ein Timestamp aussieht?
    Deine Beschreibung klingt sehr nach Textvergleich.

    mfg
    Josef
     
    Josef P., 12. Februar 2014
    #11
  12. Format des Datenfelds ist DateTime (JET-Tabelle!).
    DefaultValue ist Now(), da die Uhrzeit gewünscht war/ist.

    Die Felder die ich für die Kriterien verwenden sind ungebundenen Textfelder auf einem Formular und dort als "Short Date" formatiert;
    ohne den CDate in der Abfrage, erhalte ich wieder falsche Ergebnisse (im obigen Beispiel den DS 3)
     
    CptChaos, 12. Februar 2014
    #12
  13. Listbox per QDF füllen

    Dann bleibt ja nur noch die Frage, warum die direkte Recordset-Zuweisung bei dir nicht funktioniert. *tongue.gif*
     
  14. Da solltest Du vorsichtig sein. Mit einem Timestamp basierend auf Now() ist es zwar unwahrscheinlich, genau einen 0:00 Uhr-Wert zu erzeugen, aber doch immerhin möglich.
     
  15. \@Marsu: Das frage ich mich auch... aber das ist jetzt nicht mehr kriegsentscheidend.
    @Ebs: ja, das habe/hatte ich im Hinterkopf. Solange der Fachbereich aber keine 7/24-Schicht hat, sehe ich da keine Gefahr. Und in der Nacht läuft die Anwendung nicht *wink.gif*
     
    CptChaos, 12. Februar 2014
    #15
Thema:

Listbox per QDF füllen

Die Seite wird geladen...
  1. Listbox per QDF füllen - Similar Threads - Listbox QDF füllen

  2. Suchfunktion für Listbox in Textbox

    in Microsoft Excel Hilfe
    Suchfunktion für Listbox in Textbox: Hallo an alle hier im Forum, ich bastel mal wieder ein wenig rum. Ich habe ein 2 spaltige Listbox. In der 1. Spalte stehen Zahlen von einstellig bis sechsstellig und in der 2. Spalte Namen. Im...
  3. Listbox befüllen

    in Microsoft Excel Hilfe
    Listbox befüllen: Hallo mein Name ist Carsten und ich bin neu hier im Forum und habe gleich eine Frage. Ich habe eine Userform mit verschiedenen voneinander abhängigen Listboxen. Das klappt auch soweit. Nur der...
  4. Listbox füllen wenn zelle daneben leer

    in Microsoft Excel Hilfe
    Listbox füllen wenn zelle daneben leer: Moin Moin zusammen, Ich möchte eine Listbox mit der Spalte A befüllen aber nur mit den Werten B leer ist. z.B A2 = 123 B2 = Test A3 = 321 B3 = Nun sollte in der ListBox nur der Wert...
  5. Ordnernamen, die Kriterien erfüllen in Listbox aufführen

    in Microsoft Excel Hilfe
    Ordnernamen, die Kriterien erfüllen in Listbox aufführen: Hallo Zusammen, ich suche nach einer function, mit der ich alle Ordner (ab einem fest vorgegebenen Startverzeichnis), deren Namen gewisse mehrere Kriterien enthalten (z.B. : beginnend mit...
  6. Suchfunktion in Listbox

    in Microsoft Excel Hilfe
    Suchfunktion in Listbox: Hallo zusammen, bin ein Neuling was VBA angeht und habe folgendes Problem. Über Double Click öffnet sich eine neue Userform und die Daten der Zeile füllen Textboxen aus. Das funktioniert alles....
  7. ListBox generiert selbstsändig Leerzeilen

    in Microsoft Excel Hilfe
    ListBox generiert selbstsändig Leerzeilen: Hallo zusammen, ich habe folgendes, dringendes Problem: Ich habe eine mehrspaltige ListBox erstellt die mit Daten aus einer Tabelle gefüttert wird. Dabei hab ich das ganze so programmiert dass...
  8. Listenfeld in Word 2016

    in Microsoft FrontPage Hilfe
    Listenfeld in Word 2016: Hallo, leider konnte ich keinen Eintrag zu meinem Problem finden: Wegen der größeren Länge von Texten kann ich nicht nur einfach eine listbox verwenden. Die listbox zur Auswahl der Alternativen...
  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