Vba 向用户窗体添加函数以获取用户ID
我目前正在尝试设置一个函数,在我的MS access数据库中创建一条记录后,该函数将获取并添加用户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
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查询来实现这一点。但是谢谢你的帮助!这工作做得很好!我还接受了你关于是/否字段的建议。感谢你的帮助!!!