Hallo Werner,
Ich bin davon ausgegangen, dass DATE ein Datum an die "Variable" unoDate übergibt.
Das ist korrekt
) DATE() ist eine vordefinierte Funktion in LO/OO Basic und liefert das aktuelle Systemdatum als Typ String zurück, also so etwas wie "15.3.2020".
Schreibst Du dieses rechts von einer Zuweisung ("=" ) wird es der links stehenden Variablen zugewiesen, vorausgesetzt, die Variablentypen passen zusammen.
Eine Variable vom Typ variant (so etwas wird immer automatisch erstellt, wenn explizit kein Typ angegeben wird oder der Typ "variant" verwendet wird) wird dabei immer auf den zugewiesenen Typ (rechte Seite) angepasst. Das ist eben Basic.
Schreibst Du also "nur" unoDate=DATE , dann wird der Typ von unoDate ein String. Hast Du den aber schon andersweitg definiert (bei dir im Code als Struct - und ein Struct ist ein Objekttyp) - dann passt das nicht.
Kann sein, dass in Deinem Code die Variable geändert intern wurde...?? wer weiss.
Der Ausdruck "oFeld.BoundField.UpdateDate(unoDate)" erwartet aber ein Struct des Typs Date - sonst gibt es halt ne Fehler, wenn Du einen String zuweist.
Den dargestellten Fehlermeldungen in Basic ist nicht immer ganz zu trauen.. da gibt es oft Verschiebungen von Zeilen und unklare Beschreibungen.
Aber nun weisst Du es ja:) Kannst es jetzt wie ich beschrieben habe machen oder wie es Robert dargestellt hat. Ist halt Länger.
Lass einfach die ganze Variablenbestimung etc weg und schreibe direkt:
oFeld.BoundField.UpdateDate(cDateToUnoDate(Date()))
Fetisch...
VG
Tom