如何在frmxsddzj_child里面将窗体分成上下两部分,当选中某订单记录时,其对应的三包零件明细就显示在下半窗体里。方法如下: 为xsddzj建一个窗体,名称可以自定,但不要和系统内名称冲突。这里暂定为qryxsddzj窗体,以qryxsddzj查询为数据源。并在窗体里输入如下代码
Private Sub Form_Current()
On Error Resume Next
DoCmd.RunCommand acCmdSelectRecord
End Sub
Private Sub 销售订单号_GotFocus()
On Error Resume Next
Me.Parent.销售订单号 = Me.销售订单号
‘将此子窗体的主键值赋予主窗体相应控件
Forms!usysfrmmain!labFind.Tag = 1
Forms!usysfrmmain!btnEdit.Tag = 999
End Sub
在frmxsddzj_child 里建立两个子窗体,名称自定即可。上面一个子窗体以刚才的qryxsddzj为源对象,下面一个窗体以frmxsddsblj为源对象。关键点是在主窗体里建立一个“销售订单号”文本控件,起作用是起到建立两个子窗体间的联系,也使系统平台内的一系列功能可以顺利锁定主键“销售订单号”。如果觉得多余,可以将其属性设置为不可见。并在窗体代码内输入如下代码:
Public Sub btnDel()
If MsgBox("您确认要删除吗?", vbYesNo + vbInformation, Forms!usysfrmLogin.Caption) = vbYes Then
DoCmd.Echo False
DoCmd.RunSQL "delete * from tblxsddzj where xsddid='" & Forms!usysfrmmain!frmChild.Form.销售订单号 & "'"
DoCmd.RunSQL "delete * from tblxsddsblj where xsddid='" & Forms!usysfrmmain!frmChild.Form.销售订单号 & "'"
Forms!usysfrmmain!frmChild.SourceObject = "frmxsddzj_child"
DoCmd.Echo True
End If
End Sub
Public Sub btnFind()
DoCmd.OpenForm "usysfrmFind"
Forms!usysfrmFind!cobfldName.RowSourceType = "值列表" '文本型对应 3 ,日期型对应 1 ,数值型对于 2
Forms!usysfrmFind!cobfldName.RowSource = "销售订单号;3;整机名称;3;客户名称;3;整机数量;2;订货日期;1;最早交货日期;1;最晚交货日期;1;联系人1;3;联系人2;3;操作员;3;操作时间;1;"
'指定查询数据来源
Forms!usysfrmFind!labDataSource.Caption = "qryxsddzj"
End Sub
Public Sub FindEnd()
Forms!usysfrmmain!frmChild.Form!Child1.Form.RecordSource = Acchelp_ChildFormRecordSource("qryxsddzj", "销售订单号", True)
End Sub