我有一个包含必填文本字段T
的表item
和一个用于填写当前用户登录ID的文本字段userID
。我有一个表单mainForm
,其中包含基于此表格的子表单TForm
。为确保每条记录都有用户ID,我已将以下事件添加到TForm
:
Sub form_current()
Me.userID = Environ("username")
End Sub
当我打开mainForm
时,我会在打开时立即收到此错误消息:
You must enter a value in the 'T.item' field.
我认为这里发生的事情是form_current()
事件使得Access认为我已经尝试完成新记录的输入,而T.item
仍然是空白,这违反了表约束,因为那是必填字段。但奇怪的是,只有在我打开mainForm
时才会发生这种情况。当我单独打开TForm
时,我在打开时不会收到此错误消息。
我是否应该使用其他事件来填写每个字段的用户登录ID?或者有更好的方法来使用form_current()
吗?
答案 0 :(得分:1)
第一种方式。
在模块中创建一个函数:
Public Function getUserName() As String
getUserName = Environ("Username")
End Function
然后打开您的TForm的属性窗口,选择" userId"字段,选择"数据"在属性窗口中的选项卡,找到"默认值"并放下一个表达式:= getUserName()。
我不知道为什么但访问权限并没有看到Environ()函数。
第二种方式。
实现OnLoad事件,如下所示:
Private Sub Form_Load()
Me.userID.DefaultValue = "=""" & Environ("username") & """"
End Sub