Office: (Office 2003) Alternative zu DLookup

Helfe beim Thema Alternative zu DLookup in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, beim Öffnen eines Formular werden etwa 50 Datenfelder mit DLookup gefüllt, was eine gewisse Zeit in Anspruch nimmt. Daher suche ich nach einer... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von friedel, 13. März 2008.

  1. Alternative zu DLookup


    Hallo,

    beim Öffnen eines Formular werden etwa 50 Datenfelder mit DLookup gefüllt, was eine gewisse Zeit in Anspruch nimmt. Daher suche ich nach einer Möglichkeit die Daten schon im Vorfeld den einzelnen Felder zu zuweisen, so dass sie bei Formularöffnung sofort verfügbar sind. Geht sowas ? Hat jemand ein Tipp?



    gruß

    :)
     
    friedel, 13. März 2008
    #1
  2. Entweder nutzt du ein gebundenes Formular (was aber wohl nicht sein soll) oder du setzt ein Recordset ein. Wenn die Felder im Formular wie die in der Tabelle heißen könnte es mit folgendem Luftcode gehen.
    Code:
     
    Arne Dieckmann, 15. März 2008
    #3
  3. Alternative zu DLookup

    ... also ich lege nochmal nach.

    Ich habe eine Abfrage mit max. 50 Datensätze und ein Feld davon mit seinen 50 Werten ist die Quelle für die Felder im Formular. Ein gebundenes Formular kann ich nicht einsetzen, weil ich keine Listenansicht gebrauchen kann, die Daten sollen mit einem bestimmten Layout (Matrix) dargestellt werden.

    Ich fürchte mit den Recordset komme ich da nicht weiter.

    Kann man nicht im Vorfeld schon festlegen, welchen Werte die Felder im Formular anzuzeigen haben?
     
    friedel, 15. März 2008
    #4
  4. Natürlich kannst du vor dem Öffnen des Formulars die Daten ermitteln. Aber was hilft das? Die Ladezeit wird trotzdem nicht schneller. Nur verlagert sie sich schon vor den Formular-Start.

    zum Recordset: Was hindert dich daran ein Recordset mit den 50 DS zu öffnen und die Daten an das Formular zu übertragen?
    Arne zeigte ein Beispiel bei dem er Werte von einzelnen Felder eines Datensatzes an die Steuerelemente übertrug. Das Umschreiben auf mehrere DS sollte nicht so schwer sein.
     
    Josef P., 15. März 2008
    #5
  5. Hallo
    Diese Begründung verstehe ich nicht ganz
    was hat ein gebundenes Formular mit Listen ansicht zu tun ?
    Bei standartansicht EinzelFormular
     
    Lanz Rudolf, 15. März 2008
    #6
  6. Das mit den Recordsets werde ich mir noch genauer ansehen.

    Meine Vorstellung wäre:
    Tägliche automatische Zuweisung z.B.nachts und beim Öffnen des Formulars sind die Daten sofort verfügbar (Snapshot?). Die Daten werden nur betrachtet.
     
    friedel, 15. März 2008
    #7
  7. Alternative zu DLookup

    Hallo Ruedi,

    mit Listenansicht meinte ich die Form-Einstellung "Endlosformular".
    Und die Einzelansicht taugt eben auch nicht, weil die relevanten Daten ja in den verschiedenen Datensätzen liegen.





    gruß
     
    friedel, 15. März 2008
    #8
  8. Etwa so:
    Code:
    Die Feldbezeichnungen im Formular sollten geeignet für einen Schleifendurchlauf sein.
     
  9. Wie lange dauert deine derzeitiger Ladevorgang?
    Wenn die Tabelle optimiert ist und du mittels Recordset auf die 50 DS zugreifst sollte das nicht mehr als 1-2 Sekunden dauern. (aus meiner Sicht sind 2 Sek. bereits zu lange)
    Ich glaube du kannst dir die Umwege sparen, wenn du das eigentliche Problem löst - die Zugriffsgeschwindigkeit auf die Daten.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Josef P., 15. März 2008
    #10
  10. Hallo,

    ich habe, wie geraten, die Abfrage optimiert.
    D.h. ich habe eine Feld als Index hinzugenommen, dieses indiziert und DLookup darauf bezogen. Bin mit der Geschwindigkeit jetzt absolut zufrieden.
    Jetzt hat mich noch interessiert, wie schnell es mit der "Recordset-Methode" wird. Und siehe da, nochmals schneller, quasi zeitgleich mit den Öffnen des Formulars sind die Daten da.

    Nun da ich die Recordset-Variante beibehalten möchte, will ich sie dahingegen erweitern, daß ein Parameter mitübergeben wird. In der Abfrage ist als Bedingung Jahr(Datum) = [Formulare]![FName].[cmbJahr] angegeben (Datum-bzw. Stringformat).

    Wie muss ich das in den SQL-String einbauen?

    Code:
    Gruß
     
    friedel, 17. März 2008
    #11
  11. Da kann man dann gleich noch einmal optimieren.
    Code:
    Wenn nun [Datum] passend in einem Index enthalten ist, dann läuft die Abfrage noch einmal etwas schneller. *Smilie

    nun zu
    Code:
    Wenn in der Abfrage "MeineAbfrage" bereits der Verweis auf das Formular gesetzt ist, dann wird das imo nicht so einfach änderbar sein.
    Da ich aber von diesen direkten Formularverweisen überhaupt nichts halte, werde ich mich damit auch nicht näher beschäftigen und dafür gleich eine Alternative anbieten. *wink.gif*

    1.) komplette SQL-Anweisung per VBA zusammenstellen
    Code:
    2.) Parameter-Abfrage
    gespeicherte Abfrage:
    Code:
    Verwendung unter VBA:
    Code:
    Anm.: obiger Code ist Luftcode (ungetestet), aber das Prinzip sollte erkennbar sein.

    BTW: Kann es sein, dass du per VBA die Ausgabe einer Kreuztabellenabfrage nachbauen willst?

    /edit: Mit der Parameter-Abfragevariante kann sogar der Form-Verweis überschrieben werden, das probierte ich aber noch nie produktiv aus.
    Kann es nur für einen Testfall bestätigen, da ich das gerade aus Neugierde testete.

    GespeicherteAbfrage:
    Code:
    VBA-Code:
    Code:
    Anm.: Das Formular muss nicht offen sein, da [Forms]![Formular1]![txtFilterDat] wie ein Parameter behandelt wird.
     
    Josef P., 17. März 2008
    #12
  12. Alternative zu DLookup

    Hallo,

    ich habe den SQL-String für meine Zwecke abgeändert - also die Aggregation in den SQL-String mit reingenommen. (Bsp. von Josef)
    Bekomme aber ein Syntaxfehler. Kann jemand helfen ?

    Code:
     
    friedel, 17. März 2008
    #13
  13. meist hilft die Ausgabe der erzeugten SQL-Anweisung.
    in diesem Fall, wenn Me!cmbJahr = 2008:
    Code:
    => Fehler: . statt \ beim Datum
    Abhilfe:
    Code:
    =>
    Code:
    BTW: in der Abfrage "MeineAbfrage" ist aber nun nicht mehr die Gruppierung vorhanden, oder?
     
    Josef P., 17. März 2008
    #14
  14. ... Zieleinlauf hat stattgefunden. Besten Dank!!!

    Nein, habe ich rausgenommen bzw. jetzt kann ich eigentlich auf die Abfrage ganz verzichten und auf die Tabelle zugreifen.
     
    friedel, 17. März 2008
    #15
