【问题标题】:IF the sum of a column is <= 0 then如果一列的总和 <= 0 那么
【发布时间】:2012-01-23 01:32:30
【问题描述】:

我正在为一个正在访问的项目制作一个收款系统,但我遇到了障碍。

背景 按钮中涵盖了多种形式。单击按钮将数据添加到表 (TblCurSale),包括项目的描述和价格。每个表单还有一个“总计”按钮,可将您发送到付款屏幕,这样做会将 TblCurSale 中的数据复制到另一个表 (TblCalc)

TblCalc 有列 SaleID、Item(项目名称)、SalePrice。报表自动添加销售价格列

总表上有两个子报表,TBLCurSale 和 TblCalc。

在总屏幕上有一个文本字段,用户在其中输入钱,然后按支付,将这个数字作为负数输入到 TblCalc 中,然后刷新页面,以便出现新的总数。在子报告的底部。

问题 我需要一个 IF vba 代码,以便在 SalePrice 列的总和

Private Sub Pay_Click()

Dim SQLPay As String
Dim SQLToTable As String
Dim SQLMoney As Variant

SQLPay = "INSERT INTO TblCalc(SalePriceTotal) VALUES (-'" & TxtPayment & "')"
SQLToTable = "INSERT INTO TblTotalSale (CurrentSaleID, SalePrice, Item) SELECT CurrentSaleID, SalePrice, Item FROM TblCurrentSale"
SQLMoney = "IF (SUM(SalePriceTotal) FROM TblCalc) <= 0 SELECT '1' ELSE '0'"

DoCmd.SetWarnings False
DoCmd.RunSQL SQLPay
DoCmd.RunSQL SQLMoney

If SQLMoney = 1 Then
DoCmd.RunSQL SQLToTable
Me.TxtPayment = ""
Me.Refresh
DoCmd.OpenReport "rptCalc"

Else

Me.TxtPayment = ""
Me.Refresh
Me.Refresh
End If

DoCmd.SetWarnings True

End Sub

【问题讨论】:

    标签: sql ms-access vba


    【解决方案1】:

    我认为您最好将其构建为事务表。因此,不要将付款插入单独的表中,而是在 TblTotalSale 中添加另一行,其中项目描述为“付款”,值为负数。然后,您可以简单地将 SalePrice 列相加,得出未结余额。它还允许您针对一次销售记录多笔付款。

    对于负销售,我认为您应该在表单上放置一些验证代码,以防止用户输入负商品价格(在表单的 beforeInsert 和 beforeUpdate 事件中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多