2014-02-20 87 views
1

我已經在MS Access 2010中創建了一個表單,它使用未綁定的組合框來按名稱選擇表條目,並使用彈出窗體將新條目插入數據庫。由於組合框並未自行更新,我試圖用彈出窗體「保存」按鈕OnClick事件強制更新Forms![main_form].[unbound_cmb].RequeryForms![main_form].Form.Refresh/Requery,但三種方法都不起作用。MS Access 2010:未綁定的組合框不會更新

那麼如何在添加新記錄/點擊「保存」按鈕後更新組合框?

+0

不能100%確定這一點,但是當你打開彈出窗體時,帶有組合框的窗體失去焦點。你可以在查詢組合框記錄的主窗體上添加一個「Form_GotFocus」事件嗎?或者您可以有一個計時器來檢查彈出窗口是否已關閉......但您應該能夠在關閉時重新查看組合框。希望有人會提供更好的解決方案... –

+0

在更改mod_update()(我的VBA函數)中宏命令的順序並關閉彈出窗口關閉和mod_update()後,組合框會更新,但選擇新的記錄不會更新表單而選擇舊的條目 –

回答

0

Johannes,

你用什麼來填充組合框?表或查詢?

此外,我不確定您是否需要在此查詢。我使用VBA Command.Requery更新After Update事件中的級聯組合框。

我有一個類似的數據庫用於註冊考試網站的人。我有一個用於數據輸入的彈出窗體,彈出一個新的測試網站,以及一個使用兩個未綁定組合框過濾報表的窗體。我的兩個組合都是自我更新,我通過使用查詢來完成這一任務。

//編輯你會想讀這個* * ** * ** * ** * **
多一點關於Command.Requery,重新查詢在需要再次運行查詢時使用,通常針對查詢中的不同鍵。雖然它有時可能看起來像是在工作,但它可能只能工作,因爲Access會自動刷新定時器的查詢,或者因爲您通過關閉窗體而導致刷新。您遇到的問題是由於您的查詢未刷新而導致的,而不是因爲它沒有正確地重新查詢。

請參閱我的評論以獲取有關此問題的簡單工作。如果出於某種原因,您需要始終打開組合選項,然後嘗試在保存按鈕上執行刷新命令。不過,我強烈建議您在我的評論中遵循該方法,因爲它一直在爲我解決任何問題。

+0

我正在使用查詢'SELECT [main_data] .ID,[main_data] .name FROM main_data ORDER BY [main_data] .name;'填充組合框 –

+0

我剛剛使用了下面的代碼,它更新了組合框(當我輸入這個時,我看到了我們的差異 - 注意!與!) Forms![Form1]![unbound_cmb] .Requery DoCmd.Close acForm, Me.Name –

+0

'Forms![Form1]![unbound_cmb] .Requery'沒有改變任何內容,但是'DoCmd.Close acForm,Me.Name'會拋出一個「無效的Me關鍵字」錯誤 –