vba - 参考拆分表格?审计表没有选择 VBA
问题描述
我正在尝试在 MS Access 中创建审计跟踪表单。审计表没有把它捡起来。我对在 VBA sctript 中引用表单有疑问。谁能帮忙,如何引用拆分表格?如果以下脚本不正确。谢谢
Option Compare Database
Public Function AuditChanges(RecordID As String, UserAction As String)
On Error GoTo auditerr
Dim DB As DAO.Database
Dim rst As DAO.Recordset
Dim clt As Control
Dim UserLogin As String
Set DB = CurrentDb
Set rst = DB.OpenRecordset("select * from AuditTrail", dbOpenDynaset)
UserLogin = Environ("UserName")
Select Case UserAction
Case "new"
With rst
.AddNew
![DateTime] = Now()
!UserName = UserLogin
!FormName = Screen.ActiveForm.ActiveControl.Form.Name
!Action = UserAction
!RecordID = Screen.ActiveForm.ActiveControl.Form(RecordID).Value
.Update
End With
Case "Delete"
With rst
.AddNew
![DateTime] = Now()
!UserName = UserLogin
!FormName = Screen.ActiveForm.Name
!Action = UserAction
!RecordID = Screen.ActiveForm.Controls(RecordID).Value
.Update
End With
Case "Edit"
For Each clt In InScreen.ActiveForm.ActiveControl.Form
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 = Screen.ActiveForm.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.Number & " : " & Err.Description, vbCritical, "Error"
Exit Function
End Function
没有具体错误,但跟踪表没有被拾取/更新。
解决方案
假设记录已成功添加到您的AuditTrail
表中,您应该在修改基础表中保存的数据后调用Requery
表单的方法。
推荐阅读
- java - 为什么 Spring Rest 服务在第一次请求时很慢?
- java - 对数组转换集进行单元测试
- java - SpringBoot 功能 Web MVC,缺少返回 CompletableFuture 的方法
> - node.js - 使用具有自定义提供程序的 typeorm 为 nestjs 应用程序读取 .env
- python - 为什么注销作为 GET 请求而不是 POST 请求工作?
- python - 也许opencv和numpy互相讨厌?
- python - Python3:如何在需要整数的while循环中检查字符串
- python - 在子类方法中为函数添加钩子
- python - 如何使用 matplotlib 为 Pandas 数据框设置动画
- java - Leetcode 21 合并两个有序列表