|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.08.2011, 00:21 | #1 |
Форумчанин
Регистрация: 07.10.2010
Сообщений: 144
|
Ввод/вывод даты в TextBox
Доброго всем времени суток!
Подскажите пожалуйста как можно в VBA реализовать что бы в TexBox1 вводилась вручную дата форматом dd.mm.yyyy, а в TexBox2 одновременно выводилась дата на 30 дней позже. У меня лично проблема с преобразованием значения с ТексБоска в дату и наоборот. Функция CDate всегда возвращает перекрученую дату mm.dd.yyyy А DateValue не присваивается значению TextBox2. Перепробывал много разных комбинаций с этими функциямно,так что в принципе и нечего выложить в файле. И можно в догонку пару вопросов касательно VBA? Что делают / и \ в форматах ячейки? И может есть аналогb TextBox для работы с числами и датами? Последний раз редактировалось Severny; 27.08.2011 в 00:29. |
27.08.2011, 00:29 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
так пробовали?
textbox2.text = format(cdate(textbox1.text)+30, "dd.mm.yyyy")
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
27.08.2011, 00:50 | #3 |
Форумчанин
Регистрация: 07.10.2010
Сообщений: 144
|
отже ж...Все работает
Спасибо Игорь. Есть еще нюанс. Выдает ошибку когда я ввожу, допустим дату 31.01.2011, как "31." и "31/" Какой ввод понимает CDate? И тогда как записать дату предыдущих годов? И хотел еще спросить как правильно писать "dd.mm.yyyy" или "/dd./mm./yyyy" |
28.08.2011, 00:38 | #4 |
Форумчанин
Регистрация: 07.10.2010
Сообщений: 144
|
Какая разница между Cdate и DateValue? В даном примере одно работает другое нет.
|
28.08.2011, 00:42 | #5 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
CDate (функция) - преобразование выражения к типу Date
DateValue (функция) - возвращает дату
Анализ,обработка данных Недорого
|
28.08.2011, 01:00 | #6 |
Форумчанин
Регистрация: 07.10.2010
Сообщений: 144
|
Почему CDate не понимает ввод даты как dd/mm/yyyy или dd.mm.yyyy, а именно надо вводить через черту "-" день и месяц, при этом таким же способом год нельзя добавить. Тоесть год отличный от 2011 в даном случае ввести нельзя.
|
28.08.2011, 10:37 | #7 |
Форумчанин
Регистрация: 05.07.2011
Сообщений: 208
|
Вводить через "." или ",".
1.1 = 01.01.2011 1.1.1 = 01.01.2001 Код:
|
28.08.2011, 20:09 | #8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
А что мешает использованию формы для выбора даты?
Как, например, в этой программе: http://excelvba.ru/programmes/Fill_Invoice (там код открыт, вам достаточно перетащить в свой файл форму Form_SelectDate и модуль с кодом Date_and_Time) |
29.08.2011, 12:58 | #9 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
В дополнение ко всему ранее написанному - есть еще функция dateadd, это более универсальная штука.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
29.08.2011, 13:20 | #10 |
Форумчанин
Регистрация: 07.10.2010
Сообщений: 144
|
RAN. Ваш пример немного не подходит, я по событию в TexBox1?вычисляю дату и заношу ее в TexBox2. С кнопкой это реализовать легче. А вот для события Change видать прийдется делать проверку на ввод. В связи с этим меня интересут вопрос почему "5-5" распознается как дата 05.05.2011, а "5.5" или "5,5" уже нет. Что "хавает" Cdate?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ввод даты в БД | MrMorozko | PHP | 1 | 30.05.2011 11:27 |
ввод и вывод текста в textBox | SUDALV | Windows Forms | 15 | 06.03.2011 16:27 |
ввод в бд sql через textbox | Авторитет | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 1 | 17.02.2011 18:18 |
Ввод десятичных дробей в поля textbox формы | NikolayGVB | Microsoft Office Word | 9 | 26.04.2009 04:55 |
Как создать маску ввода даты в TextBox? | AnnNet | Microsoft Office Excel | 6 | 24.07.2008 10:42 |