2015-05-15 7 views
0

У меня есть следующий код, я пытаюсь вычесть .5 из text53 объекта, если значение даты выше, чем 15, но я получаю ошибку "Invalid Use of property" ошибкуНе может вычесть значение из VBA собственности

Private Sub Report_Load() 
    Dim Maxdate As Integer, LValue As Integer, LValue2 As Integer 
    Dim Mvalue As Integer, Dvalue As Date, RateVal As Integer 

    LValue2 = 0.5 
    RateVal = Me.Text31.Value * Me.Text27.Value 
    Dvalue = Me.Text43 
    Mvalue = DateDiff("m", Me.Text41, Me.Text43) 

    If Format(Dvalue, "DD") >= 15 Then Me.Text53 - LValue2 

    Me.Text53 = Mvalue 
    Me.Text51 = Me.Text53 * RateVal 
End Sub 
+0

В какой строке это ошибка? –

+0

'If Format (Dvalue," DD ")> = 15 Then Me.Text53 -LValue2' – Rynoc

ответ

1

Try это:

Private Sub Report_Load() 

Dim Maxdate As Integer 
Dim LValue As Integer 
Dim LValue2 As Single 
Dim Mvalue As Integer 
Dim Dvalue As Date 
Dim RateVal As Integer 

LValue2 = 0.5 
RateVal = Me.Text31.Value * Me.Text27.Value 
Dvalue = Me.Text43 
Mvalue = DateDiff("m", Me.Text41, Me.Text43) 
Me.Text53 = Mvalue 

If Format(Dvalue, "DD") >= 15 Then 
    Me.Text53 = Me.Text53 - LValue2 
End If 
Me.Text51 = Me.Text53 * RateVal 

End Sub 

Я думаю, что ваша главная проблема заключается в следующем: Me.Text53 - LValue2

Вам нужно назначить т значение шляпы. Само по себе это приведет только к ошибкам. Изменение этой строки на Me.Text53 = Me.Text53 - LValue2 или Me.Text53 = Mvalue - LValue2 соответствует размеру счета.

Другие примечания: вы не можете назначить десятичное число целочисленному типу данных, оно округляет его до целого числа. Кроме того, назначение Mvalue Text53 должно происходить до вашего условного вычитания 0,5 или эта часть будет просто перезаписана.

+1

Это работает. просто нужно и IF после окончания на третьей до последней строке. – Rynoc

+0

Исправлено, спасибо. Я много работал в MS SQL, и у них есть эта разница. –

Смежные вопросы