проблема с умножением десятичных дробей в MS Access

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
SeregaD99
Сообщения: 3
Зарегистрирован: 12 фев 2008, 11:23

здравствуйте, ув. программисты

помогите пож. решить такую задачу.

в моей БД (см. вложение) в форме задумывалась такая задачка: при подстановке числа 25 в поле "масса навески" поле "МинерПрим:" умножается на 4 и результат отображается в поле "МинерПрим1:"
при подстановке числа 50 на 2 и числа 100 на 1. Всё работает, но при подстановке десятичной дроби в поле "МинерПрим:" счёт происходит по непонятной схеме, короче говоря, на десятичную дробь умножение происходит некорректно. Почему ума не приложу.

спасибо всем, кто откликнулся!

с уважением, Сергей
Вложения
ПортНовая 2003.zip
(61.26 КБ) 14 скачиваний
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Вот ваш код, который расчитывает коэф. умножения:

Код: Выделить всё

Public Function toProc(МасНавес As Object, МинерПрим As Object, Optional МинерПрим1 As Object) As Integer
Dim i%
If Not IsNumeric(МасНавес.Value) Then Exit Function
If Not IsNumeric(МинерПрим.Value) Then Exit Function
Select Case МасНавес.Value
    Case 100
        i = 1
    Case 50
        i = 2
    Case 25
        i = 4
    Case Else
        i = 0 '
End Select
toProc = МинерПрим.Value * i
On Error Resume Next
МинерПрим1 = toProc
End Function
В этом коде без труда можно догодаться, что на самом деле I = 100/МасНавес.Value, вот так и запишите, естественно с проверкой на 0. В старом варианте коэф. умножения был всегда равен 0, если МасНавес.Value был не равен 25,50 или 100.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Поскольку выкладывать RAR нельзя, он внутри zip-а.
Исправлено для работы с действительными
It's a long way to the top if you wanna rock'n'roll
Ответить