Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

开发平台--如何将公式的计算结果写入后台数据库

王萌萌  发表于:2016-11-09 16:13:04  
复制

我在平台上有个子窗体,其中的不含税金额和含税金额是用公式计算出来的,但是这个计算结果无法保存到后台数据库内。

代码如下:       

 rst![不含税单价] = rstTmp![不含税单价]
 rst![不含税金额] = rstTmp![不含税金额]
 rst![含税金额] = rstTmp![含税金额]
 rst![含税单价] = rstTmp![含税单价]

 

Top
王岚 发表于:2016-11-09 16:50:09
临时表已经有这个字段了。

孔凡旺 发表于:2016-11-09 16:58:39

将代码加入保存按钮的单击事件

Private Sub btnSave_Click()



仙来 发表于:2016-11-09 19:58:16
追加查询

MDZZ 发表于:2016-11-10 08:13:25
计算值有保存到临时表吗

王岚 发表于:2016-11-10 08:55:36

因为这个字段是通过公式计算出来的,所以不会写入临时表的。



王岚 发表于:2016-11-10 08:58:27

@孔凡旺   上面的代码就是写在保存代码里的。

Private Sub btnSave_Click()
    On Error GoTo ErrorHandler
    Dim strWhere      As String
    Dim strSQL        As String
    Dim cnn           As Object 'ADODB.Connection
    Dim rst           As Object 'ADODB.Recordset
    Dim rstTmp        As Object 'DAO.Recordset
    Dim blnTransBegin As Boolean

    If Not CheckRequired(Me) Then Exit Sub
    If Not CheckTextLength(Me) Then Exit Sub
    If Not CheckRequired(Me.sfrDetail) Then Exit Sub

    strWhere = "[单据编号]<>" & SQLText(Me![单据编号]) & " AND [单据编号]=" & SQLText(Me![单据编号])
    If DCount("*", "tbl_高压管销售清单", strWhere) > 0 Then
        MsgBoxEx "【单据编号】已存在,不允许重复录入。", vbCritical
        Exit Sub
    End If

    strWhere = "[单据编号]<>" & SQLText(Me![单据编号]) & " AND [销货单号]=" & SQLText(Me![销货单号])
    If DCount("*", "tbl_高压管销售清单", strWhere) > 0 Then
        MsgBoxEx "【销货单号】已存在,不允许重复录入。", vbCritical
        Exit Sub
    End If

    Set cnn = CurrentProject.Connection

    cnn.BeginTrans: blnTransBegin = True

    strSQL = "SELECT * FROM [tbl_高压管销售清单] WHERE [单据编号]=" & SQLText(Me![单据编号])
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then
        rst.AddNew
        rst![单据编号] = GetAutoNumber("高压管销货单号")
        rst![审核状态] = "待审核"
        rst![制单人] = [Forms]![sysFrmmain]![Username]
        rst![制单日期] = Now()

    End If
    rst![销货单号] = Me![销货单号]
    rst![供应商] = Me![供应商]
    rst![客户] = Me![客户]
    rst![审核人] = Me![审核人]
    rst![审核日期] = Me![审核日期]
    rst.Update
    Me![单据编号] = rst![单据编号]
    rst.Close

    strSQL = "SELECT * FROM [tbl_高压管销售商品明细] WHERE [单据编号]=" & SQLText(Me![单据编号])
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
    Do Until rst.EOF
        rst.Delete
        rst.MoveNext
    Loop
    Set rstTmp = CurrentDb.OpenRecordset("TMP_tbl_高压管销售商品明细")
    Do Until rstTmp.EOF
        rst.AddNew
        rst![单据编号] = Me![单据编号]
        rst![序号] = rstTmp![序号]
        rst![送货日期] = rstTmp![送货日期]
        rst![送货单号] = rstTmp![送货单号]
        rst![品名] = rstTmp![品名]
        rst![规格型号] = rstTmp![规格型号]
        rst![订单号码] = rstTmp![订单号码]
        rst![订单项目] = rstTmp![订单项目]
        rst![单位] = rstTmp![单位]
        rst![数量] = rstTmp![数量]
        rst![不含税单价] = rstTmp![不含税单价]
        rst![不含税金额] = rstTmp![不含税金额]
        rst![含税金额] = rstTmp![含税金额]
        rst![含税单价] = rstTmp![含税单价]
        rst![出货类别] = rstTmp![出货类别]
        rst.Update
        rstTmp.MoveNext
    Loop
    rst.Close
    rstTmp.Close
    cnn.CommitTrans: blnTransBegin = False

    If Form_SysFrmMain.sfrChild.SourceObject = "frm_高压管销售清单" Then
    Form_frm_高压管销售清单.RefreshDataList
    MsgBoxEx LoadString("Saved Successfully."), vbInformation, , 1000
    WriteOperationLog "高压管销售清单", "高压管销售清单"
    Me.sfrDetail.Requery
    End If

'    If Me.DataEntry Then
'        ClearControlValues Me
'        CurrentDb.Execute "DELETE FROM [TMP_tbl_高压管销售商品明细]"
'        Me.sfrDetail.Requery
'    Else
'        DoCmd.Close acForm, Me.Name, acSaveNo
'    End If

ExitHere:
    Set rst = Nothing
    Set cnn = Nothing
    Set rstTmp = Nothing
    Exit Sub

ErrorHandler:
    If blnTransBegin Then
        cnn.RollbackTrans
        blnTransBegin = False
    End If
    RDPErrorHandler Me.Name & ": Sub btnSave_Click()"
    Resume ExitHere
End Sub



MDZZ 发表于:2016-11-10 13:13:01

Set rstTmp = CurrentDb.OpenRecordset("TMP_tbl_高压管销售商品明细")

rst![不含税单价] = rstTmp![不含税单价]
        rst![不含税金额] = rstTmp![不含税金额]
        rst![含税金额] = rstTmp![含税金额]
        rst![含税单价] = rstTmp![含税单价]
     

 你要是这么加    rsttmp 难道不是临时表中数据? 临时表中数据是空   难道不是将空保存进表了  难道这样写不需要将数据保存到临时表吗 ? 

改成rst![不含税金额] = rstTmp![不含税单价]*rstTmp![数量]

rst![含税金额] = rstTmp![含税单价]*rstTmp![数量]



总记录:7篇  页次:1/1 9 1 :