Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Cool_Lamer
15 / 0 / 1
Регистрация: 12.09.2012
Сообщений: 43
1

ФИО в одной ячейке с заглавных букв и сокращение даты

20.05.2018, 14:20. Просмотров 1721. Ответов 20
Метки нет (Все метки)

Всем привет.
В Access'e полный ноль. Есть таблица, в ней колонка ФИО, подскажите как сделать, чтобы каждое слово начиналось с большой буквы (ну т.е. чтобы набираешь "иванов-пЕтров иВАн иВанович" изменяло на "Иванов-Петров Иван Иванович" и т.п.), порой не дожимаешь шифт и приходится перенабирать, тормозится процесс и тд.

И второй вопрос. Есть колонка даты рождения (формат даты) и у некоторых она не известна, чтоб Access не ругался, приходится набирать что-то вроде 01.01.1900 вместо просто 1900, это тоже можно как-то упростить?

Добавлено через 11 минут
Нашёл что-то про функцию
?StrConv("иванов-пЕтров иВАн иВанович",vbProperCase)

но не пойму как её применить.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2018, 14:20
Ответы с готовыми решениями:

ФИО начинать с заглавных букв
Здравствуй! Прошу вашей помощи, господа! В общем, в Excel на форме есть textbox, куда...

Все слова в ячейке с заглавных букв
Парни есть столбец с фио, но в нем есть ошибки, не все слова с больших букв, например Иванов иван...

Скопировать только отчество из другого листа в другой где в одной ячейке находится ФИО
Имеется цикл, который разбивает ФИО кот. находится в одной ячейке, нужно чтобы в другой лист...

В введенном тексте подсчитать количество цифр, всех букв, прописных букв, заглавных букв
Помогите,пожалуйста программа на QBasic В введенном тексте подсчитать количество цифр,всех букв,...

20
shanemac51
Модератор
Эксперт MS Access
9374 / 3706 / 590
Регистрация: 07.08.2010
Сообщений: 10,417
Записей в блоге: 2
20.05.2018, 14:24 2
она не особенно то и работает
Visual Basic
1
2
?StrConv("иванов-пЕтров иВАн иВанович",vbProperCase)
''Иванов-петров Иван Иванович
особенно для фамилий с тире
0
Cool_Lamer
15 / 0 / 1
Регистрация: 12.09.2012
Сообщений: 43
20.05.2018, 14:27  [ТС] 3
Подскажите хотя бы как и это решение сделать?
0
glsn
418 / 83 / 25
Регистрация: 12.04.2015
Сообщений: 322
20.05.2018, 16:56 4
Цитата Сообщение от Cool_Lamer Посмотреть сообщение
И второй вопрос. Есть колонка даты рождения (формат даты) и у некоторых она не известна, чтоб Access не ругался, приходится набирать что-то вроде 01.01.1900 вместо просто 1900, это тоже можно как-то упростить?

Для дат попробуйте использовать маски для ввода. Например, маска 00.00."2018";0;_ упростит Вам ввод до ввода только даты и месяца. Тут уже сами можете импровизировать.
0
Eugene-LS
5569 / 3045 / 644
Регистрация: 05.10.2016
Сообщений: 8,509
21.05.2018, 20:14 5
Цитата Сообщение от glsn Посмотреть сообщение
Для дат попробуйте использовать маски для ввода. Например, маска 00.00."2018";0;_ упростит Вам ввод ...
Для дат рождения?! - такой подход считаю неверным, если мы не регистрируем новорожденных.

Добавлено через 1 минуту
Цитата Сообщение от Cool_Lamer Посмотреть сообщение
подскажите как сделать, чтобы каждое слово начиналось с большой буквы (ну т.е. чтобы набираешь "иванов-пЕтров иВАн иВанович" изменяло на "Иванов-Петров Иван Иванович" и т.п.), порой не дожимаешь шифт и приходится перенабирать, тормозится процесс и тд.
Примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Function NormalString(val As Variant) As Variant
'Нормализация строки (ВАСЯ ПЕТРОВ = Вася Петров)
Dim i As Integer
Dim x As Integer
Dim cLet As String * 1
Dim lLet As String * 1
On Error GoTo NormalStringErr
    For i = 1 To Len(val)
        cLet = Mid(val, i, 1)
        If i = 1 Or lLet = " " Or lLet = "" Then
            NormalString = NormalString & UCase(cLet)
        Else
            NormalString = NormalString & LCase(cLet)
        End If
        lLet = cLet
    Next i
    Exit Function
