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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Сумма прописью
 
 автор: Seryoga204   (16.11.2009 в 00:39)   личное сообщение
 
 

Подскажите, для преобразования числа в текст, использую макрос propis. Как сделать что бы поле в котором выводится результат преобразования т.е сумма прописью можно было редактироать. И еще основная ед измерения это шт. при переводе получается один шт, два шт, а надо одна шт, две шт., если исправить в макросе, тогда получается не правильно с миллионами - одна миллион шт, две миллион шт. Заранее спасибо.

  Ответить  
 
 автор: snipe   (16.11.2009 в 01:05)   личное сообщение
 
 

Я например не представляю себе как написать макрос что бы он переводил число в текст
Вероятнее всего все таки это что то написанное на VBA а вот это propis это название того что написано

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

ну и на счет исправления шт - пока ни чем помочь не могу по одной простой причине
для того что бы что-то править это что-то надо видеть

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

Давно делал такую штуку на запросах. Если удастся выдернуть из базы то выдам пример. А так подскажу - без функции IIF не получится. Разложи число на составляющие и вперед. Один, Два... потом десять, одиннадцать... потом двыдцать, тридцать, далее сто, двести... в итоге получишь двадцать&" "&один, тридцать&" "&четыре... четыреста&" "&пятьдесят&" "&шесть.
На счет штука или штуки тут проще. Если последняя справа 1 - то штука, если 2, 3, 4 - то штуки, если 5, 6, 7, 8, 9, то штук. Надеюсь суть понял?

  Ответить  
 
 автор: osmor   (16.11.2009 в 08:30)   личное сообщение
 
 

http://hiprog.com/index.php?option=com_search&Itemid=5&searchword=%EF%F0%EE%EF%E8%F1%FC%FE&submit=%CF%EE%E8%F1%EA&searchphrase=any&ordering=newest

  Ответить  
 
 автор: Bruno   (16.11.2009 в 12:34)   личное сообщение
 
 

Может это поможет: http://www.leadersoft.ru/russian/download/freeware2.html

  Ответить  
 
 автор: час   (16.11.2009 в 17:37)   личное сообщение
 
 

http://hiprog.com/index.php?option=com_content&task=view&id=392
Там вот есть ошибка в строке
nsu = (Len(ssu) + 2) 3
- я не понял как её исправить

  Ответить  
 
 автор: Seryoga204   (16.11.2009 в 20:56)   личное сообщение
 
 

Выкладываю пример

  Ответить  
 
 автор: Seryoga204   (16.11.2009 в 20:59)   личное сообщение
 
 

Были проблемы с интернетом, поэтому вчера недооформлил свой пост. http://slil.ru/28212410

  Ответить  
 
 автор: snipe   (17.11.2009 в 01:42)   личное сообщение
 
 

пока пытаюсь разобраться с функцией...

для того что бы можно было править поле количество прописью нужно сделать следующее
в свойствах - данные убрать =propis([количество]) (т.е. сделать поле не вычисляемым, а свободным)
на событие после обновления поля количество повешать вот этот код

If Me!количество = "" Or IsNull(Me!количество) Then
Me!количествопрописью = ""
Else
Me!количествопрописью = propis(Me!количество)
End If

этот же код повешать на событие текущая запись вашей формы

а с функцией буду разбираться

  Ответить  
 
 автор: Seryoga204   (17.11.2009 в 12:04)   личное сообщение
 
 

попробывал набоать код,поле не обновляется и выдает ошибку wrong number of arguments or invalid property assigment. Код вводил такой.
Private Sub Количество_AfterUpdate()
Me![Количество Прописью] = propisd(Me![Количество], "")
End Sub
Не пойму в чем ошибка?

  Ответить  
 
 автор: snipe   (17.11.2009 в 12:15)   личное сообщение
 
 

Потому что Ваша функция propisd просит всего один аргумент, а вы ему два подаете
вот так надо
Me![Количество Прописью] = propisd(Me![Количество])

  Ответить  
 
 автор: snipe   (17.11.2009 в 12:41)   личное сообщение
 
 

а еще в вашем примере поле [КоличествоПрописью] а не [Количество Прописью]
т.е. возможно что и так
Me![КоличествоПрописью] = propisd(Me![Количество])

  Ответить  
 
 автор: snipe   (17.11.2009 в 12:56)   личное сообщение
31 Кб.
 
 

вот - правка работает
до функции еще не добрался

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