我正在尝试设置一个简单的功能,以添加将记录添加到访问数据库的人员的计算机名称。例如,如果计算机12345上的用户在表tblTasks中创建了一条新记录,则在“所有者”字段中将该人的计算机名称作为输入。
我目前正在处理的方法(不确定这是最好的方法)是,在“所有者”字段下的表单上,我已将“默认值”设置为= owner,并创建了以下函数:< / p>
Function Owner()
Dim cdb As DAO.Database, rst As DAO.Recordset
Dim wshNet As Object
Set wshNet = CreateObject("Wscript.Network")
Set cdb = CurrentDb
Set rst = cdb.OpenRecordset("SELECT * FROM tblTasks", dbOpenDynaset)
rst.AddNew
rst!Owner = wshNet.Computername
rst.Update '<---- Error starts here
Set wshNet = Nothing
End Function
创建新记录时出现以下错误:
我知道问题的一部分与我创建的验证规则有关,该规则不允许在没有“任务名称”的情况下创建记录,但我想保留该记录。
我认为“所有者”字段给出#Error的问题还与以下事实有关:我不使用按钮操作来创建记录,而是保持从列表底部添加内容的能力。记录。我也想保持不变。
任何帮助或建议将不胜感激!
谢谢!! -德克
答案 0 :(得分:1)
几天前,我从事类似的工作,并开始使用像您这样的字段。我找到了与您拥有的宏类似的解决方案。
为表单的BeforeInsert属性创建一个宏事件。使用下面的宏代码并进行更新以适合您的需求。
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim Owner As String
Owner = Environ("COMPUTERNAME")
Me!AddedBy= Owner
End Sub
编辑 关于您收到的错误,我不确定这是否有帮助,但是尝试将Owner定义为
Dim wshNet As String
Set wshNet = Environ("COMPUTERNAME")