August 03, 2021, 15:48:02

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

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"
Gruß
Maxel

DF6GL

Juni 28, 2021, 19:19:17 #4 Letzte Bearbeitung: Juni 28, 2021, 19:28:47 von DF6GL
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.