向用户表单添加功能以获取用户 ID

Adding function to user form to get User ID

我目前正在尝试设置一个函数,在我的 MS 访问数据库中创建记录后,该函数将获取并添加用户 ID 并将其输入到 "Owner" 字段中。我目前遇到的问题是当它到达函数中的 me!owner = owner 行时抛出错误。

我得到的错误是这样的:

奇怪的是,这段代码在我使用它的表单下有效,但在用户表单中却不起作用。任何帮助或推动正确的方向将不胜感激!

Private Sub CheckBox1_Click()
End Sub

Private Sub CheckBox2_Click()
End Sub


Public Property Get IsCancelled() As Boolean
IsCancelled = cancelled
End Property

Private Sub OkButton_Click()
Dim c As MSForms.Control
Dim StrSQL As String


For Each c In Me.Controls
If TypeOf c Is MSForms.CheckBox Then
If c Then
Select Case c.Name
    Case "CheckBox1"
        'Monday
        Hide
        'Change Notice
        CurrentDb.Execute ("INSERT INTO tblTasks ([Task Name], [Task Description], [Company], [Priority], [Status], [DueDate], [Need Help]) VALUES ('Change Notice', 'Daily Task', '(4) Ginny''s', '(1) Hot!', '0', DateAdd('d',(8-Weekday(Date(),2)) mod 7,Date()), 'No')")
        addowner
        'Daily Checks
        CurrentDb.Execute ("INSERT INTO tblTasks ([Task Name], [Task Description], [Company], [Priority], [Status], [DueDate], [Need Help]) VALUES ('Daily Checks', 'Daily Task', '(4) Ginny''s', '(1) Hot!', '0', DateAdd('d',(8-Weekday(Date(),2)) mod 7,Date()),  'No')")
        addowner
    Case "CheckBox2"
        'Tuesday
        Hide
        'Change Notice
        CurrentDb.Execute ("INSERT INTO tblTasks ([Task Name], [Task Description], [Company], [Priority], [Status], [DueDate], [User ID], [Need Help]) VALUES ('Change Notice', 'Daily Task', '(4) Ginny''s', '(1) Hot!', '0', DateAdd('d',(8-Weekday(Date(),3)) mod 7,Date()), 'Frontiera', 'No')")
        addowner
        'Daily Checks
        CurrentDb.Execute ("INSERT INTO tblTasks ([Task Name], [Task Description], [Company], [Priority], [Status], [DueDate], [User ID], [Need Help]) VALUES ('Daily Checks', 'Daily Task', '(4) Ginny''s', '(1) Hot!', '0', DateAdd('d',(8-Weekday(Date(),3)) mod 7,Date()), 'Frontiera', 'No')")
        addowner
    Case Else
   End Select
   End If
   End If
  Next c
End Sub

Function addowner()
Dim Owner As String
Owner = Environ("USERNAME")
Me!Owner = Owner '<---Error on this line
End Function

通常用于return调用过程的值的函数:

Function GetOwner()
GetOwner = Environ("USERNAME")
End Function

将该函数放在通用模块中,可以从数据库中的任何地方调用它,例如:

Me!Owner = GetOwner()

如果您希望此值填充使用 INSERT 创建的记录字段,请连接:

CurrentDb.Execute ("INSERT INTO tblTasks ([Task Name], [Task Description], [Company], [Priority], [Status], [DueDate], [User ID], [Need Help], [Owner]) VALUES ('Daily Checks', 'Daily Task', '(4) Ginny''s', '(1) Hot!', '0', DateAdd('d',(8-Weekday(Date(),3)) mod 7, Date()), 'Frontiera', 'No', '" & GetOwner() & "')") `

如果 [Need Help] 是 yes/no 类型字段,请使用 False(无撇号)或 0 而不是 'No'