NormalStringErr:
    NormalString = Null
End Function
2
glsn
418 / 83 / 25
Регистрация: 12.04.2015
Сообщений: 322
21.05.2018, 20:39 6
чего-то я упустил, что там речь шла о датах рождения оказывается )
0
Eugene-LS
5569 / 3045 / 644
Регистрация: 05.10.2016
Сообщений: 8,509
21.05.2018, 21:01 7
Цитата Сообщение от glsn Посмотреть сообщение
чего-то я упустил, что там речь шла о датах рождения оказывается )
Бывает ...

Добавлено через 14 минут
Цитата Сообщение от Cool_Lamer Посмотреть сообщение
И второй вопрос. Есть колонка даты рождения (формат даты) и у некоторых она не известна, чтоб Access не ругался, приходится набирать что-то вроде 01.01.1900 вместо просто 1900, это тоже можно как-то упростить?
Не колонка а поле.
Отмените обязательность заполнения в таблице или в форме.
0
Cool_Lamer
15 / 0 / 1
Регистрация: 12.09.2012
Сообщений: 43
22.05.2018, 17:25  [ТС] 8
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Примерно так:
Visual Basic
Так? (см.скрин) А что с эти потом делать?
0
Миниатюры
ФИО в одной ячейке с заглавных букв и сокращение даты  
Cool_Lamer
15 / 0 / 1
Регистрация: 12.09.2012
Сообщений: 43
22.05.2018, 17:28  [ТС] 9
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Не колонка а поле.
Отмените обязательность заполнения в таблице или в форме.
Это где-то в свойствах поля? Подскажите подробнее, пжлста!
Таблица во вложениях.
0
Вложения
Тип файла: rar таблица новая2.rar (5.93 Мб, 5 просмотров)
glsn
418 / 83 / 25
Регистрация: 12.04.2015
Сообщений: 322
22.05.2018, 20:06 10
таблица новая2.rar

поля, модули называть с разрывом имени не стоит
0
Cool_Lamer
15 / 0 / 1
Регистрация: 12.09.2012
Сообщений: 43
22.05.2018, 20:52  [ТС] 11
Цитата Сообщение от glsn Посмотреть сообщение
таблица новая2.rar
Надо чтоб в таблице было всё ровно, ну и форме само собой.
0
Kiriver
377 / 196 / 72
Регистрация: 09.04.2018
Сообщений: 900
22.05.2018, 21:21 12
glsn, объясните, пожалуйста, что значит:

Dim cLet As String * 1
Dim lLet As String * 1

Точнее *1 - это для чего?
0
glsn
418 / 83 / 25
Регистрация: 12.04.2015
Сообщений: 322
22.05.2018, 21:24 13
если мы прочитаем начальный вопрос - Вы говорили о корректном выводе данных, а теперь уже говорите о таблицах (т.е. уже корректно внесенных данных). Если в Ваших таблицах запись будет введена уже правильно - то обрабатывать её уже потом не нужно. При такой задаче есть разные способы, но, наверное, самым простым будет решение - использование масок ввода.
Как вариант: можно разбить отдельно фамилию (текстовое, символов так 20), имя (текстовое - 20), отчество (текстовое - 20)
с маской: >L<???????????????????
0
Capi
Модератор
Эксперт MS Access
2628 / 1469 / 361
Регистрация: 12.06.2016
Сообщений: 3,632
22.05.2018, 21:35 14
Цитата Сообщение от Kiriver
*1 - это для чего?
Это означает, что переменная объявлена как строка фиксированной длины - 1 символ.
Без этого - объявляется как строка переменной длины.

А адресовать вопрос нужно было Eugene-LS.
1
Kiriver
377 / 196 / 72
Регистрация: 09.04.2018
Сообщений: 900
22.05.2018, 21:46 15
Capi, спасибо, что-то пропустил, что это Eugene-LS'а код.

Добавлено через 2 минуты
Eugene-LS, еще вопрос вот по этой строке:

