Простой расчет TotalPrice = QTY * UnitPrice
Не рассчитывается, когда я получаю Цена за единицу для отображения в качестве валюты.
Цена за единицу извлекается из поля со списком в событии AfterUpdate какследует:
Private Sub cboItemRequested_AfterUpdate()
' 0 1 2 3 4 5 6
' ITEM Category SIZE UI PRICE NSN_ORDER UNIT_PACK
With Me
.txtDescrOfItemRequested = .cboItemRequested
.txtUI = .cboItemRequested.Column(3)
.txtQTY = 1
.txtUnitPrice = Format(.cboItemRequested.Column(4), "Currency")
.txtPartNumNSN = .cboItemRequested.Column(5)
End With
End Sub
Несмотря на то, что поле со списком правильно отображает валюту в 4-м столбце, оно не заполняет текстовое поле «Цена за единицу» правильно, если я не применю формат (XXXXX, «Валюта»).Кстати, текстовое поле также отформатировано как валюта.Однако, когда я получаю знак доллара, окончательный расчет TotalPrice остается нулевым.
Я даже применил следующее к txtTotalPrice
=Val(Nz([txtQTY],0))*Val(Nz([txtUnitPrice],0))
Я попытался ответить на @krish KM, поэтому я удалил все вышеперечисленное и вместо этого создал эту функцию:
Public Function cTotalPrice(vQTY As Variant, vUnitPrice As Variant) As Currency
'only return a value if both fields are numeric
If IsNumeric(vQTY) = True And IsNumeric(vUnitPrice) = True Then
cTotalPrice = vQTY * vUnitPrice
End If
End Function
который я только так называю, событие AfterUpdate поля cboItemRequested и любое время обновления txtQTY или txtUnitPrice
.txtTotalPrice = cTotalPrice(.txtQTY, .txtUnitPrice)
Но txtUnitPrice просто не отображается как валюта, даже если txtUnitPrice отформатирован как валюта.