Object Variable not set aber wo?

  • So und noch ne Frage. Es soll von einem Anfangsdatum ein Enddatum berechnet werden. (Nur zur Erklärung, ich muss beide Felder variable gestalten, deswegen der Aufwand.) Aber leider klappt das nicht


    Dim workspace As New NotesUIWorkspace
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim datestr As Variant
    Dim Istime As NotesDateTime
    Set db = session.CurrentDatabase
    Set uidoc = workspace.CurrentDocument
    datestr = Cdat(uidoc.FieldGetText( "DatAusleihe" ))
    Msgbox datestr
    lstime = Cdat(datestr)
    Msgbox Typename(Istime)
    Call Istime.AdjustMonth(1)
    Msgbox "2"
    Call uidoc.fieldsettext( "EndDatum", Istime.LocalTime)


    Ich bekomme immer die Fehlermeldung Object Variable not set.


    Hat jemand eine Idee?

  • Überprüf das mit dem Debugger. Der wird dir sagen, wo der Fehler ist

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    hattest Du aber in einen anderen Beitrag geschrieben ;)


    Willst uns heute ein bissel durcheinander bringen gel.
    Schau mal hier.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Okay, kurze Info zum Problem. Zuerst habe ichs mit @Adjust probiert aber das geht nur bedingt, weil ein Feld mit @Adjust ja nicht mehr bearbeitet werden kann. Deswegen musste ich mir ein Script ausdenken, das es möglich macht jederzeit den berechneten Wert auch manuell ändern zu können.


    Jetzt bekomme ich nach der MsgBox datestr immer den Fehler Objekt varibale not set ich habe mit dem Debugger nachgeschaut und festgestellt, dass durch CDat der Datentyp von datestr nicht geändert wird.


    Dann bin ich drauf gekommen, dass man den Notesdatetime zu einem String konvertieren muss. Aber ich weiß nicht wie.

    • Offizieller Beitrag

    benutze mal
    Dim Istime As New NotesDateTime (datestr)



    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Kann es sein, daß das Problem viel simpler mit Vorgabewerten in den beiden Feldern zu lösen ist ?


    DatAusleihe hat beim Erstellen des Datensatzes als Vorgabewert @Today und EndDatum bekommt @Adjust(@Today;0;1;0;0;0;0).


    Wenn die Verbuchung der Ausleihen häufig erst an einem der Folgetage stattfindet, macht man über das Eingabefeld noch drei Schaltflächen "-1", "-2", "-3", mit denen man das Feld der Ausleihe auf gestern, vorgestern oder vorvorgestern setzt
    FIELD DatAusleihe:= @Adjust(@Today;0;0;-1;0;0;0);
    FIELD EndDatum:=@Adjust(DatAusleihe;0;1;0;0;0;0);
    @True


    Ich kann alle Felder editieren, wie ich will, und habe dennoch schnell und einfach eine "vernünftige" Vorbelegung.