Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Beate1953 am März 14, 2014, 11:46:36

Titel: VBA-Code für "DatensatzSpeichern"
Beitrag von: Beate1953 am März 14, 2014, 11:46:36
Hallo,

ich habe öfters das Problem, dass ich im VBA-Code den aktuell angezeigten DS speichern will. Da ich den VBA-Code dafür nicht kenne, rufe ich aus dem VBA-Code einen Macro auf, der mit AusführenMenübefehl, DatensatzSpeichern den DS speichert. Danach geht der VBA-Code weiter. Da dies aber nicht sehr elegant ist, dauernd zwischen VBA und Makro hin- und herzuspringen, hätte ich gerne den VBA-Code für DatensatzSpeichern.

Vielen Dank im Voraus
Beate1953
Titel: Re: VBA-Code für "DatensatzSpeichern"
Beitrag von: bahasu am März 14, 2014, 12:03:08
Hi,

DoCmd.RunCommand acCmdSaveRecord

Harald
Titel: Re: VBA-Code für "DatensatzSpeichern"
Beitrag von: ebs17 am März 14, 2014, 13:10:14
Me.Dirty = False

Das DoCmd-Objekt benutzt die gleichen Makrobefehle wie die Aufrufe aus dem Menü/Ribbon und natürlich die Makros selber.
Titel: Re: VBA-Code für "DatensatzSpeichern"
Beitrag von: database am März 15, 2014, 11:54:55
Hallo,

arbeitest du mit ungebundenen Formularen oder warum bzw. bei welcher sonstigen Aktion speicherst du mit VBA den aktuellen DS?
Titel: Re: VBA-Code für "DatensatzSpeichern"
Beitrag von: Beate1953 am März 25, 2014, 08:39:50
Hallo,

ich arbeite mit einigen ungebundenen Feldern auf einem gebundenen Formular.

Das mit DoCmd.RunCommand acCmdSaveRecord klappt prima. Das mit Me.Dirty=False werde ich noch ausprobieren (müßte es nicht True heißen, damit Access denkt, es sei noch nicht gespeichert?).

Vielen Dank schon mal
Beate1953
Titel: Re: VBA-Code für "DatensatzSpeichern"
Beitrag von: MzKlMu am März 25, 2014, 09:11:08
Hallo,
die ungebundenen Felder werden aber mit DoCmd.RunCommand acCmdSaveRecordauch nicht gespeichert. Und mit Me.Dirty=Falseauch nicht.
Titel: Re: VBA-Code für "DatensatzSpeichern"
Beitrag von: database am März 25, 2014, 10:50:04
Hallo,

somit bleibt dir nur die Möglichkeit, die Feldwerte in einen SQL-String einzulesen oder über das Recordset in die Tabelle zu verfrachten.
Wobei sich mir die Frage stellt, warum du ungebundene Felder auf einen gebundenen Formular verwendest - wäre es denn nicht einfacher, diese Felder auch gleich an die Datenherkunft zu binden?