通过vba更新新记录,当前打开的形式

问题描述:

我有一个关于通过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”无当前记录” ......

这里有一些建议,

确保您定义。变量RST

。检查EOF条件,以确保您的记录中包含行

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

Why clone an MS-Access recordset?

+0

感谢您的建议,我放弃了,当在acFormAdd模式下打开“inventory_details”表单时,记录集是空的。这就是原因。我不知道在这种情况下何时创建此记录集以及如何强制执行此过程。 – Smok