Ms access 审核跟踪但不会保存

Ms access 审核跟踪但不会保存,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我正在使用下面的代码跟踪表单上的更改,它运行良好 然而,我试图在我的主窗体上使用它来记录某人单击按钮的日期/时间,但我得到以下错误: 您输入的表达式没有值 调试会将我带到以下位置: rs!PriorInfo = Screen.ActiveControl.OldValue 我的代码 Function TrackChanges() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim strCtl

我正在使用下面的代码跟踪表单上的更改,它运行良好

然而,我试图在我的主窗体上使用它来记录某人单击按钮的日期/时间,但我得到以下错误:

您输入的表达式没有值

调试会将我带到以下位置:

 rs!PriorInfo = Screen.ActiveControl.OldValue
我的代码

Function TrackChanges()
 Dim db As DAO.Database
 Dim rs As DAO.Recordset
 Dim strSQL As String
 Dim strCtl As String
 Dim strReason As String

 ' strReason = InputBox("Reason For Changes")
 strCtl = Screen.ActiveControl.Name
 strSQL = "SELECT Audit.* FROM Audit;"

 Set db = CurrentDb()
 Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)


 If rs.RecordCount > 0 Then rs.MoveLast

 With rs
 .AddNew
rs!FormName = Screen.ActiveForm
 rs!ControlName = strCtl
 rs!DateChanged = Date
 rs!TimeChanged = Time()
 rs!PriorInfo = Screen.ActiveControl.OldValue
 rs!NewInfo = Screen.ActiveControl.Value
 rs!CurrentUser = fOSUserName
' rs!Reason = strReason
 .Update
 End With

 Set db = Nothing
 Set rs = Nothing
 End Function
我假设我需要告诉它接受空值,但不确定如何接受?

Nz(Screen.ActiveControl.OldValue)
将返回空字符串而不是空值

Nz(Screen.ActiveControl.OldValue,”)
如果PriorInfo是文本,并且您希望将其记录为空

Nz(Screen.ActiveControl.OldValue,-1)
如果PriorInfo是数字且-1是安全的“null”数字。

Nz(Screen.ActiveControl.OldValue)
将返回空字符串而不是null值

Nz(Screen.ActiveControl.OldValue,”)
如果PriorInfo是文本,并且您希望将其记录为空

Nz(Screen.ActiveControl.OldValue,-1)
如果PriorInfo是数字,-1是安全的“空”数