Office: (Office 2010) docmd.findrecord

Helfe beim Thema docmd.findrecord in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo gibt es mit FindRecord explicit die Möglichkeit, eine bestimmte ID anzusteuern? Mir ist nämlich aufgefallen, dass, wenn ich z.B. nach ID 3054... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Gudula, 12. November 2011.

  1. docmd.findrecord


    Hallo

    gibt es mit FindRecord explicit die Möglichkeit, eine bestimmte ID anzusteuern? Mir ist nämlich aufgefallen, dass, wenn ich z.B. nach ID 3054 suche, kann ich diesen Datensatz nicht ansteuern denn es wird zuerst 30547 angesteuert.

    Das Problem taucht jetzt seit Ac2010 auf, d.h., ich kann die 1 bis 4-stelligen IDs nur ansteuern, wenn diese Zeichenfolgen nicht in einer 5 oder 6 stelligen ID vorhanden sind.

    Ich habe jetzt auch schon alle möglichen Variationen probiert. Nun meine Frage, ist das überhaupt noch möglich, eine expliziten Datensatz über Findrecord zu finden?

    Code:
    Ich würde mich über eine Antwort sehr freuen.

    :)
     
  2. Hi,

    das Argument acStart sorgt für dieses Verhalten. Es findet alle Treffer, die mit dem Suchbegriff beginnen.

    Wenn es um den ganzen Wert geht, ersetze acStart durch acEntire.

    Nebenbei: Docmd.FindRecord ist die VBA-Variante des Bearbeiten/Suchen-Befehls. Das ist letztlich ein Befehl aus der Textverarbeitung. Er nutzt keinerlei Datenbanktechniken, d.h. er ist lahm. Es gibt besseres, z.B. Suche per Recordset und Bookmark.
     
    Atrus2711, 13. November 2011
    #2
  3. Hi

    vielen Dank für die Antwort.

    Ich habe jetzt mal etwas nach Recordset und Bookmark gesucht, ich bin mir jetzt allerdings nicht sicher, ob ich es richtig verstehe und etwas eingerostet, was Access betrifft.

    Ich habe ein Suchformular welches mir nach Suche eine Reihe von Datensätzen anzeigt. Gehe ich mit dem Datensatzanzeiger auf den Datensatz, den ich angezeigt haben möchte und löse das Click-Event eines Buttons aus, stellt er mir das Adresseformular in den Vordergrund und gesuchte Datensatz ist im Fokus, also kein Filter oder eine Bedigung "... where id=123". Das möchte ich jetzt auch nicht gerne verändern.

    Was passiert den beim Bookmark? Ich habe jetzt mal etwas versucht zu testen. Hast Du mal ein Beispiel für mich?

    Code:
     
  4. docmd.findrecord

    Hi,

    da hast du doch ein prima Beispiel... was fehlt denn noch?

    Ein Bookmark ist ein Lesezeichen im Recordset. Solange sich das Recordset nicht ändert, kannst du da z.B. auch mehrere Stellen markieren und hin- und herspringen.

    Es ist inder Wirkung nicht revolutionär anderes als der bisherige Befehl, aber es nutzt Indizes und erlaubt ein Suchen "im Hintergrund".
     
    Atrus2711, 13. November 2011
    #4
  5. Hi

    naja, es funktioniert nicht. *Smilie

    Also [kdnr] ist das datenfeld der Tabelle im Adressformular, welches sich ja nach Click öffnet.

    Forms![FoAdressen]![tfkdnr] ist der Name des Textfeldes des Adressformulars und Forms![FoSuchliste]![tfkdnr] ist der Name des Textfeldes des Suchformulars.

    Ändere ich jetzt den Code auf

    strCriteria = "[kdnr]= Forms![FoSuchliste]![tfkdnr]"

    kommt ein Laufzeitfehler 3070

    Forms![FoSuchliste]![tfkdnr] würde das Modul nicht als gültigen Feldnamen anerkennen.
     
  6. Das strCriteria muss ein gültiges, "fertiges" SQL-Kriterium sein. In deinem Fall heißt das, dass der Formularbezug aufgelöst werden muss.

    Etwa so:
    Code:
    Wenn das abläuft, erhält strCriteria dann z.B. den Wert "[kdnr] = 3782".
     
    Atrus2711, 13. November 2011
    #6
  7. Hallo

    das sollte eigentlich so sein, aber Textfeld wird nicht als gültiges Datenbankmodul erkannt, sh. Fehlermeldung. Aus dem Grunde habe ich mal eine gültige id eingefügt, sh. mein erstes Script. In dem Falle kommt keine Fehlermeldung aber es wird auch nicht der Datensatz gefunden.

    [kdnr] ist jetzt der Spaltenname, aber nicht eine gültige Abfrage.

    Ich muss mich mal damit beschäftigen, ich verstehe das noch nicht, nochmal etwas lesen, was da jetzt ausgelöst wird und was da passiert. Ich habe zwar einige Bücher, aber da steht zu dem Thema nicht viele drin. Naja *Smilie
     
  8. docmd.findrecord

    Hi,

    da ruft ein Form ein anderes auf, aber du suchst im aufrufenden Form bzw. nutzt dessen Recordset.

    Try:
    Code:
     
    Atrus2711, 15. November 2011
    #8
  9. Hi Martin,

    ja, das mit dem festen Wert funktioniert. Dank für die Hilfe.

    Aber letztlendlich komme ich nicht drumrum, den Wert aus dem 1. Formular zu übertragen und da kommt immer wieder die Fehlermeldung, wie oben beschrieben.

    Ich habe folgendes versucht:

    strCriteria = "[kdnr]= Me![kdnr]"

    und

    strCriteria = "[kdnr]= Me!FoSuchliste.kdnr" 'Textsuche mit festem Wert


    docmd.findrecord [​IMG]


    Wie bekäme ich den Wert denn jetzt vom Suchformular übertragen? Das Suchformular schließt sich ja nicht, es geht nur in den Hintergrund. Das Feld müsste doch gefunden werden? Oder habe ich einen Denkfehler?*upps
     
  10. \@Gudula
    Warum orientierst Du Dich hinsichtlich der Syntax nicht an #6? Also:
    Code:
     
  11. Hi

    ich schäme mich wirklich, wie kann ich nur so einen "Anfängerfehler" machen. Sorry, ich habe die letzten 2 Jahre viel mit dem SQLServer und Parametern und Linq to sql gearbeitet und dabei wirkich komplett eingerostet, wenn es um ein einfaches Recordset geht.

    Vielen Dank fürs auf die Sprünge helfen. Das hat erst mal wieder gesessen. *Smilie
     
