2012-04-23 76 views
0

搜索查詢中的這個表達式沒有給出任何結果。ms表達式訪問

codecode2是搜索表單中的組合框,CS_Code是表列。

[CS_Code]=([Forms]![Search Form]![code] Or 
[Forms]![Search Form]![code2]) Or 
([Forms]![Search Form]![code] Is Null Or 
    [Forms]![Search Form]![code2] Is Null) 

我想從表項(搜索結果)時CS_code等於codecode2

回答

2

您需要重複的比較:

WHERE ([CS_Code]=([Forms]![Search Form]![code] 
     Or [CS_Code]=[Forms]![Search Form]![code2]) 
Or ([Forms]![Search Form]![code] Is Null 
     Or [Forms]![Search Form]![code2] Is Null) 
0

您可以縮短這個使用IsNull功能:

WHERE IsNull(([Forms]![Search Form]![code],[CS_Code]) = [CS_Code] 

和其他領域類似。如果組合框爲空,則將返回表格字段值,該值始終等於自身。

如果您正在爲多個組合框執行此操作,則可能是時候退後一步並查看您想要執行的操作。一種可能性是編寫一個VBA例程來遍歷表單上的所有組合框。