Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
114 / 4 / 0
Регистрация: 07.09.2014
Сообщений: 328
1

Подсчет количества цифр в числе

04.02.2015, 16:09. Показов 1599. Ответов 10
Метки нет (Все метки)

как посчитать количество цифр в числе?
то есть в числе 45689 - при подсчете получалось 5 цифр.
В итоге нужно сделать проверку чтобы в поле таблицы (и соответствующее ему поле в форме) можно было ввести только 13 цифр

есть такой вариант для проверки, но нужно не просто проверить, а не дать ввести не 13 цифр
или хотя бы вернуть курсор в поле

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub kolvocifr()
 
n = Forms!Данные!огрн
 
k = 0
Do Until n < 1
k = k + 1
n = Int(n / 10)
Loop
 
If k <> 13 Then MsgBox "количество цифр - " & k & " т.е. не равно 13 для ОГРН"
 
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2015, 16:09
Ответы с готовыми решениями:

Подсчёт количества цифр в числе
Подсчитать k – количество цифр в десятичной записи целого неотрицательного числа n.

Подсчет количества цифр 5 в числе
Ищет только если один раз 5 в 4-рех значном числе, но если например 4551, щитает только одну , КАК...

Подсчет количества цифр равных 3 в числе
Вводиться число и в этом числе подсчитать количество цифр равно трем P.S Пожалуйста если не...

Подсчет количества одинаковых цифр в числе
Программа подсчета одинаковых цифр в числе.

10
1389 / 324 / 45
Регистрация: 16.04.2013
Сообщений: 764
Записей в блоге: 2
04.02.2015, 16:17 2
intersk, Размер поля?

Добавлено через 3 минуты
If Len(Me![Поле1].Text)=13 Then
1
Эксперт MS Access
26726 / 14405 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.02.2015, 17:42 3
Проверять надо в BeforeUpdate поля.
Visual Basic
1
2
3
Private Sub Поле_BeforeUpdate(Cancel As Integer)
   If Not me.Поле.text like string(13,"#") then Cancel=True
End Sub
Пока юзер не вобъет эту чертову дюжину, черта с два ему удастся слинять с поля :-)

Добавлено через 1 час 8 минут
Впрочем, в BeforeUpdate формы надежней. Если не попадать в поле, то проверки поля не будет и оно останется пустым. А от BeforeUpdate формы не отвертишься
Visual Basic
1
2
3
Private Sub Form_BeforeUpdate(Cancel As Integer)
   If Not me.Поле like string(13,"#") then Me.Поле.Setfocus: Cancel=True 
End Sub
1
114 / 4 / 0
Регистрация: 07.09.2014
Сообщений: 328
05.02.2015, 10:14  [ТС] 4
Цитата Сообщение от Волшебник 307 Посмотреть сообщение
Len(Me![Поле1].Text)=13
Цитата Сообщение от mobile Посмотреть сообщение
me.Поле.text like string(13,"#")
в чем принципиальное различие конструкций Len и like string (13...)?
ведь оба варианта считают количество символов (понимаю что вариант like string позволяет задать больше критериев)
0
994 / 431 / 123
Регистрация: 21.03.2013
Сообщений: 1,176
05.02.2015, 10:26 5
Цитата Сообщение от intersk Посмотреть сообщение
в чем принципиальное различие конструкций Len и like string (13...)?
а палец нажать Ф1, не легче - да и пользы больше, когда сам разберешься
0
114 / 4 / 0
Регистрация: 07.09.2014
Сообщений: 328
05.02.2015, 10:33  [ТС] 6
boby104, и что?
len - длина, количество символов
like string - "символы такие как".
Вопрос в другом - работают они одинаково или есть технические отличия?

Цитата Сообщение от mobile Посмотреть сообщение
Visual Basic
1
2
3
Private Sub Поле_BeforeUpdate(Cancel As Integer)
 If Not me.Поле.text like string(13,"#") then Cancel=True (1)
