【问题标题】:ms-access audit trail not working and producing errors. Invalid number of argumentsms-access 审计跟踪不起作用并产生错误。参数数量无效
【发布时间】:2021-12-05 09:16:43
【问题描述】:
Public Function AuditChanges(RecordID As String, UserAction As String)
On Error GoTo auditerr

Dim DB As Database
Dim rst As Recordset
Dim clt As Control
Dim UserLogin As String

Set DB = CurrentDb
Set rst = DB.OpenRecordset("select * from tbl_AuditTrail", adOpenDynamic)

UserLogin = Environ("UserName")
Select Case UserAction
    Case "New"
        With rst
            .AddNew
            ![DateTime] = Now()
            !UserName = UserLogin
            !FormName = ScreenActiveForm.Name
            !Action = UserAction
            !RecordID = Screen.ActiveForm.Controls(RecordID).Value
            .Update
        
        End With
        
    Case "Delete"
        With rst
            .AddNew
            ![DateTime] = Now()
            !UserName = UserLogin
            !FormName = ScreenActiveForm.Name
            !Action = UserAction
            !RecordID = Screen.ActiveForm.Controls(RecordID).Value
            .Update
    End With
        
    Case "Edit"
        For Each clt In Screen.ActiveForm.Controls
            If (clt.ControlType = acTextBox _
                Or clt.ControlType = acComboBox) Then
                If Nz(clt.Value) <> Nz(clt.OldValue) Then
                      With rst
                        .AddNew
                        ![DateTime] = Now()
                        !UserName = UserLogin
                        !FormName = ScreenActiveForm.Name
                        !Action = UserAction
                        !RecordID = Screen.ActiveForm.Controls(RecordID).Value
                        !FieldName = clt.ControlSource
                        !OldValue = clt.OldValue
                        !newvalue = clt.Value
                        .Update
                      End With
                    End If
                End If
        Next clt
End Select

rst.Close
DB.Close
Set rst = Nothing
Set DB = Nothing

auditerr:
    MsgBox Err.LastDllError & " : " & Err.Description, vbCritical, "Error"
    Exit Function
End Function

【问题讨论】:

  • An image of your code is not helpful。请edit 并改进您的问题。还要说明错误发生在哪一行代码中。
  • 目标是在一个表单上记录所有信息的变化并将其放入 tbl_AuditTrail。我尝试调试,但它没有告诉我问题出在哪里。我尝试复制和粘贴代码,但网站不允许,因此我复制并粘贴。让我再试试复制粘贴。
  • 请阅读How to Ask,您的帖子没有正确描述错误,也没有您尝试修复它的内容。您还需要提出一个我们可以回答的问题。请注意"It's not working" is not helpful。还请描述你如何运行这个函数AuditChanges
  • 明白。抱歉,我是这个平台的新手,我对这个问题感到相当压力。如果我可以在这里问吗?创建模块并在表单的“更新前”字段中调用它后,我收到错误消息。即 3001 个无效参数。我尝试过调试,但它没有显示代码中的问题所在。
  • 您不能调用函数=AuditChanges(),因为它需要RecordIDUserAction 参数。

标签: vba ms-access ms-access-2016


【解决方案1】:

如果你像=AuditChanges() 这样调用你的函数,很明显它不能工作,因为根据它的定义,函数需要两个参数:

Public Function AuditChanges(RecordID As String, UserAction As String)

这就是你得到错误的原因

参数数量无效。

该函数需要2 参数(RecordIDUserAction),而您需要0

所以您需要提交RecordIDUserAction。例如:

=AuditChanges("YourRecordIDControlName", "New")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2012-05-30
    • 2013-11-16
    相关资源
    最近更新 更多