Neuigkeiten:

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

Mobiles Hauptmenü

Differenz zwischen zwei Datums

Begonnen von jojo92, Juli 31, 2012, 09:12:12

⏪ vorheriges - nächstes ⏩

jojo92

Hallo,

mein Problem ist, dass ich zwei Datums  in der Zukunf thabe. DIese werden in Texfelder eingetragen und sollen eine DIfferenz von 3 Tagen haben. Wie kann ich das realisieren. Bin echt verzweifelt und suche schon seit Tagen die Lösung. ??? ???

Danke schonmal für eure hilfe.


gruß jojo92

MzKlMu

Hallo,
als Steuerelementinhalt für das 2. Datumsfeld:

=DatumsFeld1 + 3

Wenn das imer 3 Tage sind, muss das 2. Datum nicht gespeichert werden.
Gruß Klaus

jojo92

super danke für die schnelle antwort.

Wobei ich hab mich leider nicht genau genug ausgedrückt. DIe Differenz soll immer MINDESTENS  3 Tage betragen. ALso wenn ich Zwei Datums eintrage, die nur einen Tag auseinander liegen, soll eine Fehlermeldung erscheinen

MzKlMu

Hallo,
mit folgendem Code sollte das klappen.
Private Sub Datumsfeld2_BeforeUpdate(Cancel As Integer)
    If Me.Datumsfeld2.Text < Me.Datumsfeld1 + 3 Then
        MsgBox "Datum2 zu niedrig"
        Cancel = True
    End If
End Sub
Gruß Klaus

jojo92

danke,

stimmt das echt so:

Private Sub Text7_BeforeUpdate(Cancel As Integer)
   If Me.Text7.Text < Me.Text5 + 3 Then
       MsgBox "Datum2 zu niedrig"
       Cancel = True
   End If
End Sub

weil jetzt hab ich immer die Fehlermeldung,dass Datum2 zu nierdrig ist.  ??? 
"Bei mir soll Text7 drei Tage weiter in der Zukunft sein"
wäre super wenn du dir das nochmal anschauen kannst MzKlMu

MzKlMu

Hallo,
das sollte funktionieren. Hast Du auch die richtigen Felder in der richtigen Reihenfolge?
Gruß Klaus

jojo92

hallo,

denke schon  was mich nur wundert, dass bei text7 noch ei .text steht und beim text5  nicht

MzKlMu

Hallo,
denke schon ist keine Antwort. Entweder richtig oder falsch. Das ist mit einem denke schon nicht getan.

Die Eigenschaft Text wird nur für das Feld gebraucht das das 2. Datum enthält.
Gruß Klaus

jojo92

#8
ok da haben sie recht.

es funktioniert nicht. egal welche Datumabstände ich eintrage.

text5 ist bei mir freigabedatum und text7 das verschrottungsdatum. Und das Verschrottungsdatum soll mindestens 3 Tage nach Freigabedatum sein. Alles andere soll eine fehlermeldung  melden.
langsam verzweifel ich  

könnte es sein, dass die Schreibweise von dem Datum entscheidend ist?

Jonny

Hallo,

also der Code von MzKlMu scheint OK zu sein (wie fast immer).

Irgendwie hast du deine Feldnamen durcheinander.
Schau mal bei den Eigenschaften der Felder
- Register Alle
- erste Zeile Name
Da muss halt Text7 und Text5 stehen.
Datumswerte sind immer Ganzzahlen die unterschiedlich formatiert werden können.
Also kann das Format nicht zum Fehler führen.

versuche aber auch mal:
  If Me.Text7 < Me.Text5 + 3 Then

Gruß

Johann

jojo92

hallo jonny,
ich glaube auch dass der fehler bei mir liegt und nciht bei MzklMu. Aber noch habe ich ihn nicht gefunden.

also text5 und Textt7 habe ich nochmal überprüft und sind die richtigen Felder.  Dein beispiel  habe ich auch versucht, aber dort ist egal was für Datums ich eintrage, kommt keine fehlermeldung :/..

Also ich gehe zurzeit auf Textfeld7 und klicke rechte Maustaste. Dann klicke ich auf Ereignis und öffne so VBA. Unter Private Sub TExt7_ BeforeUpdate (Cancel as Integer) geben ich dann folgende If-bedingung ein:

If Me.Text7.Text < Me.Text5 + 3 Then
        MsgBox "Verschrottungsdatum muss mindestens 3 Tage vom Freigabedatum entfernt sein"
        Cancel = True
    End If

Mit End sub beende ich diesen Abschnitt.
Was kann ich daran falsch gemacht haben :D

danke euch nochmals

Jonny

Hallo,

ich habe das gerade mal nachgestellt.
Felder Text5 und Text7 beide mit Format tt.mm.jjjj.
der Code
Private Sub Text7_AfterUpdate()
    If Me!Text7 < Me!Text5 + 3 Then
        MsgBox "Verschrottungsdatum muss mindestens 3 Tage vom Freigabedatum entfernt sein"
        Cancel = True
    End If


End Sub
funktioniert einwandfrei.
Bitte beachte das ich bei den Feldern immer me! habe

Gruß

Johann

DF6GL

Hallo,



eher so:

Private Sub Verschrottungsdatum_BeforeUpdate(Cancel As Integer)
If IsNull(Me!Freigabedatum) Or IsNull(Me!Verschrottungsdatum.Text) Then
MsgBox "Was soll der Quatsch?"
Exit Sub
End If

    If CDate(Me!Verschrottungsdatum.Text) < CDate(Me!Freigabedatum) + 3 Then
    MsgBox "Verschrottungsdatum zu niedrig"
    Cancel = True
    End If
End Sub

jojo92

Vielen Dank euch alle.
Es  funktioniert!!!!! :) :)