北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
在新平台中,我想用绑定的来实现对子窗体某个列数据求和,但做好后子窗体数据更新后,主窗体的数据不能及时更新,为此我想通过代码实现
cnn.Execute "DELETE FROM [客户订单明细] WHERE [订单编号]=" & SQLText(Me![订单编号])
strSQL = "SELECT * FROM [客户订单明细] WHERE 1=2"
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
Set rstTmp = CurrentDb.OpenRecordset("TMP_客户订单明细")
Dim jssum As Integer
Do Until rstTmp.EOF
jssum = jssum + rstTmp!件数
Me.总件数 = jssum
rst.AddNew
rst![订单编号] = Me![订单编号]
rst![客户订单类型] = rstTmp![客户订单类型]
rst![客户订单号码] = rstTmp![客户订单号码]
rst![客户业务PO号] = rstTmp![客户业务PO号]
rst![品种] = rstTmp![品种]
rst![件数] = rstTmp![件数]
rst![最早交货日期] = rstTmp![最早交货日期]
rst![最晚交货日期] = rstTmp![最晚交货日期]
rst![备注] = rstTmp![备注]
rst.Update
rstTmp.MoveNext
Loop
rst.Close
rstTmp.Close
cnn.CommitTrans
MsgBoxEx "保存成功!", vbInformation
If Nz(Me.OpenArgs, "New") = "New" Then
ClearControlValues Me
CurrentDb.Execute "DELETE FROM [TMP_客户订单明细]"
Me.sfrDetail.Requery
Else
DoCmd.Close acForm, Me.Name, acSaveNo
End If
但现在的问题时,我保存后不能保存到表中,如果重新打开窗体就不会加载总件数。
可能是 rst![收货地址] = Me![收货地址]
rst![始发地] = Me![始发地]
rst![目的地] = Me![目的地]
rst![货物名称] = Me![货物名称]
rst![总件数] = Me![总件数]‘ 这里已经将空的值保存到表中了,按照程序执行的先后顺序,那么后面写的程序代码将不能执行保存的命令
rst![计费重量] = Me![计费重量]
rst![计费体积] = Me![计费体积]
rst![是否投保] = Me![是否投保]
rst![投保金额] = Me![投保金额]
rst![保险利率] = Me![保险利率]
rst![紧急程度] = Me![紧急程度]
rst![受理意见] = Me![受理意见]
rst![单据状态] = Me![单据状态]
rst![制单人] = Forms!SysFrmMain!Username
rst![制单时间] = Now
rst![审核人] = Forms!SysFrmMain!Username
rst![审核时间] = Now
rst![是否托运] = Me![是否托运]
rst![是否出库] = Me![是否出库]
rst![是否回单] = Me![是否回单]
rst![是否交客户] = Me![是否交客户]
rst.Update
rst.Close
cnn.Execute "DELETE FROM [客户订单明细] WHERE [订单编号]=" & SQLText(Me![订单编号])
strSQL = "SELECT * FROM [客户订单明细] WHERE 1=2"
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
Set rstTmp = CurrentDb.OpenRecordset("TMP_客户订单明细")
Dim jssum As Integer
Do Until rstTmp.EOF
jssum = jssum + rstTmp!件数
Me.总件数 = jssum 这里总件数的值不能保存到表,那么也就是再打开窗体时就不能加载了
rst.AddNew
rst![订单编号] = Me![订单编号]
rst![客户订单类型] = rstTmp![客户订单类型]
rst![客户订单号码] = rstTmp![客户订单号码]
rst![客户业务PO号] = rstTmp![客户业务PO号]
rst![品种] = rstTmp![品种]
rst![件数] = rstTmp![件数]
rst![最早交货日期] = rstTmp![最早交货日期]
rst![最晚交货日期] = rstTmp![最晚交货日期]
rst![备注] = rstTmp![备注]
rst.Update
rstTmp.MoveNext
Loop
rst.Close
rstTmp.Close
cnn.CommitTrans
MsgBoxEx "保存成功!", vbInformation
If Nz(Me.OpenArgs, "New") = "New" Then
ClearControlValues Me
CurrentDb.Execute "DELETE FROM [TMP_客户订单明细]"
Me.sfrDetail.Requery
Else
DoCmd.Close acForm, Me.Name, acSaveNo
End If
希望哪位老师予以帮助解决,或者在子窗体的件数更新事件中将合计数传递给主窗体的总件数!但不知如何去写代码?