Neuigkeiten:

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

Mobiles Hauptmenü

Zum aktuellen Datum springen

Begonnen von Claudia1, Juni 28, 2021, 12:59:16

⏪ vorheriges - nächstes ⏩

Claudia1

Hallo zusammen,

ich bin eine völlige Anfängerin in Access und versuche mich gerade durchzukämpfen :-)

Ich starte ein Formular und in der ersten Spalte stehen Arbeitstage (01.01.2021 bis 31.12.2030).
Der Spaltenname lt. "Datum". Das Format ist dd.mm.yyyy (also bspw. 28.06.2021).
Da die Liste sehr lang ist, würde ich gerne beim Start in die Zeile des aktuellen Datums springen, so dass
ich nicht scrollen muss.

Ich habe diesen VBA Code gefunden:
Me.Recordset.FindFirst "Datum= Date()"
Aber das funktioniert nicht. Kann mir jemand helfen?

Danke und Grüße
Claudia

Beaker s.a.

Hallo Claudia,
ZitatAber das funktioniert nicht.
So, so ...
Und wie äussert sich das?

Me.Recordset.FindFirst "Datum = " & Date()
gruss ekkehard


P.S.: zur Vertiefung
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Claudia1

Hallo Beaker,

Danke für die schnelle Antwort.

Private Sub Form_Open(Cancel As Integer)
Me.Recordset.FindFirst "Datum = " & Date
End Sub

Der Code erzeugt einen Laufzeitfehler 3077. "Synthaxfehler in Zahl in Ausdruck."
Wo kann der Fehler liegen?

Maxel

Du musst den vorgeschlagenen Code auch richtig abschreiben/kopieren.

Es sollte auch so gehen:
Me.Recordset.FindFirst "Datum= Date"
Viele Grüße
Maxel

DF6GL

#4
Hallo,


stochern im Nebel und teils unzutreffende Vorschläge.

Zitat... in der ersten Spalte stehen Arbeitstage (01.01.2021 bis 31.12.2030).

Das sind keine Arbeitstage, das sind Datumsangaben. Und die müssen den Datentyp "Datum/Uhrzeit" haben, wenn man damit in der DB richtig umgehen will.

Unter der Voraussetzung, dass das Tabellenfeld "Datum" ( btw:  schlecht gewählter Name!) den Datentyp "Datum/Uhrzeit" besitzt (Formatierung spielt keine Rolle) und auch keinen Zeitanteil enthält, ist solches anzuwenden:


Me.Recordset.FindFirst "Datum = Date()"    (dies wurde anfänglich schon versucht, deshalb tippe ich auf einen Zeitanteil im Feld "Datum".)

oder
Me.Recordset.FindFirst "Datum = " & Format (Date,"\#yyyy-mm-dd\#")


Wenn ein Zeitanteil vorhanden ist, muss dieser berücksichtigt  werden:


Me.Recordset.FindFirst "Datum >= Date()  and Datum < Date()+1"



Die Klammern bei Date() sind zwingend in einem SQL-Statement, in VBA dagegen sind sie nicht erforderlich.
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