Daten aus vorigem Datensatz

Hallöchen,

ich habe ein Endlosformular. Wenn ich einen neuen Datensatz beginne, dann komme ich zuerst in ein Feld mit einem Datum.

Wenn schon Datensätze vorhanden sind, dann soll beim Hingehen in dieses Feld ebendieses mit dem Datum aus dem entsprechenden Feld des vorigen Datensatzes gefüllt werden.

Wie funktioniert das? Komme mal wieder auf keinen grünen Zweig und die Hilfe ist mal wieder nicht sehr hilfreich…

Grüße
Jörg

Hallo Jörg,

ist es das, was Du wolltest?

4.22 STANDARDWERT AUS VORHERIGEM DATENSATZ


P r o b l e m
Du möchtest einen gerade eingegebenen Wert in einem neuen Datensatz 
als Standardwert vorgeben, um ihn nur bei Bedarf ändern zu müssen.

L ö s u n g
Schreibe in der Ereignisprozedur "Nach Aktualisierung" 
des jeweiligen Feldes oder des Formulares:



_bei Textfeldern_

**Me!DeinFeldName.DefaultValue = "'" & Me!DeinFeldName & "'"**


_bei Datumsfeldern_

**Me!DeinFeldName.DefaultValue = CDbl(Me!DeinFeldName)**


_bei anderen Felddatentypen (Zahl, Ja/Nein etc.)_

**Me!DeinFeldName.DefaultValue = Me!DeinFeldName**

gefunden bei: http://www.donkarl.com/

gruss moritzbock

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

klappt aber nur bei Änderungen…
… nicht wenn man nur so durch die Datensätz blättert…

Bernd

1 Like

Hi moritzbock,

danke für deinen Tipp. Ist aber leider nicht ganz das was ich brauche. Wie auch Bernd schon geantwortet hat, nützt das nichts beim Durchblättern. D.h.: ich muss den Wert tatsächlich gerade eben vorher eingegeben haben. Das ist in meinem Fall aber nicht unbedingt so.

Ich habe das ganze inzwischen anders gelöst. Immer wenn ich nun in das Datumsfeld des NEUEN Datensatzes gelange, dann wird folgender Code ausgeführt:

Set Datenbank = CurrentDb
Set Datensatz = Datenbank.OpenRecordset(„SELECT … FROM GleicheDatenbankWieImFormular WHERE …;“)
Datensatz.MoveLast
Me.Datum = Datensatz(„Datum“)

Klappt ganz gut so. Trotzdem für deine Antwort (und für Bernds Antwort natürlich auch) einen herzlichen Dank!

Viele Grüße
Jörg

kleiner Tipp!!

Set Datenbank = CurrentDb

_________

Set Datensatz = Datenbank.OpenRecordset("SELECT … FROM

_________

GleicheDatenbankWieImFormular WHERE …;")
Datensatz.MoveLast
Me.Datum = Datensatz(„Datum“)

_____

Hi!

Erstens begehst du die Todsünde Nummer eins, wenn du solche Namen als Variablen verwendest die vielfach als Codewörter reserviert sind und zweitens kann dies gerade bei Access zu derben Problemen führen, vorallem wenn Elemente genauso genannt werden, wie die Felder von denen sie die Werte bekommen…

Bernd

1 Like

Me.Datum = Datensatz(„Datum“)

_____

Hi!

Erstens begehst du die Todsünde Nummer eins, wenn du solche
Namen als Variablen verwendest die vielfach als Codewörter
reserviert sind und zweitens kann dies gerade bei Access zu
derben Problemen führen, vorallem wenn Elemente genauso
genannt werden, wie die Felder von denen sie die Werte
bekommen…

Bernd

Hi Bernd…

hast vollkommen recht!! Ich hab das hier auch nur so reingeschrieben, um deutlich zu machen, worauf ich hinaus will. War jedoch vielleicht keine gute Idee, weil ja jetzt jemand der das ebenfalls liest auf den Trichter kommen könnte, seine Felder/Variablen ebenso zu benennen.
Du darfst mich jetzt also wüst beschimpfen, dass ich nicht genug nachgedacht habe, bevor ich die Zeilen geschrieben habe.

In Demut
Jörg :wink: