2017-04-20 122 views
0

對不起,我在Access很新,所以我可能沒有正確使用一些術語(或可能不知道一些術語)。訪問主窗體'輸入參數值'

當我將subform1放入我的mainform時,遇到「輸入參數值」錯誤。在subform1上,我有一個運行query1,query2,query3的按鈕。這3個查詢查詢表以及位於子表單1上的計算字段。 Subform1的數據源是query4。當我按下按鈕(3查詢),一切正常。

一旦我將該subform1放到我的mainform上(以便我的用戶可以按下按鈕來運行查詢而不輸入subform1),我收到一個'輸入參數值'錯誤。 Query1,query2,query3無法找到位於子表單1上的計算字段。例如,「輸入參數值」錯誤如下所示:Forms!subform1!calculatedfield1。我嘗試將'位置'更改爲如下形式:Me.subform1!calculatedfield或Form!mainform1!subform1!calculatedfield,但仍然收到相同的參數錯誤。我可以將計算的字段移動到mainform1,這使查詢工作正常。但我想保留子窗體上的所有計算字段。有沒有人有什麼建議?

+0

如果您的按鈕位於子窗體上,並且您引用了同一子窗體上的另一個控件,那麼只需使用'me!computedfield'來引用該控件。即不需要參考子表單,因爲您已經在那裏了。 – geeFlo

+0

這就是我的想法,但我仍然收到參數錯誤。只是爲了澄清,該按鈕將運行QUERY1看起來像這樣: UPDATE table1的SET table1field =形式subform1 subform1calculatedfield WHERE(((table1field)形式之間subform1 subform1calculatedfield 和表單subform1 subform1calculatedfield2) – xpandamonium

+0

!!!!也許更好的方法來陳述問題: 我打開查詢並打開mainform1(其中包含subform1)當我運行查詢時,它無法在subform1上找到計算的字段,但subform1顯然是打開的mainform1。 – xpandamonium

回答

0

我總是命名子容器控件不同於它所持有的對象,如ctrDetails。那麼這個工作對我來說:

Forms!Main!ctrDetails!fieldname

然而,我更傾向於將在VBA運行SQL語句。所以後面的代碼按鈕可能是這樣的:

CurrentDb.Execute "UPDATE table1 SET table1field = " & Me.subform1calculatedfield & _ 
" WHERE table1field Between " & Me.subform1calculatedfield & " And " & me.subform1calculatedfield2 

爲什麼你需要保存計算的數據?