|
Сумма прописью
|
|||
---|---|---|---|
#18+
Здравствуйте всем. Не подскажет ли кто, есть ли в MS Access 2000/XP встроенная функция (или, уже, может, есть разработанная кем-то) по типу как в 1С, которая позволяет преобразовывать денежные суммы в цифрах в суммы прописью (необходимо для отчета - ТТН в складской программе). В справке и умных книжках по Access ничего на эту тему не нашел, а в форуме копаться просто нет времени. Буду очень благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 10:04 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Спасибо огромное, будем разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 11:20 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
А вот вариант покороче. Написан мною в 1999 :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 12:02 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 12:24 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Хм. Ну да. Задумка более сильная, учитывая разные наименования единиц измерения и копейки, но: Код: plaintext
Вместо семь трилионов девятьсот восемьдесят четыре миллиарда сто шестьдесят шесть миллионов триста тридцать три рубля Ваш вариант выдал Девятьсот восемьдесят четыре миллиарда сто шестьдесят шесть миллионов тысяч триста тридцать три рубля 00 коп., куда-то дев трилионы. Хотя трилионы конечно редко нужны. Но вот слово выделенное жирным совершенно "не в кассу". Хотя код конечно короче. Я не глумлюсь, а лишь обращаю Ваше внимание на баг. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 12:45 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
и вправду. Спасибо. Поправил у себя и тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 14:56 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
а с триллионными суммами еще не встречался. Впрочем, чтобы их добавить, надо дописать две строчки: Код: plaintext 1. 2. 3. 4.
и проверить - возможно, вместо double надо будет использовать currency ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 15:01 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
ззы. Кстати, этот вариант отнюдь не самый быстрый, он только довольно короткий и простой. А у Андрея Митина вариант более функциональный. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 15:03 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Согласен. Ваш вариант изящней. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 16:03 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
хм... а currency, не возможно, а надо - точно... с округлением и потерями копеек проблем не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2004, 17:19 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
StrValue999 = "" & Choose(Fix(Summ - Fix(Summ / 1000) * 1000) \ 100, _ "сто ", "двести ", "триста ", "четыреста ", "пятсот ", _ "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ") "пятсот " - надо с мягким знаком сделать. "пятьсот" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 12:47 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Рекомендую! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 19:57 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Для коллекции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 21:14 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Ещё одна сумма прописью, которую я использую, работает нормально: Смотреть здесь: http://kuprava.narod.ru/rudn.htm и здесь с исправленной ошибкой: http://kuprava.narod.ru/omiss_ex.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2009, 02:56 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Можете ли подскажать почему у меня не работает ни один из скриптов... То ругается на "Имя?", то ругается на отстутствие необходимых библиотек при выполнении команд, например Str ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2010, 15:50 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
AgaralexМожете ли подскажать почему у меня не работает ни один из скриптов... То ругается на "Имя?", то ругается на отстутствие необходимых библиотек при выполнении команд, например Str Библиотеки. Наверняка. Зайдите в любом модуле в редактор ВБА. Далее меню-Tools-References. Ищите там среди библиотек с галочкой слово Missing. Снимите галочку с этой библиотеки ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2010, 16:17 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
rokРекомендую! Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104.
Знающие люди подскажите как пользоваться этим макросом ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 16:39 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
ArtemKruЗнающие люди подскажите как пользоваться этим макросом Что совсем ни ни? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 16:47 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
ArtemKru, Кем пользоваться?? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 16:48 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
alvkКем пользоваться?? ЧЕМ ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 16:48 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
ТвердолобыйЛамер, - Абрамыч, вы в партию вступили? - Ой, где? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 16:59 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
ArtemKrurokРекомендую! Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104.
Знающие люди подскажите как пользоваться этим макросом копируешь эту функцию в какой-нить модуль (закладка модули), затем там где надо вызываешь её (типа: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 17:45 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Видимо, функция требуется в форме или отчете? Тогда в том поле, где должна быть сумма прописью, в ControlSource (свойство Данные поля) пишете =TextSum([ЗдесьИмяПоляСуммы]) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 17:50 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Ну и да, как уже сказано, функция должна быть в обычном модуле. Или в модуле той формы/отчета, в котором она вызывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2012, 17:52 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
че-то вот изобрелось на досуге, вдруг кому понравится: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 10:51 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Вы на это тратили свое время, когда в гугле кучи разных сумм прописью ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 10:53 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Программист-ЛюбительВы на это тратили свое время, когда в гугле кучи разных сумм прописью ? ну я просмотрела кучку, почему-то не глянулись они мне) захотелось самой изобрести... бывает такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 12:18 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Программист-ЛюбительВы на это тратили свое время, когда в гугле кучи разных сумм прописью ? +1 Тоже никогда не пойму автора, я две штуки из этой темы у себя использую и проблем не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 12:42 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
alvkТоже никогда не пойму автора, Может человек для общего развития, так сказать повышения квалификации. Почему бы и нет? Приятно посмотреть на полоды своего труда. Вас же никто не заставляет использовать ее наработки,а не чьи нибудь другие. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 13:36 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
mousecче-то вот изобрелось на досуге, вдруг кому понравитсяврет при <100 Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 13:39 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
непоймучкаmousecче-то вот изобрелось на досуге, вдруг кому понравитсяврет при <100 Код: vbnet 1. 2.
спасибо огромное за тест, исправила: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171.
всем остальным мастера гугла и поиска - рада за вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:05 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
mousecспасибо огромное за тест, исправила: Теперь вроде как работает. mousecвсем остальным мастера гугла и поиска - рада за вас. Девушка не обращайте внимания. Они женоненавистники. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:12 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
mousec, :-) Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:42 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Вот написал бы кто универсальную функцию, которая годится для десятков языков... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:52 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Владимир Саныч, translate.google.com всем функциям функция ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:56 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
mousec, Зря Вы в качестве параметра функции взяли строку, а не число. Вот посудите сами что из этого вышло: Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 14:58 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
))) ну эти-то ошибки я знаю) точнее сказать - недочеты) при использовании этого модулька принимается в кач-ве н.у., что в качестве исходной строки передается результат неких вычислений, то есть НЕцифр там быть не может, кроме разделителя. единственная защита от дурака там стоит только на тип разделителя. если разделителя вообще нет на своем месте - сообщение об ошибке. поясню - вызывается эта функция из таких форм, как счет-фактура, счет, акт и расчет ОСАГО - расчет стоимости производится программно. единственное, что они мне пару раз учудили, было "а можно я вот тут вручную копеечки подправлю, а то у меня сдачи нету!..." после чего пропал разделитель или копеек стало три знака, или в разделитель зафигачили звездочку.... вопщем, как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 15:13 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
странный форум - а свои сообщения редактировать нельзя или мне не по глазам кнопочка? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 15:14 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
mousecстранный форум - а свои сообщения редактировать нельзя или мне не по глазам кнопочка? Низя. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 15:56 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
mousecвсем остальным мастера гугла и поиска - рада за вас. я лично эту фразу не понял. перевод на русский будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 17:08 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
alvkmousecвсем остальным мастера гугла и поиска - рада за вас. я лично эту фразу не понял. перевод на русский будет? Там опечатка. Должно быть мастераМ. "Сообщаю мастерам поиска, что рада за вас". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 18:42 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Владимир Санычalvkпропущено... я лично эту фразу не понял. перевод на русский будет? Там опечатка. Должно быть мастераМ. "Сообщаю мастерам поиска, что рада за вас". Там жоще: обращение, выделяемое занятыми :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 19:12 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Поправка:Владимир Санычпропущено... Там опечатка. Должно быть мастераМ. "Сообщаю мастерам поиска, что рада за вас". Там жоще: обращение, выделяемое занятыми :-) нет, там была именно опечатка - нехватка буквы М. то не выделенного запятыми обращения я еще, надеюсь, не дожила. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2012, 20:40 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Владимир Санычalvkпропущено... я лично эту фразу не понял. перевод на русский будет? Там опечатка. Должно быть мастераМ. "Сообщаю мастерам поиска, что рада за вас". спасибо за перевод, а то голову ломал. mousecто не выделенного запятыми обращения я еще, надеюсь, не дожила. вас с каждой фразой всё труднее и труднее понимать. то = до ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2012, 03:35 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Добавлю в копилку функцию, которая возвращает сумму прописью (сумма должна быть меньше миллиона, но руками можно и дописать при необходимости) на трех языках: русском, украинском и английском для валют: рубли, гривны, USD, Евро Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2012, 09:42 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
В форме базы данных есть два окошка, первое - это Список149, в нем отображается результат суммы, взятый из запроса. В Поле140 отображается сумма прописью. Обработка перевода в пропись естественно в модуле. Так вот при открывание формы в Поле140 перевод в пропись не появляется и возникает там только при нажатие мышкой на Список149. В чем проблема? Пишу под себя и сложно сразу разобраться во всех нюансах программирования. Private Sub Список149_BeforeUpdate(Cancel As Integer) Me.Поле140 = propiskop(Me.Список149) Me.Поле140.Requery End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2012, 16:56 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
serbar62, Для автоматического отображения суммы прописью, в ContolSource поля надо записать =НазваниеФункции(Аргумент) =propiskop(Список149) С названиями ваших полей немного сложно разобраться, надеюсь, угадала. Появление текста суммы прописью ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 09:28 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Спасибо за участие в горе моем. Но не работает. На картинке есть результат работы. Есть еще мысли? Или я где-то наглючил? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 15:05 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Исследования проблемы привели в модуль перевода в пропись. Показал на картинке. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 15:24 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
serbar62Исследования проблемы привели в модуль перевода в пропись. Показал на картинке. Чему у Вас равно N? Вы пытаетесь перевести в пропись пустое значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 16:17 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Если честно, то алгоритм сильно не копал и не боролся с ним. Взята заготовка с инета. Нажатием кнопки на поле все работает нормально. Вот сам текст алгоритма: Код: vbnet 1. 2.
Option Compare Database 'пример использования Sub FDGSFG() Debug.Print propiskop(12536.25) End Sub ' 'ИСПОЛЬЗОВАТЬ ЭТУ ФУНКЦИЮ!!! ' Function propiskop(num) ' Аргументы: положительное число < 1 000 000 000 000,457 ' Назначение: преобразует это число в число прописью (с рублями и с копейками) ' Возвращает: строку, содержащую число прописью ' например propiskop(3000119,472) -> три миллиона сто девятнадцать рублей 47 копеек ' Вызывает: функции prop3(), prop3t(), prop3rub() и propkop() ' Вызов: propiskop() ' Составил: 4.07.96г., дописаны копейки 12.01.98г. N = Int(((num - Int(num)) * 100) + 0.5) ' выделить копейки с правильным округлением S = propkop(N) ' преобразовать копейки N = Int(num) ' выделить рубли M = N - 1000 * Int(N / 1000) ' выделить трехзначное число S = prop3rub(M) + S ' преобразовать младшие три цифры и приписать рублей/рубля/рубль N = Int(num / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число тысяч L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "тысяча " Case 2 To 4 L = "тысячи " Case Else L = "тысяч " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "тысяч " End Select S = prop3t(M) + L + S ' вызов prop3t для преобразования тысяч End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число миллионов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "миллион " Case 2 To 4 L = "миллиона " Case Else L = "миллионов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "миллионов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования миллионов End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число миллиардов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "миллиард " Case 2 To 4 L = "миллиарда " Case Else L = "миллиардов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "миллиардов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования миллиардов End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число триллионов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "триллион " Case 2 To 4 L = "триллиона " Case Else L = "триллионов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "триллионов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования триллионов End If S = UCase(Mid(S, 1, 1)) + Mid(S, 2) ' первую букву сделать заглавной propiskop = S End Function Function prop3(N) ' Аргументы: трехзначное целое положительное число ' Назначение: преобразует это число в число прописью ' Возвращает: строку, содержащую число прописью ' например prop3(119) -> сто девятнадцать ' Вызов: из функции propis() ' Составил: 2.07.96г. S = "" Select Case (N - 100 * Int(N / 100)) ' выделить две последние цифры Case 10 S = "десять " Case 11 S = "одинадцать " Case 12 S = "двенадцать " Case 13 S = "тринадцать " Case 14 S = "четырнадцать " Case 15 S = "пятнадцать " Case 16 S = "шестнадцать " Case 17 S = "семнадцать " Case 18 S = "восемнадцать " Case 19 S = "девятнадцать " Case Else i = 10 * Int(N / 10) Select Case (N - i) ' выделить цифру единицы Case 1 S = "один " Case 2 S = "два " Case 3 S = "три " Case 4 S = "четыре " Case 5 S = "пять " Case 6 S = "шесть " Case 7 S = "семь " Case 8 S = "восемь " Case 9 S = "девять " End Select SS = "" i = i / 10 Select Case (i - 10 * Int(i / 10)) ' выделить цифру десятков Case 2 SS = "двадцать " Case 3 SS = "тридцать " Case 4 SS = "сорок " Case 5 SS = "пятьдесят " Case 6 SS = "шестьдесят " Case 7 SS = "семьдесят " Case 8 SS = "восемьдесят " Case 9 SS = "девяносто " End Select S = SS + S End Select SS = "" Select Case Int(N / 100) ' выделить цифру сотен Case 1 SS = "сто " Case 2 SS = "двести " Case 3 SS = "триста " Case 4 SS = "четыреста " Case 5 SS = "пятьсот " Case 6 SS = "шестьсот " Case 7 SS = "семьсот " Case 8 SS = "восемьсот " Case 9 SS = "девятьсот " End Select S = SS + S prop3 = S End Function Function prop3rub(N) ' Аргументы: трехзначное целое положительное число ' Назначение: преобразует это число в число прописью с допиской рублей/рубля/рубль ' Возвращает: строку, содержащую число прописью ' например prop3rub(132) -> сто тридцать два рубля ' Вызов: из функции propis() ' Составил: 8.01.98г. S = "" Rub = "гривен " Select Case (N - 100 * Int(N / 100)) ' выделить две последние цифры Case 10 S = "десять " + Rub Case 11 S = "одинадцать " + Rub Case 12 S = "двенадцать " + Rub Case 13 S = "тринадцать " + Rub Case 14 S = "четырнадцать " + Rub Case 15 S = "пятнадцать " + Rub Case 16 S = "шестнадцать " + Rub Case 17 S = "семнадцать " + Rub Case 18 S = "восемнадцать " + Rub Case 19 S = "девятнадцать " + Rub Case Else i = 10 * Int(N / 10) Select Case (N - i) ' выделить цифру единицы Case 0 S = Rub Case 1 S = "одна гривна " Case 2 S = "две гривны " Case 3 S = "три гривны " Case 4 S = "четыре гривны " Case 5 S = "пять " + Rub Case 6 S = "шесть " + Rub Case 7 S = "семь " + Rub Case 8 S = "восемь " + Rub Case 9 S = "девять " + Rub End Select SS = "" i = i / 10 Select Case (i - 10 * Int(i / 10)) ' выделить цифру десятков Case 2 SS = "двадцать " Case 3 SS = "тридцать " Case 4 SS = "сорок " Case 5 SS = "пятьдесят " Case 6 SS = "шестьдесят " Case 7 SS = "семьдесят " Case 8 SS = "восемьдесят " Case 9 SS = "девяносто " End Select S = SS + S End Select SS = "" Select Case Int(N / 100) ' выделить цифру сотен Case 1 SS = "сто " Case 2 SS = "двести " Case 3 SS = "триста " Case 4 SS = "четыреста " Case 5 SS = "пятьсот " Case 6 SS = "шестьсот " Case 7 SS = "семьсот " Case 8 SS = "восемьсот " Case 9 SS = "девятьсот " End Select S = SS + S prop3rub = S End Function Function prop3t(N) ' Аргументы: трехзначное целое положительное число ' Назначение: преобразует это число в число прописью ' Возвращает: строку, содержащую число прописью ' например prop3е(101) -> сто одна (тысяча) ' например prop3е(102) -> сто две (тысячи) ' Вызов: из функции propis() для тысяч ' Составил: 2.07.96г. S = "" Select Case (N - 100 * Int(N / 100)) ' выделить две последние цифры Case 10 S = "десять " Case 11 S = "одинадцать " Case 12 S = "двенадцать " Case 13 S = "тринадцать " Case 14 S = "четырнадцать " Case 15 S = "пятнадцать " Case 16 S = "шестнадцать " Case 17 S = "семнадцать " Case 18 S = "восемнадцать " Case 19 S = "девятнадцать " Case Else i = 10 * Int(N / 10) Select Case (N - i) ' выделить цифру единицы Case 1 S = "одна " Case 2 S = "две " Case 3 S = "три " Case 4 S = "четыре " Case 5 S = "пять " Case 6 S = "шесть " Case 7 S = "семь " Case 8 S = "восемь " Case 9 S = "девять " End Select SS = "" i = i / 10 Select Case (i - 10 * Int(i / 10)) ' выделить цифру десятков Case 2 SS = "двадцать " Case 3 SS = "тридцать " Case 4 SS = "сорок " Case 5 SS = "пятьдесят " Case 6 SS = "шестьдесят " Case 7 SS = "семьдесят " Case 8 SS = "восемьдесят " Case 9 SS = "девяносто " End Select S = SS + S End Select SS = "" Select Case Int(N / 100) ' выделить цифру сотен Case 1 SS = "сто " Case 2 SS = "двести " Case 3 SS = "триста " Case 4 SS = "четыреста " Case 5 SS = "пятьсот " Case 6 SS = "шестьсот " Case 7 SS = "семьсот " Case 8 SS = "восемьсот " Case 9 SS = "девятьсот " End Select S = SS + S prop3t = S End Function Function propis(num) ' Аргументы: целое положительное число < 1 000 000 000 000 ' Назначение: преобразует это число в число прописью (с рублями) ' Возвращает: строку, содержащую число прописью ' например propis(3000119) -> три миллиона сто девятнадцать рублей ' Вызывает: функции prop3(), prop3t() и prop3rub() ' Вызов: propis() ' Составил: 4.07.96г. N = Int(num + 0.5) ' для правильного округления M = N - 1000 * Int(N / 1000) ' выделить трехзначное число S = prop3rub(M) ' преобразовать младшие три цифры и приписать рублей/рубля/рубль N = Int(num / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число тысяч L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "тысяча " Case 2 To 4 L = "тысячи " Case Else L = "тысяч " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "тысяч " End Select S = prop3t(M) + L + S ' вызов prop3t для преобразования тысяч End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число миллионов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "миллион " Case 2 To 4 L = "миллиона " Case Else L = "миллионов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "миллионов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования миллионов End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число миллиардов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "миллиард " Case 2 To 4 L = "миллиарда " Case Else L = "миллиардов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "миллиардов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования миллиардов End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число триллионов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "триллион " Case 2 To 4 L = "триллиона " Case Else L = "триллионов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "триллионов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования триллионов End If S = UCase(Mid(S, 1, 1)) + Mid(S, 2) ' первую букву сделать заглавной propis = S End Function Function propisd(num) ' Аргументы: целое положительное число < 1 000 000 000 000 ' Назначение: преобразует это число в число прописью (без копеек) ' Возвращает: строку, содержащую число прописью ' например propisd(3000119) -> три миллиона сто девятнадцать ' Вызывает: функции prop3() и prop3t() ' Вызов: propisd() ' Составил: 4.07.96г. N = Int(num + 0.5) ' для правильного округления M = N - 1000 * Int(N / 1000) ' выделить трехзначное число S = prop3(M) ' преобразовать младшие три цифры N = Int(num / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число тысяч L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "тысяча " Case 2 To 4 L = "тысячи " Case Else L = "тысяч " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "тысяч " End Select S = prop3t(M) + L + S ' вызов prop3t для преобразования тысяч End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число миллионов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "миллион " Case 2 To 4 L = "миллиона " Case Else L = "миллионов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "миллионов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования миллионов End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число миллиардов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "миллиард " Case 2 To 4 L = "миллиарда " Case Else L = "миллиардов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "миллиардов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования миллиардов End If N = Int(N / 1000) ' отбросить три последние цифры M = N - 1000 * Int(N / 1000) ' выделить трехзначное число триллионов L = "" If M > 0 Then Select Case (M - 10 * Int(M / 10)) Case 1 L = "триллион " Case 2 To 4 L = "триллиона " Case Else L = "триллионов " End Select Select Case (M - 100 * Int(M / 100)) ' поправка для 11,12,13,14 Case 11 To 14 L = "триллионов " End Select S = prop3(M) + L + S ' вызов prop3 для преобразования триллионов End If S = UCase(Mid(S, 1, 1)) + Mid(S, 2) ' первую букву сделать заглавной propisd = S End Function Function propkop(N) ' Аргументы: двухзначное целое положительное число ' Назначение: преобразует это число в число с допиской копеек/копейки/копейка ' Возвращает: строку, содержащую число прописью ' например propkop(32) -> 32 копейки ' Вызов: из функции propiskop() ' Составил: 12.01.98г. S = " копеек" If N < 10 Or N > 19 Then i = 10 * Int(N / 10) Select Case (N - i) ' выделить цифру единицы Case 1 S = " копейка" Case 2 To 4 S = " копейки" End Select End If If N > 9 Then propkop = Str$(N) + S Else propkop = "0" + Mid(Str$(N), 2) + S End If End Function Код: vbnet 1. 2.
Модератор: Портянка убрана в спойлер ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 17:33 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
serbar62, У вас переменные беспризорные, не объявленные ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 17:47 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
serbar62Если честно, то алгоритм сильно не копал Зачем столько букв? Я спросил, чему равна переменная. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 18:00 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Владимир Саныч, коротко, не знаю. Весь алгоритм программы написан доступными средствами ACCESS без использования программирования VBA, но тут получается, без него никуда. Посему и прошу помощи, подробно объясните, где они, эти беспризорные переменные и как это безобразие исправить. Лучше на примере. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 20:45 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Самой программы (и того, что можно увидеть через форум) недостаточно. Надо запустить программу при помощи Аксесса, причем с теми данными, которые у Вас, дойти до того момента, когда оно выругается, и посмотреть, чему равна переменная. Этот процесс называется отладка, и для нее, как я уже сказал, нужен Аксесс и Ваши данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 20:58 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
P.S. У Вас уже есть картинка, где одна строка кода выделена желтым. Вот в этот момент наведите мышку на N. Появится надпись со значением этой переменной. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2012, 20:59 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Пишет N=Null, а propkop=Empty ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:59 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
serbar62Пишет N=Null Что и предполагалось. Значит, у Вас в данных где-то вместо суммы сидит дырка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 14:38 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Буду копать, непонятно одно, почему работает в случае нажатия клавишы на поле? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 18:59 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
В принципе выкопал, почему N=Null. Поле, куда записывается результат вычислений для перевода в пропись является списком. Туда результат вычислений попадает из запроса, по другому я не могу вставить результат суммирования. Если его преобразовать из списка полем, тогда переводит без проблем. Что можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2012, 02:11 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
serbar62Что можно сделать? первый столбец в поле со списком - value, второй - text. Думайте, решайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2012, 02:43 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Тут дело в том, что видимо при открытие открытие формы значение списка 0, а сумма появляется только при нажатие на список. По-этому не работает перевод. Интересно, как решается вывод суммы в других базах, когда надо суммировать значение и вывести результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2012, 08:49 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
Проблема была решена простым способом, без сложного алгоритма программирования :-). В запрос, который формировал сумму и отправлял ее в поле формы была введена дополнительная колонка и вставлена строчка: Выражение1: propiskop([ITOGO]). В результате в запросе в поле ITOGO формировалась сумма числами, а в поле Выражение1 сумма прописью. А ее уже потом вставлял куда надо без проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2012, 16:26 |
|
Сумма прописью
|
|||
---|---|---|---|
#18+
abend, как сменить отображаемую валюту? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2017, 12:53 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1610599]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 202ms |
0 / 0 |