Thema:

docmd.findrecord

Die Seite wird geladen...
  1. docmd.findrecord - Similar Threads - docmd findrecord

  2. DoCmd RunSql liefert Fehler in einer Funktion

    in Microsoft Access Hilfe
    DoCmd RunSql liefert Fehler in einer Funktion: Hallo Leute. Mit der folgenden Code in "Private Sub" gibt es kein Problem. Alles läuft super. Ich bruche diesen Code als Function, damit ich es aus einem Makro ausführen lassen möchte (oder...
  3. DoCmd Export nach Excel 2016

    in Microsoft Access Hilfe
    DoCmd Export nach Excel 2016: Guten Morgen! Ich möchte gerne erreichen, dass die Abfrage "Zusammenfassung" nach Schließen eines Formulars nach Excel exportiert wird. Dazu habe ich folgenden Code: Code: Private Sub...
  4. DoCmd Click nächste Registerkarte

    in Microsoft Access Hilfe
    DoCmd Click nächste Registerkarte: Hallo Leute, ich habe ein Navigationsformular mit mehreren Reitern. Im 1. Formular gibt man Daten ein. Am Ende dieses Formulars ist dann ein Knopf der die Datenspeichert und über eine Select Case...
  5. DoCmd -> Laufzeitfehler 2486

    in Microsoft Access Hilfe
    DoCmd -> Laufzeitfehler 2486: ich habe bei einer Datenbank immer wieder mal das Problem das keine "DoCmd" Anweisungen ausgeführt werden können. Es erscheint der Laufzeitfehler 2486. Dieses hat dann auch zur Folge das sich...
  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