无法使用
.Value
.OldValue
. 这些属性始终返回
Null
. 据我所知,没有可靠的方法来获取旧价值(此外,适当的审计跟踪不需要旧价值,因为如果所有内容都得到适当的审计,旧价值是先前增加的新价值)。
仅保存新值时,如果要将其保存到文本字段而不是多值字段中,可以使用以下方法:
使用此函数可以获取所有选定项目的字符串值:
Public Function JoinMVF(MVFControl As Control, Optional Delimiter As String) As String
Dim i As Variant
For Each i In MVFControl.ItemsSelected
JoinMVF = JoinMVF & MVFControl.ItemData(i) & Delimiter
Next i
End Function
With rst
.AddNew
!FormName = strFormName
!ControlName = strControlName
If strField = "" Then
!FieldName = strControlName
Else
!FieldName = strField
End If
!RecordID = lngID
!UserName = Environ("username")
If Not IsNull(varOld) Then 'varOld will always be Null for a multi-valued field
!OldValue = CStr(varOld) 'Thus this will never get called
End If
'Add some If multivalued field then
!NewValue = JoinMVF(Screen.ActiveControl, "; ")
.Update
End With