Datum vergleichen

  • Hi,
    mein Problem:
    eine unserer Datenbanken, benutzt die Adressdaten einer anderen, damit die Adressdaten immer korrekt sind wird beim öffnen eines Dokuments die Adresse mit der AdressDB abgeglichen. Allerdings soll das nur geschehen, wenn der Eintrag in der AdressDB neuer ist. Dazu speichere ich in der ersten DB in einen unsichtbaren feld den note.LastModified Wert aus der AdressDb und vergleiche ihn mit dem aktuellen beim öffnen des Dokuments.
    Obwohl beide gleich sind funktiert die if-Abfrage ums Verrecken nicht! Sowohl als String als auch als Datum.


    Quelltext(verkürzt):


    Sub Postopen(Source As Notesuidocument)
    Set w = New NotesUIWorkspace
    Set doc = source
    Set note = source.Document
    Dim wert As Variant
    Dim s As New NotesSession
    Dim v,vo As NotesView
    Dim adb As NotesDatabase
    Dim item1, itemxx As NotesItem
    Feld_AdressDB = doc.FieldGetText("AdressDB")
    Feld_ContDoc = doc.FieldGetText("ContDoc")
    Feld_CompDoc = doc.FieldGetText("CompDoc")
    Feld_ContMod = doc.FieldGetText("ContMod")
    Feld_CompMod = doc.FieldGetText("CompMod")
    Set adb=s.GetDatabase( "", Feld_AdressDB )
    If note.ContDoc(0) <> "" Then
    If adb.title <> "" Then
    Set adoc = adb.GetDocumentByUNID(Feld_CompDoc)
    wert = adoc.Lastmodified
    If Cdat(wert) <> Cdat(Feld_CompMod) Then
    ... Felder neu setzten
    EndIf
    Set adoc = adb.GetDocumentByUNID(Feld_ContDoc)
    wert1 = adoc.Lastmodified
    If wert1 <> Feld_ContMod Then
    ... Felder neu setzten
    End If
    End If
    End Sub


    Wenn ich mir die werte mit z.B. MessageBox() anzeigen lasse bekomme ich wert="16.06.03 15:09" und für Feld_CompMod="16.06.03 15:09".
    Trotzdem sind die werte nicht gleich - WARUM?

  • salve,


    du solltest die datumsprüfung mit objekten der klasse "notesdatetime" machen. D. h. du brauchst noch 2 zusätzliche variablen:


    objDat1 as NotesDateTime
    objDat2 as NotesDateTime


    diese beiden objekte initialisierst du mit deinen "datumstrings":
    set objDat1 = new NotesDateTime(wert1)
    set objDat2 = new NotesDateTime(Feld_ContMod)


    Jetzt kannst du die beiden Datumswerte vergleichen:


    if wert1.TimeDifference(Feld_ContMod) > 0 then


    else


    end if



    cya

  • Hi,
    habe auch ein Problem, zwei verschiedene Daten miteinander zu vergleichen. Ich möchte einen Agenten laufen lassen, der immer am ersten eines Monats ausgeführt wird. Dieser Agent soll aber das Datum vom Tag davor bekommen, damit er alle Aufträge, die am "30/31" eines Monats beendet sind ausliest. Das Datum welches ich vergleichen will ist ein "Date/Time" Feld. Habe schon gegooglet und nichts brauchbares gefunden. Wäre nett, wenn ihr mir auf die Sprünge helfen könntet. Vielen dank im vorraus.

  • Joah habs gefunden. :)


    Dim AgentDateTime As NotesDateTime
    Dim modifiedDateTime As NotesDateTime


    Set AgentDateTime = New NotesDateTime( "Today" )
    Set modifiedDateTime = New NotesDateTime( "" )
    Call AgentDateTime.AdjustDay( -1 )


    modifiedDateTime.LSLocalTime = doc.Abschlag
    If AgentDateTime.TimeDifference(modifiedDateTime) > 0 Then
    ....


    "Property must be of type Date"


    Komischerweise ist doc.Abschlag aber ein Datumsfeld....