这是我的代码:
If Isnull([RECRUITMENT_NR]) Then
Beep
End if
If Not Isnull([RECRUITMENT_NR]) Then
open form
formname frmHR_RECRUITMENT
view Form
where condition =="[RECRUITMENT_NR]=&[RECRUITMENT_NR]
Data mode
Window mode Dialog
请注意我们在2010年访问
错误讯息: 条件表达式中的数据类型不匹配 错误#2950
任何建议都非常感谢!
答案 0 :(得分:0)
我们可以稍微清理一下代码:
If IsNull([RECRUITMENT_NR]) Then
Beep
Exit Sub
End If
DoCmd.OpenForm _
"frmHR_RECRUITMENT" _
, acNormal, _ ' open in normal view
, "[RECRUITMENT_NR] = " & [RECRUITMENT_NR] _ ' explanation below
, acFormEdit _ ' allow user to add and edit records
, acDialog
我唯一怀疑的是在设置表单过滤条件之前在VBA中检查的[RECRUITMENT_NR]
字段。我假设此代码作为某个表单的VBA代码的一部分运行,并且表单有一个名为[RECRUITMENT_NR]
的字段,然后您打开的frmHR_RECRUITMENT
表单还有一个基础数据字段 名为[RECRUITMENT_NR]
。这应该工作......但说实话我不确定。我可能会根据您的反馈重新调整我的答案。
答案 1 :(得分:0)
创建控件值的临时变量,并将其传递给窗体open的where条件。
这是您的宏应该是什么样子:
SetTempVar
Name tmpRecruitment_NR
Expression = [RECRUITMENT_NR]
If IsNull([RECRUITMENT_NR]) Then
Beep
StopMacro
Else
OpenForm
Form Name frmHR_RECRUITMENT
View Form
Filter Name
Where Condition = [RECRUITMENT_NR]=[TempVars]![tmpRecruitment_NR]
Data Mode
Window Mode Dialog
End If
RemoveAllTempVars