Rouven: MS-Access: "Neuer Datensatz" auslösen

Hello,

ich kämpfe gerade mit MS-Access. Ich habe ein Formular, das auf einer Tabelle arbeitet. Durch Access werden im unteren Bereich die Navigationsschaltflächen zur Verfügung gestellt, also erster Satz, vorheriger, nächster, letzter und auch neuer.
Nun kennen viele das Problem, dass sich Anwender einfach weigern auf irgendwelche Schaltflächen zu klicken, die sich in der Leiste verstecken, und lieber einen schönen großen beschrifteten Button hätten.
Nun kommt mein Problem: Access überwacht sehr schön den Dirty-Zustand des Formulars, d.h. wenn man die vorhandene "Neu"-Schaltfläche nimmt, nichts einträgt und den Datensatz wieder verlässt, dann ist alles so, als wäre nichts gewesen.
Frage 1: Schaffe ich es, dem Formular zu sagen "gehe zur Bearbeitung des neuen Datensatzes", d.h. einfach so zu tun, als ob jemand auf die Schaltfläche geklickt hätte?

Frage 2: Falls das nicht gelingt, hat jemand den groben Mechanismus parat, mit dessen Hilfe man dieses Verhalten nachbauen kann? Mein aktuelles Vorgehen ist "hallo Formular, gib mal dein Recordset, füge da mal bitte einen neuen Satz an und geh da hin" - heißt aber, wenn der Benutzer sofort wieder auf zurück klickt, dann hab ich den leeren Datensatz. Welche Events/Eigenschaften bieten sich da neben .NewRecord und .Dirty an um den ggf. manuell wieder zu löschen.

Vielen Dank!

MfG
Rouven

--
-------------------
There's no such thing as a free lunch  --  Milton Friedman
  1. Hallo Rouven,

    Frage 1: Schaffe ich es, dem Formular zu sagen "gehe zur Bearbeitung des neuen Datensatzes", d.h. einfach so zu tun, als ob jemand auf die Schaltfläche geklickt hätte?

    klar geht das. Ein einfaches Beispiel:

    Nette (unnötige) Schaltfläche.
    ClickHandler bekommt im wesentlichen die Anweisung:

    DoCmd.GoToRecord, , acNewRec

    Das bekommst Du übrigens auch mit dem Schaltflächen-Assistenten hin.
    Diese Anweisung kannst Du übrigens auch im Form_Open-Handler einbauen.
    Dann landet man beim Öffnen des Formulars bereits beim neuen Datensatz.

    Du kannst das Formular öffnen mit der Option zum Anfügen von Datensätzen:

    DoCmd.OpenForm <Formularname> , acNormal, , , acFormAdd

    Das sind die erten beiden, die mir eingefallen sind - es gibt bestimmt noch mehr.

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz,

      DoCmd.GoToRecord, , acNewRec

      ahhh - dieses blöde DoCmd-Objekt. Stimmt, das gab's ja auch noch - man man man, wie furchtbar, vor vielen Jahren wusste ich sowas mal...

      Danke dir vielmals!

      MfG
      Rouven

      --
      -------------------
      When the only tool you've got is a hammer, all problems start to look like nails.
      1. Hallo Rouven,

        DoCmd.GoToRecord, , acNewRec
        ahhh - dieses blöde DoCmd-Objekt. Stimmt, das gab's ja auch noch - man man man, wie furchtbar, vor vielen Jahren wusste ich sowas mal...

        hehe. DoCmd ist irgendwie furchtbar, find' ich auch.

        Da ich mich in den letzten Wochen mit der Erweiterung eines etwas älteren Access-Projektes herumgeschlagen habe, ist mir die Technik wieder geläufiger :-)
        Ich war aber auch erstaunt, wieviel ich vergessen hatte (und noch habe) ...

        Freundliche Grüße

        Vinzenz

  2. Hello,

    arbeitest Du mit VBA oder mit dem Makro-Assistenen?
    Für kleinere Anwendungen ist der nämlich ziemlich leistungsstark.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hello,

      arbeitest Du mit VBA oder mit dem Makro-Assistenen?
      Für kleinere Anwendungen ist der nämlich ziemlich leistungsstark.

      ich arbeite mit VBA, weil es mir leichter aus den Fingern fließt. An einigen Stellen brauch ich so ein paar Sachen, da gibt sämtliche vorhandene Logik schlichtweg auf, Entfernungen zwischen Koordinaten z.B.

      MfG
      Rouven

      --
      -------------------
      "I wish it need not have happened in my time" - "So do I, and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us."  --  J.R.R. Tolkien: "The Lord Of The Rings: The Fellowship Of The Ring"