End Sub
код дает ошибку 2108 - надо сначала сохранить а потом уже установить фокус. Поэтому поставил на выход
(true пришлось заменить на 1, это правильно?)
0
994 / 431 / 123
Регистрация: 21.03.2013
Сообщений: 1,176
05.02.2015, 10:36 7
Цитата Сообщение от intersk Посмотреть сообщение
me.Поле.text
это (обращение к текст) возможно только когда фокус - курсор на поле
1
Эксперт MS Access
26726 / 14405 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.02.2015, 13:31 8
Лучший ответ Сообщение было отмечено intersk как решение

Решение

Цитата Сообщение от intersk Посмотреть сообщение
в чем принципиальное различие конструкций Len и like string (13...)?
Символ "#" для Like задает любую одиночную цифру. Len считает количество символов, не обращая внимания на то, что вводится: алфавит ли, цифра или служебный символ. Поэтому применение like string(13,"#") полностью отвечает Вашему ТЗ, где требуется ввод именно 13 цифр. А не любых 13 символов.
1
8128 / 5035 / 550
Регистрация: 27.03.2013
Сообщений: 18,002
05.02.2015, 13:56 9
Цитата Сообщение от mobile Посмотреть сообщение
...полностью отвечает Вашему ТЗ, где требуется ввод именно 13 цифр. А не любых 13 символов...
mobile - Ни чего удивительного в этом нет. я вот лично в процессе творческого экстаза иногда по 10 раз меняю правила игры пока не приходю, по моему мнению к идеальному решению, а то что хотелось раньше обычно уже устаревшее условие, и про него часто забываешь, и тем более сообщить об этом помогающим.
Ну это нам, из малышовой группы иногда можно и простить. Без должного опыта и знаний - сами не ведаем чего хотим и творим.
Будьте благосклонны, вы же добрый и хороший .
1
114 / 4 / 0
Регистрация: 07.09.2014
Сообщений: 328
09.02.2015, 15:35  [ТС] 10
Цитата Сообщение от mobile Посмотреть сообщение
применение like string(13,"#") полностью отвечает Вашему ТЗ, где требуется ввод именно 13 цифр. А не любых 13 символов
вроде знак "#" в маске обозначает, не только цифры в том числе пробелы и знаки + и -...
1
Эксперт MS Access
26726 / 14405 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
09.02.2015, 16:26 11
Лучший ответ Сообщение было отмечено intersk как решение

Решение

Набор спецсимволов маски и лайк отличаются. В маске ввод обязательной цифры - 0. А в Like решетка. Есть и другие различия.
Маска подстраивалась под Format, с которым многие спецсимволы совпадают. А Like пришел из SQL. В первых офисах акса вообще не было, он появился только в 1992 году еще вне офиса. Ворд и ексель уже были, где формат был изначально. И маска по спецсимволам была близка к форматам, ввиду некоторой логической общности. А Like, напротив тяготел с скулевскому лайку. Поэтому разница между маской и лайком не нулевая.
1
09.02.2015, 16:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2015, 16:26

Подсчет количества четных цифр в числе
Здравствуйте! Начал изучать PHP и столкнулся с проблемой. Необходимо организовать подсчет четных...

Подсчет количества цифр равных 3 в числе
подсчитать кол-во 3 в целом числеНазывайте темы информативно. Последнее предупреждение.

Подсчёт количества цифр в целом числе
Напишите программу, которая считывает целое число и определяет (выводя результат на печать),...

Подсчет количества цифр в числе (рекурсивно)
как сделать этот код с помощью рекурсии? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main()...

Подсчет количества цифр в вещественном числе
Насколько я понял, сделать это можно лишь с переводом в строковый тип, а вот сделать никак не могу....

Подсчет количества четных и нечетных цифр в числе
написать программу подсчитывающую кол-во четных и нечетных цифр в числе


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru