向用户表单添加功能以获取用户 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'
。
我目前正在尝试设置一个函数,在我的 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'
。