Вычисляемое текстовое поле не вычисляет, если Цена за единицу отформатирована как Валюта - PullRequest
1 голос
/ 11 июля 2019

Простой расчет 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 отформатирован как валюта.

1 Ответ

1 голос
/ 26 июля 2019

РЕШЕНИЕ: Мне нужно было отформатировать txtUnitPrice с VBA

.txtUnitPrice = Format(.cboItemRequested.Column(4), "Currency")

Да, txtBoxPrice, отформатированный как валюта, просто почему-то игнорирует его.

Но для того, чтобы TotalPrice вышел правильно, нужно было пересчитать его в конце. Это был первый совет, который мне дали. Спасибо криш КМ

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