Страницы: 1
RSS
Проверка правильности заполнения формы, Форма ввода данных и как проверить правильность ее заполнения
 
Здравствуйте.
В xl хоть и "бот". но небольшой код уже написал.
Возникла проблема 31 февраля. Забить данную дату можно и xl ее успешно воспринимает и записывает.
*Пример, 31 Февраль 12 = 12.02.1931 как победить не знаю =(
Все бы ничего просто работать с этим будут бабульки и дуракоустойчивость должна быть высокая.
В форме уже сделано так чтобы в определенных полях можно забивать
Фамилия = только русский текст
Имя = только русский текст
Отчество = только русский текст
День = только цифры от 0 до 9
Год = только цифры от 0 до 9
Добился того чтобы можно было переключаться TAB или Enter
Потом буду доделывать форму дальше и если есть интерес опишу как что я сделал.

Сейчас прошу помощи в решении проблемы 31 февраля!!!!

Вот файл  https://cloud.mail.ru/public/tmq2/2BEVJhVHs
пароль 1
Изменено: Kor - 18.08.2017 10:27:06
 
Для таких же неучей, как и я прикладываю ссылки как я дошел до этого файла
Создание виндовс форм
                                        Часть 1 https://www.youtube.com/watch?v=4ZIMo82yZro
                                        Часть 2 https://www.youtube.com/watch?v=u6-gWWYM00k&t=1s
Разрешить вводить только определенные значения ttps://www.youtube.com/watch?v=5KNOoh9VpF0
Присвоение порядкового номера (id) в форме https://www.youtube.com/watch?v=hHJQQgf6Wi8
Проблема возможности редактирования выпадающего списка решена здесь https://youtu.be/3zi7D4Ms9JE?t=7m33s

Для отладки формы чтобы можно было переключаться TAB, Enter необходимо левой кнопкой мыши щелкнуть на нужный элемент в форме и в свойствах (Properties) (лево низ) на вкладке Alphabetic найти TabIndex и поставить нужны порядковый номер при прощелкивании табом или энтером нучиная с нуля (0,1,2,3...)

Размещение формы на экране (слева, справа, в центре и т.д.)
на вкладке Alphabetic найти StartUpPosition, где 2 - центр экрана.

Самое невероятное - ФОРМУ МОЖНО СВЕРНУТЬ   (UserForm1.Hide)
Изменено: Kor - 02.02.2018 22:59:35
 
TextBox
1) Следует помнить, что в TextBox ВСЕГДА текст. Там не может быть ни даты, ни чисел!!!
Проблема:
Проще говоря если вы сделаете модель
Код
 .Offset(TRows, 2).Value = TextBox1

где TextBox1 = "1"
то в в столбец вставится числа как "1",то в формате текста и произвести математические действия не получится.
Лечение:
1) самое простое (но не правильное) используя динамическую/умную таблицу в соседнем столбике прописать формулу =--A2
2) очень простое и правильное решение  .Offset(TRows, 2).Value =Val(TextBox2) для чисел
                                                                      .Offset(TRows, 3).Value = CDate(TextBox3) для дат


Изменено: Kor - 02.02.2018 23:00:27 (дополнения по функциям)
 
А ещё в выпадающем списке с месяцем можно написать что угодно
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
А ещё в выпадающем списке с месяцем можно написать что угодно
к чему это?
Проблема решена смотрите выше =)
Изменено: Kor - 13.10.2017 12:35:03
 
Цитата
Alemox написал:
А ещё в выпадающем списке с месяцем можно написать что угодно
Согласен, можно.
Цитата
Kor написал:
Проблема решена смотрите выше =)
Не понятно, где? Ввожу в поле месяц "ручками" любую абракадабру - "на ура" :)

Вам нужно разобраться со свойствами ComboBox- ов.
Смотрите в примере, изменил настройки combobox1,макрос на его события и добавил новое имя на лист Настройки.
К сожалению больше не могу писать, некогда. Все, Удачи
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Комментарии пользователей напоминают анекдот,
Ночь. пьяный мужик ползает под единственным фонарем на улице и что-то ищет. к нему подходит другой мужик и спрашивает:
- что ищешь?
- Да вот на бутылку деньги потерял.
- а где потерял?
-А вон у того забора
-А почему у фонаря ищешь?
- так здесь светлее

Так вот. Проблема вполне конкретная и мне про то что можно дописать что-то в выпадающем списке говорить не надо.Как сделать так чтобы при попытки сохранить данные 31,30 и когда нет 29 числа в месяце  появлялась предупреждение о попытки вбить неверную дату?[/SIZE][/CENTER][/FONT][/B]
Изменено: Kor - 02.02.2018 22:56:13
 
Код
    If IsDate(TextBox1) = False Then   'Этот опрератор проверяет является ли объект датой
        MsgBox "Это не дата"
        Exit Sub
    End If
Изменено: Kor - 02.02.2018 22:56:34
 
Цитата
Kor написал: Для таких же неучей, как и я прикладываю ссылки
Так почему же Вы запрещаете другим помогать таким же неучам? Не нравится подсказка - "спасибо, но мне бы по основному вопросу...", а не анекдоты расписывать. Толковые советы могут помочь другим.
Вы своей реакцией отталкиваете от себя помогающих.
 
Цитата
Kor написал:
Комментарии пользователей напоминают анекдот
Не анекдот:
Цитата
Kor написал:
чтобы можно было переключаться TAB, Enter необходимо левой кнопкой мыши щелкнуть на нужный элемент в форме и в свойствах (Properties) (лево низ) на вкладке Alphabetic найти TabIndex и поставить нужны порядковый номер
Есть способ гораздо проще: правый клик по форме - Tab Order и перемещайте контролы вверх/вниз для перехода в нужной последовательности. А с Вашим способом может возникнуть коллизия, потребующая дополнительных телодвижений.
Цитата
Kor написал:
прошу помощи в решении проблемы 31 февраля
Может быть (как вариант) использовать календарь? Тогда проблема сразу будет решена.
Цитата
Kor написал:
Самое невероятное - ФОРМУ МОЖНО СВЕРНУТЬ   (UserForm1.Hide)
А мы и не знали )) Правда, это не свернуть называется, а скрыть.
 
Юрий, календарь использовать нет возможности в виду его отсутствия. по поводу перемещения благодаю. протестю.=)
 
Я могу Вам подарить календарь. Правда, чужой, но собран на стандартных элементах и будет работать в любой версии ))
Сможете интегрировать в свою форму?
 
Юрий, благодарю Вас за помощь. Лично мне уже не надо.
благодаря IsDate(TextBox1) и автоматическому заполнеиню ячейки при нажатии я решил проблему.
думаю людям это понадобится.
Сейчасведу разработку форму регистрации входящих писем. Позднее выложу. Думаю, что тем кто ищет полезную информацию всегда будет приятно получить помощь (надеюсь, что такая помощь не окажется медвежей).
Изменено: Kor - 03.02.2018 20:48:04
 
vikttur,Согласен. Грубоват я. =(
Михаил Лебедев,Прошу прощения за свой резкий коммпентарий написанный ранее
 
Цитата
Kor написал:
Михаил Лебедев ,Прошу прощения за свой резкий коммпентарий
Не прошло и полгода :) ОК, я не в обиде.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Страницы: 1
Наверх