|
|
|
| Хочется всё таки определиться, услышав компетентный совет по вопросу формата Currency
=============================================================================
Для хранения, расчёта и отображения
1.Хранить в таблицах Access - в денежном формате????
2. Хранить в переменных в программе - в денежном формате????
3. Расчёты в коде программы вести в - в денежном формате????
4. Отображать в полях (применительно к бесформатным полям VB6) ??????
или в VB6 всё же a полях есть свойство формат по умолчанию - я чёта не нащёл........
Количество - надеюсь надо хранить в формате - число ???
и можно использовать при расчётах как не преобразованное в Val(количество) | |
|
| |
|
|
|
|
| Ну а если для расчетов в простом числовом формате, а на выходе переводить в денежный. Да какая разница там все это. | |
|
| |
|
|
|
| Нискази............ | |
|
| |
|
|
|
| не знаю может и не правильно но я стараюсь в действительном формате, он более нормален | |
|
| |
|
|
|
| Вы продолжаете путать формат и тип поля | |
|
| |
|
|
|
| прав, но еще есть размер поля. | |
|
| |
|
|
|
| Для типа Currency размер (size) всегда = 8 | |
|
| |
|
|
|
| Точно
Для хранения, расчёта и отображения
1.Хранить в таблицах Access - в денежном типе???
2. Хранить в переменных в программе - в денежного типа????
3. Расчёты в коде программы вести в - в денежном типе???
или в VB6 всё же a полях есть свойство тип поля по умолчанию
- я чёта не нащёл.... .... | |
|
| |
|
|
|
| да
>или в VB6 всё же a полях есть свойство тип поля по умолчанию
нет | |
|
| |
|
|
|
| Спасибо!!!!!!!
А что на эту функцую скажете
Public Function FUN_IN_Currency(sum As String) As Currency
Dim i As String, F As String
Dim Summa As String
If InStr(1, sum, ",", 3) <> 0 Then
Summa = Left(sum, InStr(1, sum, ",", 3) - 1)
Summa = Summa & "."
Summa = Summa & Mid(sum, InStr(1, sum, ",", 3) + 1)
sum = Summa
End If
If InStr(1, sum, "-", 3) <> 0 Then
Summa = Left(sum, InStr(1, sum, "-", 3) - 1)
Summa = Summa & "."
Summa = Summa & Mid(sum, InStr(1, sum, "-", 3) + 1)
sum = Summa
End If
If InStr(1, sum, ".", 3) = 0 Then
Summa = sum & ".00"
sum = Summa
End If
FUN_IN_Currency = sum
End Function
|
| |
|
| |
|
|
|
| Скажу что строчки не симметричные.
Хорошая длинная функция только ничерта не понял. Но красивая. | |
|
| |
|
|
|
|
| очень странная функция
что значит цифра 3 которая стоит 4-м аргументом в InStr ?
почему не использовать val ?
почему не использовать Replace? | |
|
| |
|
|
|
| вроде
в currency сотые отделяются от целого через , (запятую) а у вас точка
может я и ошибаюсь | |
|
| |
|
|
|
|
| Summa = Left(sum, InStr(1, sum, "-", 3)
3 - это индекс константы VbTextCompare по моему | |
|
| |
|
|
|
|
| ну я. название на память не помню
а компа под рукой нет | |
|
| |
|
|
|
| VBA
vbUseCompareOption -1 Uses option compare.
vbBinaryCompare 0 Binary comparison
vbTextCompare 1 Textual comparison
vbDatabaseCompare 2 Comparison based on your database.
VB
Binary 0 Выполняет двоичное сравнение
Text 1 Выполняет сравнение текста
нет параметра равного 3 | |
|
| |
|
|
|
|
| В таблицах - тип данных "Денежный", число знаков после запятой =2. Это общепринятый бухгалтерский формат, переменные - DIM X as Currency и все...
Никаких проблем с округлением не будет, но если считать налоги, то лучше в таблицах установить 4 знака после запятой (треклятый НДС 18% набирает ошибку в третьем знаке и итоги не идут)
Преобразование выражения к типу Currency см. функцию Ccur() | |
|
| |
|
|
|
| я с Аксом и его округлением борюсь постояннно, поэтому все делаю размер поля - "Действительное" и выкручиваю по ходу дела как мне нужно. | |
|
| |
|
|
|
| >то лучше в таблицах установить 4 знака после запятой (треклятый НДС 18% набирает ошибку в третьем знаке и итоги не идут)
Тип Currency и так сохраняет 4 знака после запятой, а прописывание 4-х знаков для format никак не сказывается на хранимых значениях. | |
|
| |
|
|
|
| (треклятый НДС 18% набирает ошибку в третьем знаке и итоги не идут
Спасибо!!!! | |
|
| |
|
|
|
| а компа под рукой нет
Час, а с чего ты это писал? Неужели с наручных часов? | |
|
| |