将 Double 列中的每条记录乘以十进制数
Multiply every record in Double column with a decimal number
我有一个 Double 类型的列 'Price'。
我还有一个带有按钮的表单,该按钮应该打开一个输入框,让用户输入他们想要的折扣金额,例如用户输入 0,6(60% 折扣)并完成计算,1 - 0,6 = 0,4。 0,4 是价格列中每条记录相乘的数字。
我似乎无法正常工作。
我的一个尝试是在输入 0,5 时只乘以 5,它跳过了 5 之前的 0。这很奇怪。
Dim strDiscount As String
Dim discount As Double
Dim holder As Double
Dim strSQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
strDiscount = InputBox("Enter how much discount you want:", "Amount of discount")
holder = Val(strDiscount)
discount = (1-holder)
strSQL = "UPDATE Prislista SET Listpris = Listpris *" & _
discount
dbs.Execute strSQL
其中一次尝试给出了一条错误消息,告诉我我在 windows OS 上设置了错误的位置。关于使用逗号而不是点的事情。好吧,我有我的 windows 和 ms-access 瑞典语,输入折扣时使用逗号还是点对我来说并不重要。
虽然 access 中的用户界面将使用您的本地设置,但 VBA 仅使用美国设置。
因此您需要将 0,5
转换为 0.5
。
以下应该有效:
holder = Val(Replace(strDiscount,",","."))
首先,如果四位小数就足够了,请始终将金额和数量存储为货币。
接下来,使用 CCur 将本地化文本从 InputBox 转换为数字。
第三,使用Str将小数转换为中性字符串表达式。
然后:
Dim strDiscount As String
Dim discount As Currency
Dim holder As Currency
Dim strSQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
strDiscount = InputBox("Enter how much discount you want:", "Amount of discount")
holder = CCur(strDiscount)
discount = (1 - holder)
strSQL = "UPDATE Prislista SET Listpris = Listpris * " & Str(discount) & ""
dbs.Execute strSQL
示例:
strDiscount = "0,6"
holder = CCur(strDiscount)
discount = 1 - holder
? Str(discount)
.4
我有一个 Double 类型的列 'Price'。 我还有一个带有按钮的表单,该按钮应该打开一个输入框,让用户输入他们想要的折扣金额,例如用户输入 0,6(60% 折扣)并完成计算,1 - 0,6 = 0,4。 0,4 是价格列中每条记录相乘的数字。 我似乎无法正常工作。
我的一个尝试是在输入 0,5 时只乘以 5,它跳过了 5 之前的 0。这很奇怪。
Dim strDiscount As String
Dim discount As Double
Dim holder As Double
Dim strSQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
strDiscount = InputBox("Enter how much discount you want:", "Amount of discount")
holder = Val(strDiscount)
discount = (1-holder)
strSQL = "UPDATE Prislista SET Listpris = Listpris *" & _
discount
dbs.Execute strSQL
其中一次尝试给出了一条错误消息,告诉我我在 windows OS 上设置了错误的位置。关于使用逗号而不是点的事情。好吧,我有我的 windows 和 ms-access 瑞典语,输入折扣时使用逗号还是点对我来说并不重要。
虽然 access 中的用户界面将使用您的本地设置,但 VBA 仅使用美国设置。
因此您需要将 0,5
转换为 0.5
。
以下应该有效:
holder = Val(Replace(strDiscount,",","."))
首先,如果四位小数就足够了,请始终将金额和数量存储为货币。
接下来,使用 CCur 将本地化文本从 InputBox 转换为数字。
第三,使用Str将小数转换为中性字符串表达式。
然后:
Dim strDiscount As String
Dim discount As Currency
Dim holder As Currency
Dim strSQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
strDiscount = InputBox("Enter how much discount you want:", "Amount of discount")
holder = CCur(strDiscount)
discount = (1 - holder)
strSQL = "UPDATE Prislista SET Listpris = Listpris * " & Str(discount) & ""
dbs.Execute strSQL
示例:
strDiscount = "0,6"
holder = CCur(strDiscount)
discount = 1 - holder
? Str(discount)
.4