Neuigkeiten:

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

Mobiles Hauptmenü

Datum muss im zwischen zwei Daten liegen - sonst Fehlermeldung

Begonnen von Lilalaunebärchen, Juni 21, 2010, 10:39:23

⏪ vorheriges - nächstes ⏩

Lilalaunebärchen

Hallo,
wir (fünf Mädels) brauchen Hilfe bei einem Accessprojekt.
In einem Unterformular sind vier Felder: Geplanter Beginn, Geplantes Ende, Tatsächlicher Beginn, Tatsächliches Ende.
Wir brauchen eine Fehlermeldung (Bedingung).
"Der eingegebene "Tatsächliche Beginn" muss im geplanten Zeitraum liegen. Ansonsten soll eine Fehlermeldung erscheinen.
Wir haben es erst mit einer Abfrage versucht, denken aber, dass es mit einem Makro (beim Verlassen) funktionieren könnte.

Kann uns jemand helfen und sagen, wir wir die Bedingung im Makro formulieren müssen.

Liebe Grüße,
das Lilalaunebärchen. 

T417

Probiert es doch einfach mit einer MsgBox zum davorschalten/dahinterschalten.
Wie hier nachzulesen:
http://www.access-o-mania.de/forum/index.php?topic=4995.0

So eine Suchfunktion ist echt praktisch. ;)
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

ich denke mal, die Mädels brauchen eine Formulierung der Bedingung, die die Plausibilität prüft..


Tipps:

--In Feld(und Objektnamen) Leer- und Sonderzeichen DRINGEND vermeiden.

--Auf Makros verzichten.

-- Abfragen fragen Tabellendaten ab. Zwar auch nach irgendwelchen (mögl.) Kriterien, aber können keine Formularfelder "abfragen"

-- für Datumsfelder den Datentyp "DAtum/Uhrzeit" in der TAbelle verwenden.

-- mögliche Lösung:  Ereignisprozedur "Vor Aktualisierung" des Textfeldes "TatsaechlicherBeginn":



Sub TatsaechlicherBeginn_BeforeUpdate(Cancel as Integer)
If cdate(Me![TatsaechlicherBeginn]) < cdate(Me![GeplanterBeginn]) or cdate(Me![TatsaechlicherBeginn]) > cdate(Me![GeplantesEnde])  then

Msgbox "falsches Datum"
Cancel =true
Me![TatsaechlicherBeginn].Setfocus
Me.Undo
End If

End Sub

oma

Hallo

und evt. auch noch Beginn und Ende gegenseitig abprüfen; mit "vereinfachten" Feldbezeichnungen (siehe auch Hinweis von Franz)

Private Sub Beginn_AfterUpdate()
    If Me!Beginn < Me!Planbeginn Or Me!Beginn > Me!Ende Or Me!Beginn > Me!PlanEnde Then
        MsgBox "Datum Beginn stimmt nicht!"
    Me!Beginn.SetFocus
    End If
End Sub


Private Sub Ende_AfterUpdate()
    If Me!Ende > Me!PlanEnde Or Me!Ende < Me!Beginn Or Me!Ende < Me!Planbeginn Then
        MsgBox "Datum Ende stimmt nicht!"
    Me!Ende.SetFocus
    End If
End Sub


Gruß Oma
nichts ist fertig!