Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 向用户窗体添加函数以获取用户ID_Vba_Ms Access_Userform - Fatal编程技术网

Vba 向用户窗体添加函数以获取用户ID

Vba 向用户窗体添加函数以获取用户ID,vba,ms-access,userform,Vba,Ms Access,Userform,我目前正在尝试设置一个函数,在我的MS access数据库中创建一条记录后,该函数将获取并添加用户id,并将其输入“所有者”字段。我现在遇到的问题是,当它到达行me时抛出了一个错误!owner=函数中的owner 我得到的错误是: 奇怪的是,这段代码在我使用它的表单下工作,但在userform中却没有。任何帮助或推动正确的方向将不胜感激 Private Sub CheckBox1_Click() End Sub Private Sub CheckBox2_Click() End Sub

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

我得到的错误是:

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

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
专用子复选框1\u单击()
端接头
专用子复选框2_单击()
端接头
公共属性Get IsCancelled()为布尔值
IsCancelled=已取消
端属性
私有子按钮点击()
尺寸c作为MSForms.Control
作为字符串的Dim StrSQL
对于Me.Controls中的每个c
如果c的类型为MSForms.CheckBox,则
如果是c那么
选择案例c.名称
案例“CheckBox1”
“星期一
隐藏
“变更通知
CurrentDb.Execute(“插入到tblTasks([任务名称],[任务描述],[公司],[优先级],[状态],[截止日期],[需要帮助])值('Change Notice','Daily Task','(4)Ginny's',','(1)Hot!','0',DateAdd('d',(8-Weekday(Date(),2))mod 7,Date(),'No'))
地址所有者
"日常检查",
CurrentDb.Execute(“插入到tblTasks([任务名称],[任务描述],[公司],[优先级],[状态],[截止日期],[需要帮助])值('Daily Checks','Daily Task','(4)Ginny's',','(1)Hot!','0',DateAdd('d',(8-Weekday(Date(),2))mod 7,Date(),'No'))
地址所有者
案例“CheckBox2”
“星期二
隐藏
“变更通知
CurrentDb.Execute(“插入到tblTasks([任务名称],[任务描述],[公司],[优先级],[状态],[截止日期],[用户ID],[需要帮助])值('Change Notice','Daily Task','(4)Ginny's','1)Hot!','0',DateAdd('d','8-Weekday(Date(),3))mod 7,Date(),'Frontiera','No'))
地址所有者
"日常检查",
CurrentDb.Execute(“插入到tblTasks([任务名称],[任务描述],[公司],[优先级],[状态],[截止日期],[用户ID],[需要帮助])值('Daily Checks','Daily Task',','(4)Ginny's',','(1)Hot!','0',DateAdd('d',(8-Weekday(Date(),3))mod 7,Date(),'Frontiera','No'))
地址所有者
其他情况
结束选择
如果结束
如果结束
下一个c
端接头
函数addowner()
将所有者设置为字符串
所有者=环境(“用户名”)

我Owner=Owner'函数,通常用于向调用过程返回值:

Function GetOwner()
GetOwner = Environ("USERNAME")
End Function
将该函数放在通用模块中,可以从数据库中的任何位置调用它,如:

我!Owner=GetOwner()

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

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


如果[需要帮助]是“是/否”类型字段,请使用
False
(无撇号)或0代替
“否”

表单上是否有
所有者
字段<代码>我!Owner
是Me.Controls.Item(“Owner”)[.Value]
的简写隐式表示法。Owner字段来自添加记录的表。因此,我可能缺少正确的语法来引用表(tblTasks)“所有者”字段???
Me
将是表单本身,而不是表。这张表格是装订在桌子上的吗?我对访问不太熟悉(好的,一点也不熟悉),但是如果有一种方法可以访问表单的当前记录,那就是它-否则,您将希望运行
更新
查询,很可能使用
WHERE
条件,以便不更改该表中每个任务记录的所有者。(顺便说一句,访问表单不是
UserForm
forms)。我像使用UserForm一样使用它,这就是为什么我将其标记为UserForm。“userforms”附加到access数据库,通过单击特定表单中的按钮启动复选框弹出窗口。如果
Me
基于表单本身,我应该仍然能够使用它获取用户id,对吗?在我创建的FRMTask中,当您创建新记录时,它会从网络中获取您的用户id,并将其输入到owner字段中。就在生成这些自动任务时,我正在尝试做同样的事情。仅供参考,如果您愿意,您可以将实际的
UserForm
添加到Access项目中-VBE在Access中托管时隐藏按钮,但命令仍在“自定义工具栏”菜单中。简而言之,
Me
是您所处的类模块的当前实例(请参阅我的文章了解真实情况)。如果我理解正确,那么您需要运行一个
UPDATE
SQL查询来实现这一点。但是谢谢你的帮助!这工作做得很好!我还接受了你关于是/否字段的建议。感谢你的帮助!!!