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

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжелое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WMR: 146037758184 Webmoney WMP: 209123518174 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелек для вашей помощи YooMoney 410013204813773
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Поиск в этой теме Опции просмотра Language
Старый 21.05.2009, 12:10   #1
Пользователь
 
Аватар для thebestperm
 
Пол:Мужской
Регистрация: 06.10.2008
Адрес: г. Пермь
Сообщений: 43
Репутация: 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 вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама


Реклама: металлочерепица мокрый асфальтвентилятор вкрф-ду №9.0 7,5 1000лупа 4-х кратнаяречные круизы из москвы на 2021 по океМеталлические поддоны


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

А может проще завести в таблице поля с фамилией в этих падежах и заполнять при внесении данных про студентов.
tomald вне форума
 
Ответить с цитированием Вверх
Старый 11.10.2009, 12: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 10:57
Модуль Ирдето. tico Модули и Карты доступа 5 04.02.2008 00:27
Модуль доступа X-CAM Platinium. davronbek Модули и Карты доступа 0 27.06.2007 05:27

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

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

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


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


Copyright ©2004 - 2021 2BakSa.WS

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