2014-06-27 88 views
0

我有一個關於通過VBA更新新記錄的問題。 首先 - 假設。 我製作了一個名爲「分類」的表單,顯示一組記錄和一個顯示相關記錄的sobreport。我已將按鈕放在上面:「添加新記錄」。這將打開第二個表單「inventory_details」,用於輸入和查看清單特定數據。該庫存屬於特定的分類類型。所以 - 我通過assortment_id到inventory_details形成通過像DoCmd.OpenForm:通過vba更新新記錄,當前打開的形式

DoCmd.OpenForm stFormName, , , , acFormAdd, , Me.assortment_id 

的「inventory_details」的數據源格式是包含分類表的查詢被加入到庫存表inventory_id。將OpenArgs傳遞給當前打開的新記錄並刷新表單以顯示相關分類數據的最佳方式是什麼? 我試圖做到這一點,如:

Private Sub Form_Open(Cancel As Integer) 
     Dim assortmentId As Integer 
     If (Not IsNull(Me.OpenArgs)) Then 
      assortmentId = Me.OpenArgs() 
      Set rst = Me.Recordset 
      rst.Edit 
      rst.assortment_id_assortment = assortmentId 
      Me.Requery 
     End If 
    End Sub 

,但它給了我一個錯誤「3021」無當前記錄」 ......

回答

0

這裏有一些建議,

確保您定義。變量RST

。檢查EOF條件,以確保您的記錄中包含行

If rst.EOF Then 
    MsgBox "The Recordset is empty." 
End If 

Why clone an MS-Access recordset?

+0

感謝您的建議,我放棄了,當在acFormAdd模式下打開「inventory_details」表單時,記錄集是空的。這就是原因。我不知道在這種情況下何時創建此記錄集以及如何強制執行此過程。 – Smok