使用 AdjustDay (NotesDateTime Class) 设置日期字段

Set a date field with AdjustDay (NotesDateTime Class)

我的代码有问题,最后当脚本尝试保存 de doc lotus 时显示错误:

Validation error on format.

我想更改日期提醒,我首先在事件按钮中尝试,然后我想将此代码实现到代理中,这是...

Sub Click(Source As Button)

'... other variables declared ...

Dim dateTime As NotesDateTime
Dim nuevoRecordatorio As Variant

Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set item = doc.GetFirstItem("TempoFechaRecordatorio01")
Set dateTime = item.DateTimeValue

Messagebox (dateTime.DateOnly)

Call dateTime.AdjustDay(15)

Messagebox (dateTime.DateOnly)

nuevoRecordatorio = dateTime.DateOnly

Messagebox (nuevoRecordatorio)

Set item2 = doc.ReplaceItemValue("TempoFechaRecordatorio01",Cdat(nuevoRecordatorio))

Messagebox (doc.TempoFechaRecordatorio01(0))

Call uidoc.Save
Call uidoc.Close End Sub

我试过没有Cdat(...),但结果是一样的:format error

谁能给我任何解决此问题的说明?

NotesDateTime.DateOnly 属性 returns一个string值,所以需要用DateValue函数把这个值转换成date值:

'Your code.

Set item2 = doc.ReplaceItemValue("TempoFechaRecordatorio01", DateValue(nuevoRecordatorio))

'Your code.

您也可以直接使用 date 值:

'Your code.
vDate = doc.GetItemValue("TempoFechaRecordatorio01")(0)

vDate = vDate + 15

doc.ReplaceItemValue("TempoFechaRecordatorio01", Datenumber(Year(vDate), Month(vDate), Day(vDate))
'Your code.

您可以用其他方式使用 Evaluate 函数:

'Your code.

doc.ReplaceItemValue("TempoFechaRecordatorio01", Evaluate({@Adjust(@Date(TempoFechaRecordatorio01); 0; 0; 15; 0; 0; 0)}, doc)

'Your code.