0

我有一个T带有必填文本字段的表格item,以及一个userID用于填写当前用户登录 ID 的文本字段。我有一个基于此表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()它?

4

1 回答 1

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
于 2013-07-05T17:50:47.910 回答