2013-03-07 36 views
0

我想表單域的設置默認值,以如何避免ms訪問公式中的名稱錯誤?

=IIf(IsNull([Forms]![MyForm]![MySubForm].[Form]![MyField]);"";[Forms]![MyForm]![MySubForm].[Form]![MyField]) 

當MyForm的關閉我要設置字段值設置爲「」。不幸的是我找不到如何測試MyForm是否關閉:我試過IsNull,IsObject,它是否總是返回#Name?

這可能嗎?

+0

我建議你使用VBA設置默認而不是使用你在上面的語句。儘可能避免IIF。 – HK1 2013-03-07 21:49:25

+0

當然,但我仍然想知道是否有可能 – user310291 2013-03-07 22:04:45

回答

2

我使用這樣的函數來檢查,看是否有窗口打開:

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 
+0

我認爲除了創建這樣的功能外別無選擇。 – user310291 2013-03-08 04:50:26

+0

也不起作用,但似乎問題來自iff函數。 – user310291 2013-03-08 05:03:09