If i = 1 Or lLet = " " Or lLet = "" Then

почему в первом случае между "" есть пробел, а во втором нет? это опечатка или так надо?
0
Cool_Lamer
15 / 0 / 1
Регистрация: 12.09.2012
Сообщений: 43
23.05.2018, 02:07  [ТС] 16
Цитата Сообщение от glsn Посмотреть сообщение
если мы прочитаем начальный вопрос
если мы прочитаем первый пост, то там как-раз то и говорится о корректном вводе, а не редактировании уже имещегося в таблице.
Цитата Сообщение от glsn Посмотреть сообщение
Как вариант: можно разбить отдельно фамилию (текстовое, символов так 20), имя (текстовое - 20), отчество (текстовое - 20)
с маской: >L<???????????????????
Да это вариант, если есть время поникать поглубже в акцес, поредактировать уже существующую форму (т.к. добавление полей потянет за собой форму и нужно будет что-то выдумать с поиском по фио), но увы, времени нет вылизывать "так как должно быть", хочется просто упростить себе ввод данных и сократить кол-во ошибок.
0
Capi
Модератор
Эксперт MS Access
2628 / 1469 / 361
Регистрация: 12.06.2016
Сообщений: 3,632
23.05.2018, 10:11 17
Лучший ответ Сообщение было отмечено Cool_Lamer как решение

Решение

Цитата Сообщение от Cool_Lamer Посмотреть сообщение
хочется просто упростить себе ввод данных
Что касается первого вопроса, о ФИО, то в такой постановке, при вводе прямо в таблицу и при Ф-И-О в одном поле -
задача решения не имеет.
Что же касается второго вопроса, о дате - задайте значение по умолчанию, принятое для случаев неизвестности даты,
оно сразу будет появляться в новой записи

Но в целом по наблюдаемому подходу к делу - "скупой платит дважды", за эти несколько дней, что висит тема на форуме,
уже сделали бы, как рекомендуют, и все бы сдвинулось с мертвой точки.
1
alvk
Заблокирован
Эксперт MS Access
23.05.2018, 10:13 18
Цитата Сообщение от Cool_Lamer Посмотреть сообщение
но увы, времени нет вылизывать "так как должно быть"
значит не надо ничего спрашивать и делать, сэкономите время и себе и окружающим.
0
Cool_Lamer
15 / 0 / 1
Регистрация: 12.09.2012
Сообщений: 43
23.05.2018, 12:37  [ТС] 19
Цитата Сообщение от Capi Посмотреть сообщение
Что касается первого вопроса, о ФИО, то в такой постановке, при вводе прямо в таблицу и при Ф-И-О в одном поле - задача решения не имеет.
Вот, наконец-то, спасибо.

Цитата Сообщение от Capi Посмотреть сообщение
Что же касается второго вопроса, о дате - задайте значение по умолчанию, принятое для случаев неизвестности даты, оно сразу будет появляться в новой записи
Дело в том, что год то меняется. Ну по сути я понял.

Цитата Сообщение от alvk Посмотреть сообщение
значит не надо ничего спрашивать и делать, сэкономите время и себе и окружающим.
Если оно у вас такое дорогое, так проходили бы мимо, не писали ничего)

 Комментарий модератора 
похоже вы явно напрашиваетесь как минимум на предупреждение на неуважительное отношение к отвечающим

я их понимаю вполне --вопрос уже явно надоел(мягко говоря), да и ответ вам дали уже в самых первых топиках, а о том, что корректировка в таблицах узнаем только сейчас
0
alvk
Заблокирован
Эксперт MS Access
23.05.2018, 13:17 20
Цитата Сообщение от Cool_Lamer Посмотреть сообщение
Если оно у вас такое дорогое, так проходили бы мимо, не писали ничего)
Собственно это мой совет вам, не надо переворачивать.
0
23.05.2018, 13:17
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2018, 13:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Хелп. Сокращение ФИО
Здраствуйте. Столкнулся с такой бедой... В квитанциях ФИО печатается полностью. В базе...

Введите с клавиатуры некоторый текст и подсчитать в нем количество слов, букв, цифр,строчных букв, заглавных б
Напишите пожалуйста программу в С++: Введите с клавиатуры некоторый текст и подсчитать в нем...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.