2013-01-06 57 views
3

相當簡單的問題。我有一個表單中的文本字段,我希望將默認值設置爲查詢結果。這個特定的查詢返回我在Access中設置的一個小型發票系統的默認稅率。將文本框的默認值設置爲查詢結果

查詢(qrySettingsDefaultTaxRate)看起來像這樣和返回一行與稅率的十進制等效我想將其設置爲這種形式的默認:

SELECT CDbl([value]) AS default_tax_rate 
FROM settings 
WHERE (((settings.key_name)="default_tax_rate")); 

我已經嘗試設置默認值我的文本字段爲:

=[qrySettingsDefaultTaxRate]![default_tax_rate] 

然而,這並沒有奏效。當我返回到表單視圖時,框會出現「#Name?」作爲默認值,而不是返回查詢結果。

回答

3

您可以將文本框的控件源設置爲DLookup,或者將代碼中的值設置爲DLookup。

DlookUp("default_tax_rate","qrySettingsDefaultTaxRate") 

或者

DlookUp("default_tax_rate","settings","settings.key_name='default_tax_rate'") 

你甚至可以把使用DLookup對下默認值屬性表。

Dlookup Default value

3

我也有類似的問題。這對我有用 - 我編寫了一個函數,它返回了我想要設置爲默認值的值,並在窗體的默認值中指定了該函數。

我的代碼:

Public Function MaxTDate() 
    MaxTDate = CurrentDb.OpenRecordset("MaxTDateQry").Fields(0) 
End Function 

...並在字段屬性:

默認值= MaxTDate()

2

即使現在打勾作爲正確答案的答案足夠了一些實例。

可能有些情況下,默認值來自表達式,外部文件,用戶輸入或任何其他計算。

Microsoft Access拋出#Name的原因是什麼?錯誤是因爲它期望字符串數據被用撇號引用「。同時也說,如果字符串本身包含一個撇號,它也需要被轉義以及在php中使用addslashes

因此給出一個特定的變量DefValue ,

Dim DefValue 
DefValue = "This is a static string or result from database query or other computation" 
TextBox.DefaultValue = """" & Replace(DefValue, """", """""") & """" 

所以,你的情況,這將是"""" & Replace([qrySettingsDefaultTaxRate]![default_tax_rate], """", """""") & """"