ЕСЛИ сумма столбца <= 0, то - PullRequest
1 голос
/ 23 января 2012

Я создаю кассовую систему для проекта в доступе, и я попал в блок.

Фон Есть множество форм, покрытых кнопками.Нажатие на кнопку добавляет данные в таблицу (TblCurSale), включая описание и цену товара.каждая форма также имеет кнопку «итого», которая отправляет вас на экран оплаты, при этом данные из TblCurSale копируются в другую таблицу (TblCalc)

TblCalc имеет столбцы SaleID, Item (название элемента), SalePrice,в отчет автоматически добавляется столбец цены продажи

. В итоговой форме есть два вложенных отчета: TBLCurSale и TblCalc.

На экране итогов есть текст, в котором пользователи вводят деньгиа затем нажмите pay, которые вводят этот показатель в TblCalc в виде отрицательного числа, а затем обновляет страницу, чтобы получить новый итог.в нижней части подотчета.

Проблема Мне нужен код IF vba, чтобы я мог поместить его так, чтобы при сумме столбца SalePrice <= 0 я мог выполнить несколько строккода.то, что у меня есть, ниже, так что любая помощь будет принята с благодарностью. </p>

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

1 Ответ

1 голос
/ 23 января 2012

Я думаю, вы бы лучше структурировали его как таблицу транзакций. Таким образом, вместо вставки платежа в отдельную таблицу, добавьте еще одну строку в TblTotalSale с описанием товара «Платеж» и значением в виде отрицательного числа. Затем вы можете просто сложить столбец SalePrice, чтобы получить непогашенный остаток. Он также позволяет записывать несколько платежей за одну продажу.

по отношению к отрицательной продаже, я думаю, вам следует добавить в форму код проверки, чтобы пользователи не могли вводить отрицательные цены на товары (в событиях beforeInsert и beforeUpdate в форме)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...