2
我希望我的計算領域有這樣的條件值: 如果FIELDA爲0,則設置fieldC 0 其他領域C = fieldB/FIELDAMicrosoft Access:如何計算字段表達式中的IF?
我該怎麼辦呢?謝謝。
而當你在它的時候,我如何在Access VBA例程中這樣做,以便我可以不斷修改我的條件。
我希望我的計算領域有這樣的條件值: 如果FIELDA爲0,則設置fieldC 0 其他領域C = fieldB/FIELDAMicrosoft Access:如何計算字段表達式中的IF?
我該怎麼辦呢?謝謝。
而當你在它的時候,我如何在Access VBA例程中這樣做,以便我可以不斷修改我的條件。
在表定義中:不可能。
作爲查詢:
SELECT
IIF(FieldA = 0; 0; FieldB/FieldA) AS FieldC
FROM
ATableWithFieldAAndFieldB
正如VBA SQL文本:更換;有,
你可以這樣添加程序到你的模塊代碼...
Public Function CalculateFieldC(ByVal fieldA as Long, ByVal fieldB as Long) as Single
If fieldA = 0 Then
CalculateFieldC = 0
Else: CalculateFieldC = fieldB/fieldA
End If
End Function
然後從SQL語句調用它;例如:
SELECT fieldA, fieldB, CaculateFieldC(fieldA, fieldB) AS fieldC
FROM aTableWithFieldAandFieldB;
懶惰的代碼:Variant類型應爲參數和函數返回聲明。返回類型尤其可以顯着改進Jet/ACE對使用此函數的SQL WHERE子句的優化。 – 2011-06-09 01:25:44
我省略了數據類型聲明,因爲我認爲隱式地提出問題的人應該是爲過程輸入和輸出選擇適當變量類型的人。 – 2011-06-10 02:00:58
關於聲明這兩個參數和函數返回變量,我真的不知道這是如何改善......我認爲在VB和VBA的所有版本中,省略了As Type子句會自動導致將變量數據類型分配給變量。這就是說,我同意儘可能避免變體,因爲它們的使用需要更大的內存要求和更多的處理時間。我通常只在聲明變量時要處理空值,或者當我需要能夠測試是否缺少參數時。 – 2011-06-10 06:34:28