我正在尝试与"设置"在Access中的vba代码中的语句,但是" With"引用可能会改变。有没有办法做到这一点,而无需重写"中的代码"声明两次? 好像我可以这样做:
If FooVarible = true then
with forms!form1
else
with forms!form2!subForm1
endif
'have code here
end with
但是无法编译。
答案 0 :(得分:5)
使用变量:
Dim frm as Object
If FooVarible = true then
Set frm = forms!form1
else
set frm = forms!form2!subform1.form
endif
With frm
'have code here
end with
答案 1 :(得分:3)
如果FooVariable
可以是预编译器常量,那么您可以这样做:
#Const FooVariable = False
Sub Test()
#If FooVariable Then
With Forms!Form1
#Else
With Forms!Form2
#End If
'with block contents
End With
End Sub
可能不是你追求的,但很高兴知道。编译完成后,如果FooVariable
为True
:
Sub Test()
With Forms!Form1
'with block contents
End With
End Sub
如果FooVariable
是False
,那么这就是
Sub Test()
With Forms!Form2
'with block contents
End With
End Sub
请注意,编译器永远不会看到不完整的With
块。