Neuigkeiten:

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

Mobiles Hauptmenü

Datensatz an Kalendersteuerelement angleichen

Begonnen von ToBi101, März 09, 2011, 21:37:09

⏪ vorheriges - nächstes ⏩

ToBi101

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....

imp666

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

ToBi101

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?

imp666

Access speichert im Formular befindliche Daten beim Verlassen des Datensatzes, also auch wenn du auf einen Neuen/Leeren Datensatz springst.

ToBi101

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





ToBi101

#5
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