我正在處理一個爲員工保存並顯示cources的數據庫,每個員工都有不同的日期,他/她必須在再次具體的課程。我做了幾個包含所有信息的表格。我可以在窗體中顯示信息,這個窗體包含幾個按鈕,可以讓我在不同的查詢之間進行選擇。所有查詢以相同的格式輸出相同類型的數據。爲了便於參考,我將稱這種形式爲FormA。VBA:不會允許我在Microsoft Access中更改另一個表單的RecordSource
這一切工作正常,但幾個小時前,我添加了一個按鈕,應該允許我更新某個記錄的信息。這種更新以不同的形式發生,我們稱之爲FormB。在過去的情況下,我爲每次訓練都使用了一種特定的形式,但我認爲這是每一次都沒有效率。我做了一個可以顯示每個查詢信息的表單。我遇到的問題是每當我按下按鈕更新某個記錄時。它總是在查詢/表單中顯示頂部記錄的信息。我一直堅持這幾個小時,我只是不能得到它的工作。如果我手動將RecordSource的FormB設置爲正確的查詢,它就像它應該的那樣工作。但是這需要我製作很多相同的表格。
我會嘗試鏈接所有我認爲相關的代碼。如果需要其他東西,請說出來。
放在備考上的更新按鈕使用的代碼:
Private Sub btnUpdate_Click()
Dim stDocName As String
If Forms!FormA.RecordSource = "QryFG" Then
stDocName = "FormB"
' we open first the form:
DoCmd.OpenForm stDocName, , , "peoplesoftnr = " & Me!PeopleSoftNr
' we then set up it's RecordSource:
Forms!FormB.RecordSource = "QryFG"
End If
這個if語句重複所有不同的訓練五次,他們都是一樣的,所以我將不包括在他們這個帖子。
代碼填充我的文本框中的我的FormB。但它總是挑選最高紀錄。即使我按下不在同一行的按鈕(FormA)。當我註釋掉以下行:
' Forms!FormB.RecordSource = "QryFG":
,並手動設置QryFG爲FormB的記錄源,它的作用和應該做的。但通過這樣做,我將不得不創造出很多相同的形式。我希望有更好的方法來做到這一點。預先感謝您的時間和精力。我的母語不是英語,所以請忽略拼寫和語法錯誤;)。
再次感謝!
Joeri Rommers
這兩種解決方案都很棒!非常感謝,你救了我! –