Ms access MS Access-使用新记录打开表单并插入以前表单中的值
我在MS Access数据库中有一个表单,它列出了带有订单号的订单,每页一个订单。表单底部有一个按钮,用于打开另一个表单,为订单添加项目 我正在尝试使用MS Access中的vb获取订单号,并自动将其放入新项目详细信息表单中的字段中。我尝试了不同的方法,但似乎推荐使用OpenArgs。但是详细信息表单不会打开,我会收到运行时错误。 以下是问题的详细信息-非常感谢您的建议: 所涉及的表格和字段包括: 带订单的表格为FRMPEDIDOAVIFIND 带有订单行的表单为frmPedidoAvifi dtlAdd(用于添加详细信息但不用于查看现有详细信息的单独表单)。 两种表单上订单号的字段均为PedidoAvifiNo。这是两个表中的数字字段,通过此字段通过一对多关系链接 主窗体:按钮弹出明细窗体,代码如下: 主窗体按钮上的代码:Ms access MS Access-使用新记录打开表单并插入以前表单中的值,ms-access,runtime-error,openargs,openform,Ms Access,Runtime Error,Openargs,Openform,我在MS Access数据库中有一个表单,它列出了带有订单号的订单,每页一个订单。表单底部有一个按钮,用于打开另一个表单,为订单添加项目 我正在尝试使用MS Access中的vb获取订单号,并自动将其放入新项目详细信息表单中的字段中。我尝试了不同的方法,但似乎推荐使用OpenArgs。但是详细信息表单不会打开,我会收到运行时错误。 以下是问题的详细信息-非常感谢您的建议: 所涉及的表格和字段包括: 带订单的表格为FRMPEDIDOAVIFIND 带有订单行的表单为frmPedidoAvifi d
Sub AddDetails_Click()
Dim strDocName As String
strDocName = "frmPedidoAvifi-dtlAdd"
' Open frmPedidoAvifi-dtl form in data entry mode and store PedidoAvifiNo in the form's OpenArgs property.
DoCmd.OpenForm strDocName, , , , acFormAdd, , [frmPedidoAvifiFind]![PedidoAvifiNo]
End Sub
详细表格:开放式物业
Private Sub Form_Open()
If Me.OpenArgs <> vbNullString Then
Me.PedidoAvifiNo = Me.OpenArgs
End If
End Sub
Private子表单_Open()
如果Me.OpenArgs vbNullString,则
Me.PedidoAvifiNo=Me.OpenArgs
如果结束
端接头
测试1:在主窗体上选择一个订单号,以便记录显示。
按按钮添加订单行。-运行时错误“2465”找不到引用的字段“|”。Debug突出显示DoCmd行
测试2:
将openform行更改为:
DoCmd.OpenForm strDocName,,acFormAdd,Me.PedidoAvifiNo
结果:-运行时错误2501 openForm操作已取消
谢谢,,
迈克·冈纳
Reus,西班牙您收到的错误意味着您拼错了控件的名称
PedidoAvifiNo
键入Me.
intellisense将为您提供可用字段的列表,查看与PedidoAvifiNo
类似的内容,或检查属性。切换一个字母而不注意是很容易的
至于第二部分,您应该使用Load事件,而不是
frmpedidoavi dtlAdd
上的Open事件,因为这些控件在Open事件中还不可用。您得到的错误意味着您拼错了控件的名称PedidoAvifiNo
键入Me.
intellisense将为您提供可用字段的列表,查看与PedidoAvifiNo
类似的内容,或检查属性。切换一个字母而不注意是很容易的
至于第二部分,您应该在
frmpedidoavi dtlAdd
上使用Load事件,而不是Open事件,因为控件在Open事件中还不可用。子窗体是在MS Access中处理此用例的好方法。子窗体很棒,但在需要大量控制的情况下,添加记录不是很好。@Remou:我想先看一个解释,解释一下为什么子窗体不能工作,然后再使用弹出窗体。@David-W-Fenton我没有说它不能工作,只是子窗体并不总是在需要大量控制的情况下添加数据的最佳方式。我完全支持子表单,但我并不总是使用它们来添加记录。我只是说,在主/子数据关系的情况下,子表单应该是第一个想到的UI实现,如果不起作用,您只会使用另一种方法(无论是弹出窗口,还是一对链接列表/详细信息子表单)。换句话说,从Access简化的方式开始,只有当简单的方式不够充分(或变得过于复杂)时,才会使事情复杂化。在MS Access中,子窗体是处理此用例的好方法。子窗体很棒,但在需要大量控制的情况下,添加记录不是很好。@Remou:我想先看一个解释,解释一下为什么子窗体不能工作,然后再使用弹出窗体。@David-W-Fenton我没有说它不能工作,只是子窗体并不总是在需要大量控制的情况下添加数据的最佳方式。我完全支持子表单,但我并不总是使用它们来添加记录。我只是说,在主/子数据关系的情况下,子表单应该是第一个想到的UI实现,如果不起作用,您只会使用另一种方法(无论是弹出窗口,还是一对链接列表/详细信息子表单)。换句话说,从访问变得简单的方式开始,只有当简单的方式不充分(或变得过于复杂)时,才会使事情复杂化。