Thema:

Alternative zu DLookup

Die Seite wird geladen...
  1. Alternative zu DLookup - Similar Threads - Alternative DLookup

  2. XVERWEIS Alternative

    in Microsoft Excel Hilfe
    XVERWEIS Alternative: Hallo, ich habe folgendes Problem. Ich habe in einem Dokument die Funktion: XVERWEIS benutzt. Auf meinem Rechner funktioniert alles so wie es soll, allerdings bei meinen Kollegen nicht, da auf dem...
  3. LET/LAMBDA als PQ-Alternative (2x UNPIVOT, 2x SPLIT2D)

    in Microsoft Excel Tutorials
    LET/LAMBDA als PQ-Alternative (2x UNPIVOT, 2x SPLIT2D): Die anhängende Datei hat 24 KB und kann (Stand April 2023) in XL365 oder XLWeb geöffnet werden. Die LET/LAMBDA-Codes sind auch in XLWeb sichtbar, da sie in Zellen als Klartext wiederholt sind....
  4. Alternative zur Filter Funktion

    in Microsoft Excel Hilfe
    Alternative zur Filter Funktion: Hallo, ich suche hier nach einer Lösung und hoffe sehr auf Unterstützung. Ganz herzlichen Dank im Voraus! Ich habe eine Tabelle, die ich für ein Punktdiagramm auswerte (x und y-Werte). Das...
  5. Excel, eine Alternative für Mensch ärgere dich nicht...!

    in Microsoft Excel Hilfe
    Excel, eine Alternative für Mensch ärgere dich nicht...!: ...gute Morgen, Ich habe gerade ein wenig Zorn, was Excel anbelangt. Nicht nur, dass so ein Programm wie Excel absolut überarbeitungswürdig ist und nicht in "die heutigen Anforderungen...
  6. Alternative für verschachtelte WECHSELN-Funktion

    in Microsoft Excel Hilfe
    Alternative für verschachtelte WECHSELN-Funktion: Servus an alle, vorab ich bin noch nicht sehr tief in der EXCEL Materie deshalb sorry wenn es eine dumme Frage ist. Leider konnte ich weder hier im Forum noch bei Papa Google eine befriedigende...
  7. WECHSELN & SVERWEIS gemeinsam nutzen (oder Alternative?)

    in Microsoft Excel Hilfe
    WECHSELN & SVERWEIS gemeinsam nutzen (oder Alternative?): Ich bräuchte bitte einmal Euer Schwarmwissen. Ich habe Zellen, deren Inhalt ich in Teilen ändern mag. Das Problem dabei, dass die Liste ziemlich lang wird, eine Verschachtelung der WECHSELN Formel...
  8. Alternative zu SVERWEIS - Suche in mehreren Spalten

    in Microsoft Excel Hilfe
    Alternative zu SVERWEIS - Suche in mehreren Spalten: Hallo Zusammen, ich bin dabei ein Planungstool zu bauen und finde gerade nicht die passende Formel. ich habe für jeden Mitarbeiter (A) verschieden Spalten mit verschiedenen Eigenschaften (B-H)...
  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