我如何更新任何字段值通過ms訪問中的VBA代碼。當我在組合框中輸入值時。當我輸入數據時,相關表格中的一些字段會更新。而其他則不。我該怎麼做才能解決這個問題。我如何更新任何字段值通過在ms訪問VBA代碼
在一個組合框中,我使用了me.refresh命令及其更新數據。而在其他組合框中,我做了同樣的事情,但是在我犯錯的時候沒有得到任何結果。
進一步是未註冊的軟件做了這樣的問題,以便它們在不同的時間表現不同。
我如何更新任何字段值通過ms訪問中的VBA代碼。當我在組合框中輸入值時。當我輸入數據時,相關表格中的一些字段會更新。而其他則不。我該怎麼做才能解決這個問題。我如何更新任何字段值通過在ms訪問VBA代碼
在一個組合框中,我使用了me.refresh命令及其更新數據。而在其他組合框中,我做了同樣的事情,但是在我犯錯的時候沒有得到任何結果。
進一步是未註冊的軟件做了這樣的問題,以便它們在不同的時間表現不同。
當您更改te xtbox /組合框/等表格中的記錄不會立即更新。 Access處理它的默認方式是等到記錄不再有焦點時,然後使用您所做的任何更改更新表中的記錄。
如果你願意,你可以通過使用可通過更新後的事件強制更新的記錄表中的以下內容:
Private Sub txtMyFieldName_AfterUpdate()
Me.Dirty = False
End Sub
然而,編輯現有記錄時,我只能這樣做。如果您正在輸入新記錄,那麼在每次更新控件後都不要觸發Me.Dirty = False
。如果您在新記錄條目上觸發Me.Dirty = False
,並且您還有必填字段尚未填寫,則會收到錯誤消息,指出必填字段不能包含空值。
表單上的(綁定)控件值的更改與基礎字段值的更新之間存在細微的概念差異。在'update'事件被觸發之前,基礎字段的值可能不會被更新。
,當然,如果你正在處理與控制是未綁定的,不能有任何字段更新...
編輯:
如果你想以編程方式更改未綁定控件的值:
myForm.controls(myControl).value = "whatever"
如果要更改綁定的控件和基礎字段,在現場側工作
myForm.recordset.fields(myField).value = "whatever"
myForm.recordset.update
然後,您可能需要刷新屏幕上的控制,使其顯示更新值
而在控制方面
myForm.controls(myControl).value = "whatever"
你可能再需要觸發更新編程(recordset.update)事件在您的基礎控件上
那麼我如何更新任何未綁定的控件lostfocus事件發射時。 –
據我記憶,這取決於你如何放鬆焦點:如果它是通過ESC鍵,更新可能不會被解僱。如果是通過Enter或TAB,它將被解僱。將一些debug.print消息添加到事件以及更新過程之前/之後,並檢查不同事件的管理方式。我想你也可以在事件層次結構中找到一些幫助。 –
我無法理解你最後一句話。如果我輸入新記錄,那我該怎麼辦。 –
after_update事件也適用於綁定和未綁定的控件? –
我更新了我的答案以澄清一點。 – Linger