我有一個連續的表單嵌入在Access 2010數據庫中深兩層的NavigationSubform中。我使用連續表單中不可編輯文本框的onclick事件將當前導航子表單的源對象屬性更改爲應粘貼到用戶單擊的文本框指定的特定記錄的詳細表單。DoCmd.GoToRecord將1添加到目標記錄
問題是,訪問發送用戶+1記錄id(addr_id),而不是所需的addr_id。這在大多數情況下會產生錯誤的數據。當用戶點擊當前最高的addr_id時,它也會產生錯誤信息。奇怪的是接入向用戶發送到正確的addr_id當且僅當在addr_id = 1
下面是onclick事件,這是造成麻煩的代碼:
Private Sub AddressID_Click()
Dim addr_id As Long
addr_id = Me.AddressID
Forms!Main!NavigationSubform.Form!NavigationSubform.SourceObject = "AddressDetails"
DoCmd.GoToRecord , , acGoTo, addr_id
End Sub
我測試的黑客編輯
Private Sub AddressID_Click()
Dim addr_id As Long
Dim new_addr_id As Long
addr_id = Me.AddressID
Forms!Main!NavigationSubform.Form!NavigationSubform.SourceObject = "AddressDetails"
If addr_id = 1 Then
new_addr_id = addr_id
Else
new_addr_id = addr_id - 1
End If
DoCmd.GoToRecord , , acGoTo, new_addr_id
End Sub
但我的「修復」似乎是一個完整的黑客,因爲有明確必須有一個更好的解決方案:這是遵循「修復」的問題。任何人都可以告訴我如何解決這個代碼,以便我不必添加if-else邏輯來處理訪問正在進行的有趣重新路由?
我敢打賭,它是事做改變形式源與該地址標識的結果。我知道當我過去需要類似的用戶行爲,而不是資源表單時,我打開了一個新表單,指出原始子表單的採購活動記錄。 –