Ms access 如何避免ms access公式中的名称错误?
我想将表单字段的DefaultValue设置为Ms access 如何避免ms access公式中的名称错误?,ms-access,ms-access-2007,ms-access-2010,Ms Access,Ms Access 2007,Ms Access 2010,我想将表单字段的DefaultValue设置为 =IIf(IsNull([Forms]![MyForm]![MySubForm].[Form]![MyField]);"";[Forms]![MyForm]![MySubForm].[Form]![MyField]) 当MyForm关闭时,我想将字段值设置为“”。不幸的是,我找不到如何测试MyForm是否已关闭:我尝试了IsNull、IsObject,它是否总是返回#Name 这可能吗?我使用这样的函数检查表单是否打开: Function IsL
=IIf(IsNull([Forms]![MyForm]![MySubForm].[Form]![MyField]);"";[Forms]![MyForm]![MySubForm].[Form]![MyField])
当MyForm关闭时,我想将字段值设置为“”。不幸的是,我找不到如何测试MyForm是否已关闭:我尝试了IsNull、IsObject,它是否总是返回#Name
这可能吗?我使用这样的函数检查表单是否打开:
Function IsLoaded(ByVal strFormName As String) As Boolean
' Returns True if the specified form is open in Form view or Datasheet view.
Const conObjStateClosed = 0
Const conDesignView = 0
If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
If Forms(strFormName).CurrentView <> conDesignView Then
IsLoaded = True
End If
End If
End Function
函数作为布尔值加载(ByVal strFormName作为字符串)
'如果指定的表单在表单视图或数据表视图中打开,则返回True。
Const conobjstate closed=0
Const conDesignView=0
如果SysCmd(acSysCmdGetObjectState、acForm、strFormName)conobjstate已关闭,则
如果表单(strFormName).CurrentView conDesignView则
IsLoaded=真
如果结束
如果结束
端函数
我建议您使用VBA设置默认值,而不是使用上面的语句。尽可能避免IIF。当然,但我还是想知道这是否可能。我认为除了创建这样的函数外,别无选择。也不起作用,但问题似乎来自iff函数。