我正在开发一个访问数据库,我有多个字段。
需要计算折扣,但是我不知道在TotalPrice超过50的情况下如何将其设置为30%。如果TotalPrice在折扣超过50时自动更新会很有用太
答案 0 :(得分:1)
设置一个新的查询,引入Product Quantity,ProductPrice和TotalPrice。然后,在查询的设计视图中,添加以下字段:
Discount: IIF((ProductQuantity * ProductPrice) > 50, 30, 0)
如果您不熟悉IIF语句,则上述内容如下:“如果ProductQuantity时间ProductPrice大于50,则设置Discount = 30,否则设置Discount = 0”
如果总价格小于或等于50,这将设置折扣= 0,因此如果需要其他内容,请编辑最后一个部分。另外,我对你的字段名称做了假设,所以你可能也需要调整它们,但你明白了。
如果您需要折扣以实际反映总价格的30%,那么如果看起来像这样:
Discount: IIF((ProductQuantity * ProductPrice) > 50, (ProductQuantity * ProductPrice) * .30, 0)
答案 1 :(得分:0)
如果这是数据输入屏幕您可以将After_Update
事件添加到Sandwich Price
和Sandwich Quantity
Private Sub SandwichPrice_AfterUpdate()
update_total
End Sub
Private Sub SandwichQuantity_AfterUpdate()
update_total
End Sub
Private Sub update_total()
Dim total AS Double
If IsNull(Me.SandwichPrice) OR IsNull(Me.SandwichQuantity) Then Exit Sub
total = Me.SandwichPrice * Me.SandwichQuantity
SELECT CASE total
CASE 51 to 1000
Me.Discount = 0.3
CASE Else
Me.Discount = 0
END SELECT
Me.TotalPrice = total - (total * Me.Discount)
End Sub
这样做可以添加CASE
语句来添加多个折扣级别,即您可以添加CASE 10 TO 20
一个新折扣,当TotalPrice
为{{{}时,它会适用1}}。
这将允许您的查询查询从折扣返回正确的值。我不认为这应该在查询查询中处理,而是在数据存储本身中处理。