簡體   English   中英

MS Excel中無法識別MS Access Nz()函數

[英]MS Access Nz() Function not Recognised in MS Excel

我試圖在MS Access中編寫一個表達式,該表達式在返回錯誤后在Iif()語句中返回文本字符串"New Policy"
當我將數據從Access導出到Excel時,它告訴我Nz()無法識別。
有此功能的替代方法嗎? 我的Access表達式如下:

Nz(IIf([Policy Status]=[Input - WFAC Previous Day]![Policy Status 1],"Remains " & [Policy Status],[Input - WFAC Previous Day]![Policy Status 1] & " to " & [Policy Status]), "New Policy")

Nz是在Microsoft Access類型庫中定義的,當您的主機應用程序是Access時會自動引用該庫。

如果在Excel項目中添加對Access類型庫的引用,則應該可以使用Nz ...,但是如果未安裝Access,Excel項目將無法工作,這很奇怪而且很繁重手。

Nz做什么? 看起來像某種Coalesce函數,應該可以很輕松地自行實現並根據需要進行自定義。 像這樣嗎

Public Function Coalesce(ByVal value As Variant, Optional ByVal value_when_null As Variant = 0) As Variant

    Dim return_value As Variant
    On Error Resume Next 'supress error handling

    If IsEmpty(value) Or IsNull(value) Or (VarType(value) = vbString And value = vbNullString) Then
        return_value = value_when_null
    Else
        return_value = value
    End If

    Err.Clear 'clear any errors that might have occurred
    On Error GoTo 0 'reinstate error handling

    Coalesce = return_value

End Function

您不需要為此:

IIf(IsNull([Policy Status]), "New Policy",
IIf([Policy Status] & "" = [Input - WFAC Previous Day]![Policy Status 1],
"Remains " & [Policy Status],
 [Input - WFAC Previous Day]![Policy Status 1] & " to " & [Policy Status]))

如果您使用的是VBA,則可以添加對MS Access庫的引用,例如“ Microsoft Access 14.0對象庫。然后Nz函數作為Access.Nz(value, "New Policy")可用。您甚至可以創建一個用於Excel電子表格的用戶定義函數:

Public Function Nz(Value As Variant, Optional ValueIfNull As Variant = "New Policy") As Variant
    Nz = Access.Nz(Value, ValueIfNull)
End Function

希望能有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM