+ Ответить в теме
Показано с 1 по 8 из 8

Тема: Найти букву в слове и заменить на *

  1. #1
    gartes is on a distinguished road
    Регистрация
    04.03.2008
    Сообщений
    3
    Вес репутации
    0

    Thumbs up Найти букву в слове и заменить на *

    Всем привет!!!
    Такая вот задачка!!!
    Есть база данных Access 2007 (Это не принципеально есть и на 2003)
    В базе есть таблица состоящая из 1 строки и 3 столбца т.е.
    I 1-Фамилия I 2_Имя I Очество I
    I _______________I________________ I______________I
    I Іванов I Ніколай I Петровіч I

    Так вот это написано на Украинском языке

    Нужен макрос который найдет букву "І" И заменит ее на "*"
    Затем найдет букву ну к примеру "О" и также заменит ее на "*"
    И так далие затем перейдет к следующему столбцу.

    Чесно говоря уже два дня убил нечего не получаеться!!!
    С VBA слабовато но уже купил книгу Джефф Споттс
    Ну вобщем если мне кот небудь в чем то поможет моей благодарности не
    будет придела !!!

    Спасибо за внимание к моему письму!!!!

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    system architect VictorM is on a distinguished road Аватар для VictorM
    Регистрация
    23.10.2006
    Адрес
    Lugansk, Ukraine
    Сообщений
    787
    Вес репутации
    13

    По умолчанию Re: Найти букву в слове и заменить на *

    Посмотрите тему http://forum.developing.ru/showthread.php?t=7247, может пригодится?

  4. #3
    system architect Aent will become famous soon enough Аватар для Aent
    Регистрация
    01.10.2006
    Адрес
    Saratov,Russia
    Возраст
    57
    Сообщений
    1,108
    Вес репутации
    14

    По умолчанию Re: Найти букву в слове и заменить на *

    А можно узнать какая цель замены? Access отлично работает и с дополнительными
    символами кириллицы с диакритическими значками.

  5. #4
    gartes is on a distinguished road
    Регистрация
    04.03.2008
    Сообщений
    3
    Вес репутации
    0

    По умолчанию Re: Найти букву в слове и заменить на *

    Цитата Сообщение от Aent Посмотреть сообщение
    А можно узнать какая цель замены? Access отлично работает и с дополнительными
    символами кириллицы с диакритическими значками.
    Созвучные фамилии
    Например Для поиска фамилии М_и_колаєнко или М_і_колаенко
    В любом случае как бы не вводили буквы "И" "і" надо заменить на звезды**
    У Меня у самого фамилия созвучная с предд..
    В паспорте и в дипломе одна в школьном аттестате немного по-другому


    PS ну не обязательно на "*" можно и на "?"
    Потом запрос access _a с этой таблице будет брать значения для условий отбора в базе данных.
    Напомню там всего одна строчка и три столбца. И это access.
    Если бы вопрос стоял с обнаружением в слове только 1й буквы к примеру "і" то можно было создать запрос обновления с функц.. Replace([(Таблица1)]![Поле1];"і";"*") но как заставить меняться переменную "і" скажем к примеру на "и","о" ,"а"
    Как это собрать в макросе я приблизно знаю а вот как стать на поле [(Таблица1)]![Поле1] и начать поиск символа а затем перейти на поле [(Таблица1)]![Поле2] почему-то еще не догнал .
    Последний раз редактировалось gartes; 05.03.2008 в 01:34.

  6. #5
    system architect Teslenko_EA will become famous soon enough
    Регистрация
    04.02.2007
    Адрес
    Сургут
    Возраст
    54
    Сообщений
    520
    Вес репутации
    13

    По умолчанию Re: Найти букву в слове и заменить на *

    Здравствуйте gartes.
    "... найдет букву "І" И заменит ...", это скорее не сама задача, а инструмент для ее решения. А вот эта строка "...запрос access _a с этой таблице..." похоже и есть то ради чего...
    Может "объявите" свою задачу, ради которой собираетесь что-то, где-то менять?
    Евгений.

  7. #6
    gartes is on a distinguished road
    Регистрация
    04.03.2008
    Сообщений
    3
    Вес репутации
    0

    По умолчанию Re: Найти букву в слове и заменить на *

    Цитата Сообщение от Teslenko_EA Посмотреть сообщение
    Здравствуйте gartes.
    "... найдет букву "І" И заменит ...", это скорее не сама задача, а инструмент для ее решения. А вот эта строка "...запрос access _a с этой таблице..." похоже и есть то ради чего...
    Может "объявите" свою задачу, ради которой собираетесь что-то, где-то менять?
    Евгений.
    простая база с фамилиями
    Для того чтоб небыло ошибок в поиске при вводе созвучных букв в фамилиях
    К примеру : Сидит девочка, ей надо найти Евгения
    Она наберет "Евгений" ----- только на украинском будет уже Буква "Э"
    Вобщем цель макроса изменить запись "ЕВГЕНИЙ" на "*ВГ*Н*Й" НУ ИЛИ ЧТОТО ПОХОЖЕЕ!!!
    Скажем есть масив букв который содержит "а";"о";"э";"ы";Ну пока и хватит так вот надо их заменнить на знак "*"
    Я уже разобрался как с помощью RecordSet считать данные осталось только как найти и заменить эти буквы вобщем я думаю задача не сложная!!!

  8. #7
    system architect Aent will become famous soon enough Аватар для Aent
    Регистрация
    01.10.2006
    Адрес
    Saratov,Russia
    Возраст
    57
    Сообщений
    1,108
    Вес репутации
    14

    По умолчанию Re: Найти букву в слове и заменить на *

    Как мы c Teslenko_EA и подозревали в базе ничего править не нужно. Нужно трансформировать входящий запрос в регулярное выражение для SELECT. Т.е на основании введённой строки строятся варианты транскрибирования и строится запрос которому удовлетворяют все эти варианты.

  9. #8
    system architect Teslenko_EA will become famous soon enough
    Регистрация
    04.02.2007
    Адрес
    Сургут
    Возраст
    54
    Сообщений
    520
    Вес репутации
    13

    По умолчанию Re: Найти букву в слове и заменить на *

    Здравствуйте gartes.
    Мне кажется источник строк Вашего рекордсета вполне можно создавать в подобной функции:
    Код :
    1. Function toQuery(sArg) As String
    2. Dim i%, s$
    3. toQuery = "SELECT * FROM Table "
    4. If Len(sArg & "") > 0 Then
    5.     s = "'*'"
    6.     For i = Len(sArg) To 1 Step -1
    7.         Select Case Mid(sArg, i, 1)
    8.             Case "а", "о", "э", "ы" 'список символов требующих замены
    9.                 s = "'?' & " & s
    10.             Case Else
    11.                 s = "'" & Mid(sArg, i, 1) & "' & " & s
    12.         End Select
    13.     Next
    14.     toQuery = toQuery & " WHERE Name1 Like " & s
    15. End If
    16. End Function
    а в качестве ее аргумента используйте поле ввода. Конструкция может иметь подобный вид:
    Код :
    1. ...
    2. sSQL = toQuery(Me.Поле1) ' строка запроса
    3. Set rs = ... ' создание и открытие рекордсета с использованием запроса sSQL
    Table - имя Вашей таблицы
    Name1 - поле по которому будет осуществляться выборка
    Me.Поле1 - поле на форме в которое девочка будет вводить мое имя.
    Евгений.

+ Ответить в теме

Похожие темы

  1. Макрос найти/заменить
    Доброй ночи товарищи. Есть небольшая задачка, с которой мне спровиться сложно в силу невладения VBA. А решить ее нужно обязательно средствами Excel....
    от Davidoff в разделе MS Office и VB(A).
  2. Диалоговое окно "Найти Заменить" в Excel
    Здравствуйте, Господа! Вопрос такого плана: есть ли возможность вызвать диалоговое окно "Найти (Find) Заменить (Replace)" в Excel VBA я не нашел в...
    от VictorM в разделе MS Office и VB(A).
  3. Как заменить код html ?
    Есть html страничка <html> ... <div id="1">1111</div> <div id="2">2222</div> <div id="3">3333</div> ... </html>
    от Croner в разделе JScript, VBScript, DHTML...
  4. Посчитать нули в слове
    Подскажите пожалуйста, как посчитать количество нулей в слове? Может алгоритм какой есть(команда)?
    от beryllium в разделе Ассемблер
  5. Модернизация функции Найти и Заменить в Ecxel
    Часто пользуюсь функцией "Найти и Заменить" в Excel, но вот ввод текста в поля "Что:" и "Заменить на:" меня несколько утруждает, хорошо что еще...
    от Avsha в разделе MS Office и VB(A).

Ваши права

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