Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Денежный формат
 
 автор: час   (21.11.2009 в 11:03)   личное сообщение
 
 

Хочется всё таки определиться, услышав компетентный совет по вопросу формата Currency
=============================================================================
Для хранения, расчёта и отображения
1.Хранить в таблицах Access - в денежном формате????
2. Хранить в переменных в программе - в денежном формате????
3. Расчёты в коде программы вести в - в денежном формате????
4. Отображать в полях (применительно к бесформатным полям VB6) ??????
или в VB6 всё же a полях есть свойство формат по умолчанию - я чёта не нащёл........
Количество - надеюсь надо хранить в формате - число ???
и можно использовать при расчётах как не преобразованное в Val(количество)

  Ответить  
 
 автор: час   (22.11.2009 в 20:24)   личное сообщение
 
 

  Ответить  
 
 автор: Гоблин   (22.11.2009 в 23:30)   личное сообщение
 
 

Ну а если для расчетов в простом числовом формате, а на выходе переводить в денежный. Да какая разница там все это.

  Ответить  
 
 автор: час   (24.11.2009 в 08:10)   личное сообщение
 
 

Нискази............

  Ответить  
 
 автор: kot_k_k   (24.11.2009 в 09:22)   личное сообщение
 
 

не знаю может и не правильно но я стараюсь в действительном формате, он более нормален

  Ответить  
 
 автор: Bellerofont   (24.11.2009 в 09:24)   личное сообщение
 
 

Вы продолжаете путать формат и тип поля

  Ответить  
 
 автор: kot_k_k   (24.11.2009 в 09:40)   личное сообщение
 
 

прав, но еще есть размер поля.

  Ответить  
 
 автор: Bellerofont   (24.11.2009 в 10:11)   личное сообщение
 
 

Для типа Currency размер (size) всегда = 8

  Ответить  
 
 автор: час   (24.11.2009 в 12:24)   личное сообщение
 
 

Точно

Для хранения, расчёта и отображения
1.Хранить в таблицах Access - в денежном типе???
2. Хранить в переменных в программе - в денежного типа????
3. Расчёты в коде программы вести в - в денежном типе???


или в VB6 всё же a полях есть свойство тип поля по умолчанию
- я чёта не нащёл.... ....

  Ответить  
 
 автор: Bellerofont   (24.11.2009 в 12:55)   личное сообщение
 
 

да

>или в VB6 всё же a полях есть свойство тип поля по умолчанию
нет

  Ответить  
 
 автор: час   (24.11.2009 в 19:18)   личное сообщение
 
 

Спасибо!!!!!!!
А что на эту функцую скажете


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

  Ответить  
 
 автор: Гоблин   (24.11.2009 в 22:11)   личное сообщение
 
 

Скажу что строчки не симметричные.
Хорошая длинная функция только ничерта не понял. Но красивая.

  Ответить  
 
 автор: час   (26.11.2009 в 09:21)   личное сообщение
 
 


приглядись повынимательнее

  Ответить  
 
 автор: osmor   (25.11.2009 в 10:38)   личное сообщение
 
 

очень странная функция
что значит цифра 3 которая стоит 4-м аргументом в InStr ?
почему не использовать val ?
почему не использовать Replace?

  Ответить  
 
 автор: snipe   (25.11.2009 в 11:27)   личное сообщение
 
 

вроде
в currency сотые отделяются от целого через , (запятую) а у вас точка
может я и ошибаюсь

  Ответить  
 
 автор: час   (25.11.2009 в 13:10)   личное сообщение
 
 

Может быть............

  Ответить  
 
 автор: час   (25.11.2009 в 13:12)   личное сообщение
 
 

Summa = Left(sum, InStr(1, sum, "-", 3)

3 - это индекс константы VbTextCompare по моему

  Ответить  
 
 автор: osmor   (25.11.2009 в 13:16)   личное сообщение
 
 

Const vbTextCompare = 1

  Ответить  
 
 автор: час   (26.11.2009 в 09:19)   личное сообщение
 
 

ну я. название на память не помню

а компа под рукой нет

  Ответить  
 
 автор: osmor   (26.11.2009 в 09:23)   личное сообщение
 
 

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

  Ответить  
 
 автор: час   (26.11.2009 в 09:29)   личное сообщение
 
 



==============================
а ведь работает

видимо по умолчанию 1 применяет???????

  Ответить  
 
 автор: Vlad62   (30.11.2009 в 01:18)   личное сообщение
 
 

В таблицах - тип данных "Денежный", число знаков после запятой =2. Это общепринятый бухгалтерский формат, переменные - DIM X as Currency и все...
Никаких проблем с округлением не будет, но если считать налоги, то лучше в таблицах установить 4 знака после запятой (треклятый НДС 18% набирает ошибку в третьем знаке и итоги не идут)
Преобразование выражения к типу Currency см. функцию Ccur()

  Ответить  
 
 автор: kot_k_k   (30.11.2009 в 09:37)   личное сообщение
 
 

я с Аксом и его округлением борюсь постояннно, поэтому все делаю размер поля - "Действительное" и выкручиваю по ходу дела как мне нужно.

  Ответить  
 
 автор: Bellerofont   (30.11.2009 в 10:09)   личное сообщение
 
 

>то лучше в таблицах установить 4 знака после запятой (треклятый НДС 18% набирает ошибку в третьем знаке и итоги не идут)
Тип Currency и так сохраняет 4 знака после запятой, а прописывание 4-х знаков для format никак не сказывается на хранимых значениях.

  Ответить  
 
 автор: час   (30.11.2009 в 16:15)   личное сообщение
 
 

(треклятый НДС 18% набирает ошибку в третьем знаке и итоги не идут


Спасибо!!!!

  Ответить  
 
 автор: Гоблин   (30.11.2009 в 23:37)   личное сообщение
 
 

а компа под рукой нет

Час, а с чего ты это писал? Неужели с наручных часов?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList