Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Werte aus dem letzten eingegebenen Datensatz in einem Formular als Standardwert

Begonnen von maxster, Februar 19, 2019, 08:22:08

⏪ vorheriges - nächstes ⏩

maxster

Hallo Access Community,

einmal vorweg ich bin blutiger Anfänger in Access und das ist meine erste Datenbank.
Ich habe folgendes Problem ich benutze ein Formular zur Dateneingabe von Lohnscheinen bei uns im Unternehmen, dort werden Daten wie Auftrag, EDVNr., Datum, Personalnummer, Personenanzahl etc. eingegeben.

Nun kommt es auch dazu das auf einem Lohnschein mehrere Personen aufgeführt werden, um mir das Leben bei der eingabe zu erleichtern lasse ich wenn die Personenanzahl >1 nach der Eingabe des Datensatzes ein neues Formular öffnen das als Standardwert in allen Textfeldern =DomLetzterWert("[Auftrag]";"[tb_Daten]") hinterlegt hat.
die Personalnummer ausgenommen dadurch muss ich nur noch für einen neuen Datensatz die Personalnummer eingeben.
Leider Funktioniert das nur bedingt da DomLetzterWert nicht sauber funktioniert und zwischendurch nicht den zuletzt eingegeben Datensatz benutzt. Dann muss ich die Datenbank komprimieren und reparieren damit die Funktion wieder läuft.
in allen Formularen ist die Dateneingabe mit Ja hinterlegt.
Die Tabelle tb_Daten hat auch ein ID Feld mit Autowert.
Kann mir bitte jemand helfen ich bin für alle Alternativen Dankbar.

ebs17

Zitatda DomLetzterWert nicht sauber funktioniert
Etwas "letztes" benötigt so etwas wie eine definierte Reihenfolge in nötigen Moment. Das ist anders als wie in einem Recordset oder einer Exceltabelle in DB-Tabellen und Abfragen nicht so sicher darstell- und verwendbar.

Für temporäre Sitzungen: Standardwert aus vorherigem Datensatz

Wenn Du auf letzte Eingaben über ein Schließen von Formular und DB hinaus zugreifen wolltest, müsstest Du
- als Basis für einen Tabellenzugriff ein objektives Merkmal haben, etwa die maximale ID, einen maximalen Zeitstempel o.ä. oder
- Formulareingaben explizit zusätzlich in einer Memorytabelle ablegen und diese Ablagen bei einem neuen Datensatz dann jeweils zurückladen.
Mit freundlichem Glück Auf!

Eberhard

maxster

Hallo esb17,

erstmal vielen Dank für deine Antwort und deine Erklärung.
4.22 Standardwert aus vorherigem Datensatz habe ich schon einmal probiert   Me!MeinSteuerelement.DefaultValue = Chr$(34) & Me!MeinSteuerelement & Chr$(34)   wäre ja theoretisch richtig nur funktioniert das ja nicht in einem Formular was ich öffne und noch keine Eingaben dort gemacht habe. Oder kann man mit dem Befehl auf das Steuerelement aus dem bereits geöffnetem Formular zugreifen?


DF6GL

Hallo,

die Antwort hast Du doch schon erhalten...


Beim erneuten Öffnen des Formulars muss der Wert eben aus der dahinterliegenden Tabelle oder einer entspr. Hilfstabelle entnommen und der Form-Eigenschaft "Standardwert" zugewiesen werden, am besten beim Form-Ereignis "Beim Laden".
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access