Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Базы данных

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 21.05.2009, 11:10   #1
Пользователь
 
Аватар для thebestperm
 
Пол:Мужской
Регистрация: 06.10.2008
Адрес: г. Пермь
Сообщений: 44
Репутация: 11
Post модуль VBA в MS Access

Здравствуйте!
Вот какая проблема: есть список студентов в Им.падеже, необходимо просклонять все эти фамилии в родительный, дательный и винительный падежи.
Нашел тут какой-то модуль с разными склонениями, хотел приделать к БД, но видимо мозгов не хватает малёха
Код:
Rem  (c) Jurer Production Begin ( Start )
Rem  Номер версии 21 от 05.12.2003  - оптимизация кода + реализация равнодушия к регистрам.
Rem  Только не забывайте проголосовать "ИДЕЯ", а то программа будет работать неправильно! 
Rem  __________________________________________________________________ 
Rem 
Rem                            SuperJur.Narod.Ru
Rem 
Rem  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ SuperJur _ _ _ _ _ _ _ _ _ _ _ _ _ _
Rem 
Rem  _ _ _ _ _ _ _ _ _ _ _ _ _ IQ = ICQ#: 164599984 _ _ _ _ _ _ _ _ _ _
Rem  __________________________________________________________________ 
Rem  Сообщения о недоточётах, замечания, пожелания шлите в мыло: UGeleznyakov@esv.ryazan.ru
Rem  Гарантия 93 года и 8 месяцев!!!
Rem  Послегарантийное обслуживание - бесплатно!!!
Rem  Круглосуточная поддержка - все 24 часа в бою!
Rem  Ссылка на источник обязательна!
Rem  Эти программы защищены законом об авторских правах
Rem  ПРОВЕРЕНО! ВИРУСОВ НЕТ!!! АНТИВИРУСОВ ТОЖЕ!!!
Rem  SuperJur = Железняков Юрий Юрьевич ( Рязань - 2003 )

Function ПадежС(z971, z972, z973) As String
Dim z974 As String 'моё
Dim z975 As String 'моё
Dim z976 As String 'моё
Rem z971 - существительное, z972 - номер падежа, z973 - НЕ УКАЗЫВАЕТСЯ
z972 = IIf(IsEmpty(z972), 2, z972)
z973 = IIf(IsEmpty(z973), "*", z973)
z974 = Right(z971, 2)
z975 = IIf(z973 = "1", IIf(z974 = "ая", 8, 9), IIf(z974 = "ия", 7, InStr(".чайяь", Right(z974, 1))))
z976 = Len(z971) - 2
ПадежС = IIf(z972 = 1 Or InStr("ьжан итай", Right(z971, 4)) > 0, z971, IIf(z975 > 2, Left(z971, z976 + IIf(z975 = 8, 0, 1)), IIf(z974 = "ел", Left(z971, z976) + "л", IIf(z974 = "ев" And z973 <> "2", Left(z971, z976) + "ьв", z971))) + RTrim(Mid("а у а " + IIf(z973 = "2", Mid("оыыыее", InStr(" внтч", Right(z974, 1)) + 1, 1), "о") + "ме           а у а еме " + IIf(InStr("гжкхш", Left(z974, 1)) > 0, "и", "ы") + " е у ойе я ю я еме и е ю ейе и и ь ьюи и и ю ейи ойойуюойойойойу ойой", 10 * IIf(z975 = 6 And z973 <> "а", 4, z975) + 2 * z972 - 3, 2)))
Rem                              !-- ЗДЕСЬ МОЖНО ЗАДАТЬ ДРУГИЕ НЕСКЛОНЯЕМЫЕ ИМЕНА по последним четырем буквам - Гульжан Гульчитай
End Function

Function Падеж(z1, z2, z3) As String
Dim z4 As String 'моё
Dim Z5 As String 'моё
Dim z6 As String 'моё
Dim z7 As String 'моё
Dim z8 As String 'моё
Rem z1 - фамилия имя отчество например Железняков Юрий Юрьевич
Rem Падеж
Rem 2 - родительный  ( нет кого ?  ) Железнякова Юрия Юрьевича
Rem 3 - дательный    ( кому ?      ) Железнякову Юрию Юрьевичу
Rem 4 - винительный  ( вижу кого ? ) Железнякова Юрия Юрьевича
Rem 5 - творительный ( кем ?       ) Железняковым Юрием Юрьевичем
Rem 6 - предложный   ( о ком ?     ) Железнякове Юрие Юрьевиче
Rem Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю.
Rem Параметр Пол может не указываться, но при наличии фамилий с
Rem инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим
Rem параметром
Rem 1 - мужской
Rem 2 - женский
Rem ДЛЯ СКЛОНЕНИЕ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ КОНСТРУКЦИЮ Падеж(Профессия,Падеж,4)
Rem Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей
z1 = Trim(z1)
z2 = IIf(IsEmpty(z2), 1, z2)
z3 = Mid("ча" + Right(z1, 1) + "ч", IIf(IsEmpty(z3), 3, z3), 1)
z4 = InStr(z1 + " ", " ")
z1 = IIf(z2 > 0, z1, Replace(Left(z1 + " ", z4 + 1) + ". " + Mid(z1, InStr(Mid(z1 + "  ", z4 + 2), " ") + z4 + 2, 1) + ".", " .", ""))
z2 = Abs(z2)
Z5 = Left(z1, z4 - 1)
z6 = Right(Z5, 3)
z7 = Right(z6, 2)
z8 = Right(z7, 1)
Z5 = IIf(z3 = "а", IIf(z8 = "а" And z6 <> "ула" Or z7 = "ая", ПадежС(Z5, z2, "1"), Z5), IIf(InStr("ой ый ий", z7) And z6 <> "Цой", Left(Z5, z4 - 3) + (Mid(z7 + " огоомуого" + IIf(z7 = "ий" Or z6 = "гой" Or z6 = "хой", "и", "ы") + "м ом", z2 * 3 - 2, 3)), IIf(InStr("оеиую", z8) + InStr("аа еа ёа иа оа уа ыа эа юа яа", z7) = 0, ПадежС(Z5, z2, "2"), Z5)))
z8 = z4 + InStr(Mid(z1 + " ", z4 + 1), " ")
Падеж = IIf(z3 = "ч" And z4 = Len(z1) + 1, ПадежС(z1, z2, "*"), Z5) + " " + ПадежС(Mid(z1, z4 + 1, z8 - z4 - 1), z2, z3) + " " + ПадежС(Mid(z1, z8 + 1, Len(z1) - z8), z2, z3)
End Function
Rem (c) Jurer Production End ( Finish )


