Office: Vgl. 2er DLookUp-Varianten

Helfe beim Thema Vgl. 2er DLookUp-Varianten in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hi, sind folgende Anweisungen gleichwertig, bzw. wo liegen die Vor- u. Nachteile? Zweck der Anweisungen/Funktionen: Übergabe eines einzelnen Wertes... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von #_Columbo_#, 13. August 2009.

  1. Vgl. 2er DLookUp-Varianten


    Hi,

    sind folgende Anweisungen gleichwertig, bzw. wo liegen die Vor- u. Nachteile?
    Zweck der Anweisungen/Funktionen: Übergabe eines einzelnen Wertes aus einer SQl-Abfrage an eine Variable.

    Code:
    und
    Code:
    1. Wird im ersten Fall eine Recordset geöffnet?
    2. Wird es auch wieder geschlossen?
    3. Ist (0) der Feldindex des Recordsets?

    :)
     
    #_Columbo_#, 13. August 2009
    #1
  2. Moin Frank,

    Hast Du beide Varianten mal ausprobiert ???

    ich bin nicht sicher, ob #1 überhaupt etwas liefert: die Prozedur OpenRecordset liefert eine Recordset-Objektvariable und die muss per 'set variable = ' zugewiesen werden. Auch die Schreibweise mit dem Index 0 habe ich noch nie gesehen.

    #2 liefert NULL, wenn das RecordSet leer ist aber wenn nicht?
    .fields(0) ist wiederum ein Objekt und die Zuweisung sollte per 'Set' erfolgen.
    Code:
     
    hcscherzer, 15. August 2009
    #2
  3. Hi Hans-Christian,

    beides funktioniert einwandfrei und bringen das gleiche Ergebnis
    Bei folgender SQL-Abfrage wird immer EIN Ergebnis geliefert:
    Code:
    liefert aber einen Fehler. Eigentlich logisch, da Fields ja kein definiertes Feld ist, sondern die Feld-Auflistung des Recordsets und da ist die !-Schreibweise IMHO falsch.
     
    #_Columbo_#, 15. August 2009
    #3
  4. Vgl. 2er DLookUp-Varianten

    Die zweite Variante ist die von Josef P., wenn ich mich nicht schwer irre, und ist deswegen alleine schon sauber. Beim leeren Recordset wird analog DLookup Null zurückgegeben.
    Bei der ersten Variante müsste man mal testen, wie der Umgang ist, wenn die SQL-Anweisung kein Ergebnis bringt. Das wird der einzige Knackpunkt sein.
     
  5. Hallo Eberhard,

    Da hast Du vollkommen recht und läuft natürlich auch hervorragend *Smilie
    Code:
    liefert NULL zurück, wobei tblLeer eine leere Tabelle OHNE Datensätze und Felder ist und daher die Funktion Max(ID) keinen Wert zurückgibt.
     
    #_Columbo_#, 15. August 2009
    #5
  6. Code:
    die eingeklammerte Zahl ist der Feldindex des Recordset. Hier der Filmtitel
    Code:
    hier die ID

    !!! Bei dieser Schreibweise ist die Angabe des Feldindexes (n) scheinbar unbedingt erforderlich, da sonst Fehlermeldung !!!
     
    #_Columbo_#, 15. August 2009
    #6
  7. Anm.:
    Code:
    steht für
    Code:
    weil Fields das Standardelement von Recordset ist.
    CurrentDbC.OpenRecordset(...) ... liefert als Ergebnis ein Recordset, das man im Prinzip ohne Umweg einer Variablen verwenden kann.
    symbolisch: [Recordset aus CurrentDbC.OpenRecordset(..)].Fields(0)

    Wenn es keinen Datensatz gibt, kann aber Recordset.Fields(0) nicht ausgewertet werden und es kommt zu einem Fehler.
     
    Josef P., 15. August 2009
    #7
  8. Vgl. 2er DLookUp-Varianten

    Hi Josef,

    Danke, sowas in der Art hatte ich auch vermutet (siehe #6)
    Hmmm.... NULL = Fehler ????? -> s. Posting #5
     
    #_Columbo_#, 15. August 2009
    #8
  9. Nein, NULL führt zu keinem Fehler. Nur wenn kein DS vorhanden ist, kommt es zu einem Fehler.
    z. B.:
    Code:
    oder
    Code:
     
    Josef P., 15. August 2009
    #9
  10. Jetzt musste ich doch einmal testen - und frage mich, was Du getestet hast.
    Ich scheitere schon daran, eine Tabelle ohne Felder anzulegen.

    Der gezeigte Test mit Max auf eine Tabelle ohne Datensätze ergibt in der Tat Null.

    Der Test einer ganz normalen Auswahlabfrage (ebenso typisch für DLookup) mit
    Code:
    ..., wobei ID 100 in der Tabelle nicht vorhanden ist, ergibt LZF 3021 (Kein aktueller Datensatz).
     
  11. Hi Josef,

    ich glaube ich hab's verstanden:
    Bei existierenden Tabellen MIT Datensätzen kann ich die Kurzvariante nehmen

    Wenn ich mir da mal nicht so sicher sein sollte, dann doch lieber die ausführliche Variante von Dir
     
    #_Columbo_#, 15. August 2009
    #11
  12. \@Eberhard,

    sorry das Du Dir die Arbeit gemacht hast, mein Problem nachzuvollziehen *upps

    Ich hatte in der Tat nur folgende Zeile angetestet gehabt und die lieferte halt NULL:
    Asche über mein Haupt *entsetzt
    Bei leeren Tabellen gibts also meist Fehlermeldungen bei dieser Version
     
    #_Columbo_#, 15. August 2009
    #12
  13. Vgl. 2er DLookUp-Varianten

    Die ausführliche Variante wird schnell kurz, wenn man sie in eine Hilfsfunktion steckt. (So wie im Beitrag #1 gezeigt)
    Wenn dann später nur noch diese Hilfsfunktion verwendet wird, ist es doch völlig egal wieviele Zeilen in dieser Hilfsfunktion stecken.

    Eine Funktion, die ich gerne einsetze:
    Code:
    =>
    Code:
     
    Josef P., 15. August 2009
    #13
  14. Wenn es mit Sicherheit den gewünschten Datensatz laut Kriterium gibt. Wer kann das schon sagen?

    Ein Test, ob ein bestimmter Datensatz/Eintrag vorhanden ist, sollte somit mit der Kurzvariante tunlichst unterlassen werden.

    Fazit: Die Langvariante ist universeller und in der Schreibarbeit kürzer, die einmalige Deklaration der Funktion (Kopieren in ein Modul) kann man als Aufwand vernachlässigen.
     
Thema:

Vgl. 2er DLookUp-Varianten

Die Seite wird geladen...
  1. Vgl. 2er DLookUp-Varianten - Similar Threads - Vgl 2er DLookUp

  2. DLookup (Datum) bei Datum-Zeit

    in Microsoft Access Hilfe
    DLookup (Datum) bei Datum-Zeit: Moin, wenn ich Datensätze mit Datum im Datumsformat per DLookup auslese, funktioniert alles. Wenn die Datensätze auch noch eine Uhrzeit beinhalten, werden sie ignoriert. Muss man in die Kriterien...
  3. Zitat per [vgl. ...] einfügen?

    in Microsoft Word Hilfe
    Zitat per [vgl. ...] einfügen?: Ich Grüße Euch! Für meine Diplomarbeit würde ich gerne eine Textpassage so zitieren: " text ist egal [vgl. Mü06]. " Weiss jemand von Euch ob das mit Word 2007 möglich ist? Gruss Chris 226183
  4. Verknüpfung 2er Datenblätter

    in Microsoft Excel Hilfe
    Verknüpfung 2er Datenblätter: Hallo zusammen, ich habe ein etwas aufwendigeres Problem: Ich habe 2 Tabellenblätter vorliegen. Im ersten Tabellenblatt erscheinen Fahrzeuge, die zu einer bestimmten Uhrzeit ankommen. Pro KFZ...
  5. 2er, 3r 4er Wiederholungen

    in Microsoft Excel Hilfe
    2er, 3r 4er Wiederholungen: Hallo, ich möchte herausfinden, wieviel 2er, 3er, 4er Wiederholungen es in solch einer Tabelle gibt, die natürlich viel länger ist. 07 19 22 27 48 05 20 26 44 50 08 11 36 37 45 13 16 37...
  6. Hilfe bei Verknüpfung 2er Kombinationsfelder

    in Microsoft Excel Hilfe
    Hilfe bei Verknüpfung 2er Kombinationsfelder: Hallo, ich hoffe Ihr könnt mir bei dem folgenden Problem helfen. Problem: Ich möchte 2 Kombinationsfelder miteinander verknüpfen, so dass wenn ich im Feld 1 etwas auswähle, im Feld 2 eine...
  7. Auswahl 2er Werte

    in Microsoft Excel Hilfe
    Auswahl 2er Werte: Hallo erstmal, ich bin gerade dabei eine Kalkulation zu erstellen und bin auf folgende Schwierigkeit gestoßen. Ich würde gerne eine Zelle so formatieren, dass ich im nachhinein immer den...
  8. GELÖST - 2er Potenz im Zellenformat darstellen

    in Microsoft Excel Hilfe
    GELÖST - 2er Potenz im Zellenformat darstellen: Hallo Gemeinde, bin auf der Suche nach der Lösung zu fogendem Porblem: Habe unter "Zellen formatieren" - "Zahlen" - "Benutzerdefiniert" #.### "gr/m2" eingetragen. Möchte aber -weil es...
  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