我有一個子表單顯示一個數據集,最多包含200行,最多包含35列。當用戶選擇一個單元格時,會啓用部分UI以允許他們添加/編輯記錄,隨後子表單需要刷新,以便用戶可以看到由AfterUpdate
事件觸發的更改的效果。重新選擇查詢中的Access子表單中的活動單元格
我的問題是子窗體被刷新時,通過調用Requery
,重點轉移到子窗體的左上角,這意味着不僅可以在用戶無法看到自己的變化的影響,但他們有也失去了他們的地位。
我已設法通過捕獲和設置Form.Recordset.AbsolutePosition
屬性來重新選擇當前記錄的子表單,但無法找到任何方法將焦點設置到用戶以前的列。
我目前的代碼是:
Private Sub Form_AfterUpdate()
Dim lngCurrentPos As Long
With Form_frmMain.subfrm_Results_Review
lngCurrentPos = .Form.Recordset.AbsolutePosition
.Requery
.Form.Recordset.AbsolutePosition = lngCurrentPos
End With
End Sub
但反正是有設置焦點返回到某個特定的細胞?看起來應該有辦法,因爲這一定是一個常見問題?
您可以使用書籤獲取當前位置並進行刷新並重新設置書籤。 –
您能否提供一個如何工作的例子?我已經嘗試在調用'Requery'之前將'.Form.Bookmark'存儲在一個變體中,但是當我嘗試再次設置它時,我得到'無效書籤'錯誤 – CrazyHorse
我假設你的意思是「Form」,無論你身在何處在你的問題中寫了「報告」,因爲Access中的報告根本不可編輯。 - 請編輯該問題,將其正確編入索引以進行搜索。 – PhilS