Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/74: Рейтинг темы: голосов - 74, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 08.09.2020
Сообщений: 16

Склонение фамилий и должностей в форме пользовательскими фукциями

21.09.2020, 09:57. Показов 17394. Ответов 54
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, форумчане

Помогите, пожалуйста, новичку с проблемой. В сети найден программный код, который бы склонял ФИО и должности сотрудников. Найдено здесь http://am.rusimport.ru/MSAccess/topic.aspx?ID=585.
В данном примере сделано через запрос, но мне это не совсем подходит. Хотелось бы, чтобы в форме при выборе значения в поле со списком, в другом поле появлялось значение просклоненного ФИО либо должности. Подскажите, пожалуйста, как эти функции приделать к полю в форме? Пример во вложении.

Спасибо.
Вложения
Тип файла: rar Пример_Склонение.rar (52.8 Кб, 38 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2020, 09:57
Ответы с готовыми решениями:

Склонение должностей
Нужно склонять должности в дательном падеже. Проблема в том что в идеале склоняться должно только первое слово в названии должности....

Не получается типовое склонение должностей
Нужна помощь. Задействовал типовой механизм склонений ФИО: СклонениеПредставленийОбъектов.ПросклонятьФИО("Иванов Иван...

Склонение Фамилий
Еще раз всем привет. Возникла еще одна проблема. Знаю есть много макросов, функций по изменению падежей Фамилий, имен и отчеств, но в моем...

54
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
25.09.2020, 12:18
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Критика и советы приветствуются.
Ну, например кроме перечисленных https://www.cyberforum.ru/post14862124.html:
Фамилии:
Семенов-Тян-Шанский
Демут-Малиновский, Гресь-Янковский, Тер-Иванов
Козодой
Красавец отличается от Соскавец и зависит от ударения
Казачок, Василёк – выпадение гласных в зависимости от …
Боец
Митяй
Герой
Ноша, Чаша отличается от Левша, Кваша
Хрын , Кмин, Блин, Сплин
Гений
Кий
Ен
Ус
Финские типа Куйкка, Саловаара не склоняются
Барин, Филин, Камин – в Тв. могут склоняться –ном или –ным в зависимости от …
Франклин, Юдин, Чаплин – если иностранная фамилия и без русского отчества то –ном, иначе -ным
Жемчужина, Малина, Корова – могут склоняться в зависимости от …
Грива
Тома, Дега, Люка, Ферма, Гамарра, Петипа – если происхождение французское и ударение на последнее -а, то не склоняются

Имена:
Лев
Павел
Ёж
Мия, Лия – в Дат. на –е, в отличие от Эмилия – на -и

Добавлено через 8 минут
При этом указанные в перечне фамилии и имена не единственные в своем роде, а представлены как примеры из похожего множества и для банального внесения в перечень исключений не подходят.
1
Эксперт MS Access
 Аватар для Eugene-LS
11478 / 5810 / 1489
Регистрация: 05.10.2016
Сообщений: 16,372
25.09.2020, 12:30
Цитата Сообщение от UUMprimor Посмотреть сообщение
Хрын ...
Имена:
Лев, Павел
А вы проверяли прежде чем писать? Или наобум?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub test01()
Dim s01$, s02$
    
    s01 = "Хрын лев олегович"
    s02 = "Грива павел олегович"
    
    Debug.Print GetFIOCase(s01, Null, Null, "Д")
    Debug.Print GetFIOCase(s02, Null, Null, "Д")
    Debug.Print String(68, "-")
    
    Debug.Print GetFIOCase(s01, Null, Null, "Р")
    Debug.Print GetFIOCase(s02, Null, Null, "Р")
    Debug.Print String(68, "-")
 
    Debug.Print GetFIOCase(s01, Null, Null, "Т")
    Debug.Print GetFIOCase(s02, Null, Null, "Т")
    Debug.Print String(68, "-")
 
End Sub
Пишет:
Visual Basic
1
2
3
4
5
6
7
8
9
Хрыну Льву Олеговичу
Гриве Павлу Олеговичу
--------------------------------------------------------------------
Хрына Льва Олеговича
Гривы Павла Олеговича
--------------------------------------------------------------------
Хрыным Левом Олеговичем
Гривой Павелом Олеговичем
--------------------------------------------------------------------
... что не так?
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
25.09.2020, 12:37
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Хрыным Левом Олеговичем
Нужно
Хрыном Львом Олеговичем
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Гривой Павелом Олеговичем
Нужно
Гривой Павлом Олеговичем
1
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
25.09.2020, 12:46
Почему то после переноса модулей у меня перестало все работать. На пример с базой выше мог бы перенести. Чтобы можно было вставить формулу в поле =,,,,, и выдавало значение?

Модуль склонения v004-1.zip (файл в сообщении повыше)
0
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
25.09.2020, 13:02
Цитата Сообщение от Eugene-LS Посмотреть сообщение
А вы проверяли прежде чем писать? Или наобум?
Истес-с-но проверил, раз замечания приветствовались.
При этом извиняюсь, не указал, что фамилия Грива имелась в виду женская.
1
Эксперт MS Access
 Аватар для Eugene-LS
11478 / 5810 / 1489
Регистрация: 05.10.2016
Сообщений: 16,372
25.09.2020, 13:21
Цитата Сообщение от Capi Посмотреть сообщение
Нужно
Хрыном Львом Олеговичем
Спасибо!
Глаз "Замылен" - точно!
... ща поправлю (попробую) ... Done!

А вот "Семенов-Тян-Шанский" - оставлен пока "на потом" ...

Добавлено через 18 минут
Цитата Сообщение от UUMprimor Посмотреть сообщение
При этом извиняюсь, не указал, что фамилия Грива имелась ввиду женская.
Сделано!
Спасибо.
0
Эксперт MS Access
 Аватар для Eugene-LS
11478 / 5810 / 1489
Регистрация: 05.10.2016
Сообщений: 16,372
25.09.2020, 13:49
Цитата Сообщение от ibrahimveg Посмотреть сообщение
Почему то после переноса модулей у меня перестало все работать.
Странно.
Название функций и модуль целиком изменилися, а машина сама этого не понимат!
... Как страшно жить!

Подправил.
Вложения
Тип файла: zip Модуль склонения v004-1_v003.zip (57.7 Кб, 23 просмотров)
0
Эксперт MS Access
 Аватар для Eugene-LS
11478 / 5810 / 1489
Регистрация: 05.10.2016
Сообщений: 16,372
25.09.2020, 14:09
UUMprimor, Capi, спасибо за подсказки.
Всё сразу реализовать не могу, но частично (30-40%) из высказанного удалось быстро исправить.
Например, в одном месте, вместо русского аргумента "Т" - была англ. буква "T" и аргумент не обрабатывался
Результат ниже.
Вложения
Тип файла: zip Падежи ФИО_v003.zip (74.7 Кб, 34 просмотров)
1
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
25.09.2020, 15:22
ОГРОМНОЕ СПАСИБО. Все четко пашет!
0
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
25.09.2020, 16:14
Лучший ответ Сообщение было отмечено mobile как решение

Решение

Цитата Сообщение от Eugene-LS Посмотреть сообщение
А времени часов пять вы мне подарите?
...
Не мучайтесь - Найдите более отлаженный вариант - этот далёк от идеала и точно не единственный - быстрее будет.
Разрешите подарить Вам указанные 5 часов или больше
Код окончательно не оптимизирован для того, чтобы был понятен алгоритм.
Вложения
Тип файла: rar склонениеПОпадежам.rar (413.1 Кб, 47 просмотров)
4
Эксперт MS Access
 Аватар для Eugene-LS
11478 / 5810 / 1489
Регистрация: 05.10.2016
Сообщений: 16,372
25.09.2020, 16:41
Цитата Сообщение от UUMprimor Посмотреть сообщение
Код окончательно не оптимизирован для того, чтобы был понятен алгоритм.
Где-ж вы раньше были с этим роскошеством?!
А я тут "велосипед изобретаю" ....
Спасибо.

Сейчас пишу блок проверки склонений на правильность по словарю - потом, если хотите, отпишусь о результатах ...
0
Эксперт MS Access
 Аватар для Eugene-LS
11478 / 5810 / 1489
Регистрация: 05.10.2016
Сообщений: 16,372
26.09.2020, 15:17
UUMprimor, как и обещал - закладываю результаты глубокого тестирования модуля "mdl_SklonenieFIO".
Неплохой модуль, мало ошибок, но они есть:

Все падежи:
Пётр = Пётру - Пётра - Пётром
Соловей Илья Кузьмич = Соловью ... ???
Шкворень Евгений Иванович = Шкворню ...
Куцый Фридрих Семенович = Куцему ...

Родительный:
Лебяжья = Лебяжьей (вместо Лебяжью )

Творительный:
Константин = Константиным
Валентин = Валентиным
Чаплин = Чаплином
Хемингуэй = Хемингуэим (вместо Хемингуэем)

Ещё про "ваш" модуль:
- Без чёткого указания рода выдаёт неверный результат
- При выполнении задаёт глупые вопросы про ударение в фамилиях (пришлось отключить все MsgBox -ы)
- Жутко медленно работает ! Всего 200 имён - 3 падежа - а ОНО мне машину аж подвешивает (!!!) - пришлось проверять на статичных данных.
- Нет нормализации строк результата.
0
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
26.09.2020, 23:49
Eugene-LS, спасибо за участие, редко бывает. Приятно.
Да, Пётр известный мне косячок еще у автора кода Крук Валерия, но как-то мною давно позабытый.
Спасибо, исправлю.

Удаление глупых, как Вы считаете, вопросов в MsgBox про ударение в фамилиях приводит к
большому количеству ошибок в фамилиях на -ец: КрАвец-Кравцем, но КравЕц-Кравцом,
в французских фамилиях на -а, -я, а также женских имен на -я.
Вероятно Вы нашли другой интересный способ правильного выбора варианта склонения?

По той же причине удаления у Вас слетело не глупое склонение фамилий с выпадающими
гласными (Соловей,Шкворень)? Посмотрите здесь, например: http://gramota.ru/class/istiny/istiny_8_familii
Примечание 1. Мужские фамилии восточнославянского происхождения, имеющие беглую гласную при склонении, могут склоняться двояким образом – с потерей и без потери гласного: Михаила Заяца и Михаила Зайца, с Александром Журавелем и Александром Журавлём, Игорю Грицевецу и Игорю Грицевцу. В ряде источников предпочтительным признается склонение без выпадения гласного (т. е. Заяца, Журавелем, Грицевецу), т. к. фамилии выполняют в том числе юридическую функцию. Но окончательный выбор – за носителем фамилии. При этом важно придерживаться выбранного типа склонения во всех документах.
Про фамилию Куцый не понял: Куцый-Куцему, но Куций-Куцию.

В фамилии Лебяжья тоже непонятка, что имелось ввиду.
если м.р. Родительный: в отношении кого? - Лебяжьи Сергея, Винительный: привлечь кого? Лебяжью Сергея
если ж.р.: опыт кого? Лебяжьей Анны, поощрить кого? Лебяжью Анну.

Фамилии, схожие с именами, оканчивающиеся на -ин не встречал. Но согласен, нужно учесть,
ведь каких только ФИО в т.ч. иностранных не бывает! А эти же имена в ТВ. падеже - ошибка, которая
вкралась по недосмотру, когда удалил излишнюю функцию проверки особенностей склонения имен
в отличие от похожих фамилий. Ранее это было давно исправлено:
https://www.sql.ru/forum/actua... g=20342615
Поправлю и сейчас. Спасибо.
Хемингуэй - аналогичный по характеру случай.

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

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

Про нормализацию строк результата не понял, что имелось в виду,
ведь смотря какой результат, как и куда вставляется.
Еще раз спасибо за участие и нахождение ошибок!
0
 Аватар для VinniPuh
9119 / 6108 / 591
Регистрация: 27.03.2013
Сообщений: 19,929
27.09.2020, 04:37
Цитата Сообщение от UUMprimor Посмотреть сообщение
...Eugene-LS, спасибо за участие, редко бывает. Приятно....
Мне, паталогическому лентяю, намного проще клацнуть на кнопку - "+1Спасибо" чем портить пальцы, , расписывая как великолепен отвечающий.
Но, как говорится - "Доброе слово и кошке приятно"
Помечу ка я вас как - "Самого благодарного вопрошающего", а то Евгений возможно и не догадается.
0
Эксперт MS Access
 Аватар для Eugene-LS
11478 / 5810 / 1489
Регистрация: 05.10.2016
Сообщений: 16,372
27.09.2020, 08:33
Цитата Сообщение от UUMprimor Посмотреть сообщение
Вероятно Вы нашли другой интересный способ правильного выбора варианта склонения?
Пока нет, и вряд-ли такой может быть

Вас слетело не глупое склонение фамилий с выпадающими
гласными (Соловей,Шкворень)? Посмотрите здесь, например: http://gramota.ru/class/istiny/istiny_8_familii
Пока проверял обчитался статей по теме - и мимо этой не прошел

Интернет (статьями) пишет что правильно так:
Соловей - Соловею (Например :https://www.analizfamilii.ru/S... eniye.html
Шкворень - Шквореню (Аналогично)

Вообще правила противоречивы и "правильные" варианты вызывают вопросы и недоумение.
Некоторые вообще упростили жизнь и перестали склонять корейские фамилии по жизни.

Тут, пока тестировал, родилась такая идея:
Если в приложении есть необходимость склонения имён, то строим базу с учётом возможных исключений:
Таблица с именительным падежом (собственно персонажей) -> Таблица исключений по трём падежам (один ко многим).
Дальше пишем функцию которая будет возвращать либо автоматическое склонение (результат функции склонения) либо данные из таблицы исключений (если есть)
И всё! -Насчёт исключений (число коих бесконечность) голову ломать не нужно.

В результате, на 1000 записей персонажей, будет примерно сотка записей исключений и минус головная боль .
0
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
28.09.2020, 10:34
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Неплохой модуль, мало ошибок, но они есть:
Исправил.
По поводу выпадающих гласных доверяю официальным экспертам:
https://www.cyberforum.ru/newr... &t=2700634
Про фамилию Чаплин, Дарвин и т.п. забыл уточнить в предыдущем посте
http://gramota.ru/class/istiny/istiny_8_familii
Вложения
Тип файла: rar склонениеПОпадежам.rar (284.0 Кб, 17 просмотров)
1
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
28.09.2020, 11:01
ссылка по поводу выпадающих гласных:
http://new.gramota.ru/spravka/... 0%B3%D0%BE
Действительно по мнению экспертов предпочтительнее склонять с невыпадающей гласной, но по правилам русского языка можно и с выпадающей.
ИМХО, для носителей русского языка склонение с выпадающей гласной выглядит грамматически неграмотно.
Аргумент о сохранении юридического соответствия при изменении ФИО именно с точки зрения носителя русского языка выглядит ничтожным.
1
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
25.11.2020, 15:46
Небольшая поправка предыдущего поста:
"ИМХО, для носителей русского языка склонение с НЕвыпадающей гласной выглядит грамматически неграмотно".
Да, склонение фамилий на -эй исправил. Также учел разницу склонения женских фамилий Больша́я и Бо́льшая и им подобным.
Вложения
Тип файла: rar склонениеПОпадежам.rar (270.4 Кб, 47 просмотров)
2
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
03.12.2020, 10:50
Из-за удаления когда-то отдельной функции SklonenieImyaMujsk,
склонявшую ИМЕНА с таким же окончанием как и в ФАМИЛИИ, но по-другому,
закралась ошибка в склонении имен типа Герогий, Сергий и т.п., хотя в примерах они были.
Исправил.
Вложения
Тип файла: rar склонениеПОпадежам.rar (1.15 Мб, 24 просмотров)
4
784 / 63 / 4
Регистрация: 28.05.2015
Сообщений: 99
05.12.2020, 15:56
На досуге перепроверил другие последствия удаления той функции.
Обнаружил еще огрехи в склонении имен Турсунбой, Евлой, Хэлбой,
которые также ранее были в примерах БД. Исправил.
Вложения
Тип файла: rar склонениеПОпадежам.rar (963.6 Кб, 97 просмотров)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2020, 15:56
Помогаю со студенческими работами здесь

Склонение имен и фамилий
Помогите с алгоритмом по "склонению" имен и фамилий? Пример: Петя Иванов - Пети Иванову и т.д. Куда копать???

Склонение фамилий по падежам
11. Вводят вопросы вида (кто, кого, кому, кем, на ком) и фамилию, например "Петренко". Ответ выдавать в виде "Петренко",...

Склонение фамилий по падежам
Вводят вопросы вида (кто, кого, кому, кем, на ком) и фамилию, например "Иванов". Ответ выдавать в виде , "Иванову",...

Склонение фамилий по падежам
Может быть сталкивался кто нить с таким макросом или программой что склоняла фамилии по разным падежам ! в инете есть но они демо версии (((

Склонение фамилий в родительный падеж
Всем привет, есть ли готовые макросы для Word которые будут склонять фамилии в род.падеж?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru