Hallo
Ich erstelle gerade eine Datenbank in der Dokumentiert werden soll. Funktioniert jetzt schon recht gut nur hab ich jetzt folgendes Problem.
Ich hab ein Formular auf dem Textfelder oben sind in denen die Tagesereignisse eingegeben werden und die anschliessend in einer Tabelle gespeichert werden (funkt auch :-)) und ein Kalendersteuerelement.
So nun folgendes:
Ich will wenn ein neuer Tag beginnt, dass die Textfelder im Formular wieder leer sind und neue Daten eingegeben werden könne.
Zb.: 9.3.2011: Heute ist das Passiert
10.3.2011: leeres Feld zum neu eintragen
Und natürlich wenn der 10.3.2011 ist will ich natürlich per Klick auf 9.3.2011 das vom 9.3. wieder lesen können^^
Ich hab zwar Ahnung von Access aber ich steh irgendwie total an....
Bleibt dein Formular über Tage hinweg offen und du möchtest um 0 Uhr sozusagen auf einen neuen Datensatz springen...
Das geht dann wohl nur mit einem Timer-Event.
In den Formulareigenschaften:
Zeitgeber auf z.B. 5000 setzen (entspr. jede 5 Sek.)
Und beim Event "Bei Zeitgeber" eine VBA-Routine anlegen:
Private Sub Form_Timer()
If CLng(Format(time, "hhmm")) < 7 Then
DoCmd.GoToRecord acDataForm, "MeinFormular", acNewRec ' Sofern deine Felder mit der Tabelle verknüpft sind
End If
End Sub
ok danke das klingt schon mal gut werds dann nacher ausprobieren :-)
aber kann ich dann wenn ich wieder auf das letzte datum klicke den dazugehörigen datensatz auch sehen?
Access speichert im Formular befindliche Daten beim Verlassen des Datensatzes, also auch wenn du auf einen Neuen/Leeren Datensatz springst.
so ich kapiers nicht hier mal der code
Private Sub Form_Load()
DoCmd.Maximize
Me!Kalender.Value = Date
Me.Filter = "Datum = #" & Format(Me![Kalender], "mm\/dd\/yyyy") & "#"
If IsNull(Datum) = False Then
Me.FilterOn = True
Else
DoCmd.GoToRecord , , acNewRec
Datum = Kalender.Value
End If
End Sub
Private Sub Form_Timer()
If CLng(Format(Time, "hhmm")) < 7 Then
DoCmd.GoToRecord acDataForm, "Form_Dienstbuch", acNewRec '
End If
End Sub
Private Sub Kalender_AfterUpdate()
Me.Filter = "Datum = #" & Format(Me![Kalender], "mm\/dd\/yyyy") & "#"
If IsNull(Datum) = False Then
Me.FilterOn = True
Else
DoCmd.GoToRecord , , acNewRec
Datum = Kalender.Value
End If
End Sub
wenn ich beim aktuellen datum bin funktioniert alles. in die textfelder kann ich auch reinschreiben geht auch.
wenn ich jedoch wieder zum datum zurückgehe auf dem kalender markiert er mir im debugger Me.Filter = "Datum = #" & Format(Me![Kalender], "mm\/dd\/yyyy") & "#"
laufzeitfehler 3058 nullwert in index oder primärschlüssel nicht möglich