跟踪MS Access中的用户更改

时间:2016-10-14 08:57:24

标签: vba ms-access access-vba

我在MS Access中有一个表和一个表单。数据通过表格添加。我希望能够跟踪用户更改。我的表中有一个用户列,在更新表单后将添加用户名。为此,我有以下VBA代码,将在表单更新后触发,但它不起作用,我不知道错误在哪里。帮助将不胜感激。感谢

  Private Sub Form_AfterUpdate()

Dim UserLogin As String
Dim MyId As Integer
Dim strSQL As String
Dim rs As Recordset

 UserLogin = Environ("Username")
 MyId = Me!ID.Value

 Set strSQL = "Update [MyTable] SET [MyTable]!User = '" & UserLogin & "' WHERE  [MyTable]!ID = '" & MyId & "';"
'Set rs = dbs.OpenRecordset(strSQL)
DoCmd.RunSQL strSQL

2 个答案:

答案 0 :(得分:2)

您不仅可以跟踪特定形式的更改,还可以注册数据中所做的任何更改,即使是直接在表格上完成也是如此。只需为您的表创建Before Change数据宏("创建数据宏"在表设计模式下的菜单。 在数据宏设计器中,使用以下参数添加操作SetFieldName = User("用户"是用于存储用户名的字段名称)和Value = GetUserName()

在任何标准模块中创建如下函数:

Public Function GetUserName() As String
GetUserName = Environ("Username")
End Function

在此之后,您的表中的任何更改都将按用户名更新已更改的记录,用户是谁做了此更改。

请注意,如果您要在后端编辑数据,则在分割数据库的情况下,此功能应在前端数据库和后端数据库中可用。

从您的代码开始,检查ID字段的数据类型。如果是号码,请删除单引号。也替换"!" by"。"在SQL查询文本中。

答案 1 :(得分:0)

只需插入一个带有controlsource的文本框作为“用户”

然后使用

而不是更新后
<div class="container">
    <div class="row">

            <div class="col-md-3 text">
                Lorem lorem lorem
                <div class="pull-right">Ipsum lorem ipsum</div>
            </div>

            <div class="col-md-5">
                <div class="form-inline">
                    <div class="form-group">
                        <input type="checkbox" value="" checked>
                        <label>Lorem</label>
                        <input type="checkbox" value="">
                        <label>Ipsum</label>
                    </div>
                    <div class="form-group">
                        <select class="form-control choice-select">
                            <option value="one">One</option>
                            <option value="two">Two</option>
                            <option value="three">Three</option>
                            <option value="four">Four</option>
                            <option value="five">Five</option>
                        </select>
                    </div>
                    <div class="form-group">
                        <input class="form-control" type="text" placeholder="Placeholder text">
                    </div>
                </div>
            </div>
            <div class="col-md-4">
                <div class="button-group">
                    <button class="btn btn-default">Lorem ipsum lorem</button>
                    <button class="btn btn-default">Lorem lorem lorem</button>
                </div>
            </div>
        </div>
    </div>
</div>

无需单独的SQL操作