Private Sub Кнопка237_Click()  'моё
Dim my1 As String  'моё
Dim my2 As String  'моё
my1 = ПадежС("Яппаров", "2", "")  'моё
my2 = Падеж("Яппаров Илфат Раифович", "2", "")  'моё
MsgBox (my1)  'моё
MsgBox (my2)  'моё
End Sub
Помогите пожалуйста разобраться
__________________
Любить - значит желать другому того, что считаешь за благо, и желать притом не ради себя, но ради того, кого любишь, и стараться по возможности доставить ему это благо.
thebestperm вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама:


Старый 21.05.2009, 12:43   #2
tomald
Новичок
 
Пол:Женский
Регистрация: 19.07.2007
Сообщений: 9
Репутация: 1
По умолчанию Re: модуль VBA в MS Access

А может проще завести в таблице поля с фамилией в этих падежах и заполнять при внесении данных про студентов.
tomald вне форума
 
Ответить с цитированием Вверх
Старый 11.10.2009, 11:06   #3
ro_an
Новичок
 
Пол:Мужской
Регистрация: 01.05.2009
Сообщений: 2
Репутация: 0
По умолчанию Re: модуль VBA в MS Access

... есть такие функции на VB и немало (с учетом муж./жен. рода по отчеству, например), но если прикрутить не хватает опыта - однозначно в табличку готовые сохранить нужно....
ro_an вне форума
 
Ответить с цитированием Вверх
Старый 05.11.2009, 08:11   #4
vooov
Неактивный пользователь
 
Регистрация: 25.04.2007
Сообщений: 6
Репутация: 2
По умолчанию Re: модуль VBA в MS Access

ищите здесь, точно есть.
vooov вне форума
 
Ответить с цитированием Вверх
Старый 18.11.2009, 11:11   #5
begemot31
Старожил
 
Аватар для begemot31
 
Пол:Мужской
Регистрация: 06.04.2009
Адрес: г. Киев
Сообщений: 1,149
Репутация: 5038
По умолчанию Re: модуль VBA в MS Access

Самое обидное в том, что автоматически склонять не получиться. Ибо от программы требуется 100% точность. А реально существуют множество несклоняемых фамилий, не славянских и склоняемых по другим правилам.
Я предлагаю два варианта.
  1. Использовать дополнительные поля с родительным и дательным падежами.
  2. Переделать все отчеты под именительнй падеж.
Второй вариант проще. Кроме того ошибок существенно меньше. Особенно если клиент меняет фамилию. Часто бывает, что именительный падеж меняют, а об остальных забывают. Кроме того, часто бывает, что оператор, вводящий фамилию, не знает, как ее склонять. Даже филологи часто спорят в этом вопросе.
begemot31 вне форума
 
Ответить с цитированием Вверх
Старый 20.11.2009, 16:53   #6
glumba
Новичок
 
Пол:Мужской
Регистрация: 03.03.2009
Сообщений: 16
Репутация: 1
По умолчанию Re: модуль VBA в MS Access

однозначно нужно оставлять один падеж иначе глюков не оберёшся
другое дело, если задачка в институте такая
glumba вне форума
 
Ответить с цитированием Вверх
Старый 23.02.2010, 13:55   #7
ddmm
Неактивный пользователь
 
Пол:Мужской
Регистрация: 23.02.2010
Сообщений: 5
Репутация: 0
По умолчанию Re: модуль VBA в MS Access

Вставляешь этот код в какой-нибудь новый VB-модуль в Access'е, а потом используешь указанные ф-ции (Падеж, ПадежС) в своих вызовах.
ddmm вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужен модуль captcha proparket Perl 6 14.04.2008 09:57
Модуль Ирдето. tico Модули и Карты доступа 5 04.02.2008 00:27
Модуль доступа X-CAM Platinium. davronbek Модули и Карты доступа 0 27.06.2007 04:27

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 04:22. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.05045 секунды с 11 запросами