powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / поиск в форме
19 сообщений из 19, страница 1 из 1
поиск в форме
    #39231489
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем ХОРОШИЙ праздников!

Возник небольшая проблемка)
Для спецов это семечки конечно.

В текстовом поле в форме - после внесения текста осуществляю поиск существующей записи в другой таблице:

Код: vbnet
1.
2.
3.
4.
5.
6.
If rst.EOF Or rst.BOF Then Exit Sub
rst.MoveFirst
rst.FindFirst "имя='" & Me.имя & "'"
If rst.NoMatch Then Exit Sub
Me.Undo
Me.Bookmark = rst.Bookmark



Проблема (ошибка/debug) возникает когда вносится англо-текст с апострофом типа: ITan's
Как подправить? если кому не трудно пояснить
...
Рейтинг: 0 / 0
поиск в форме
    #39231528
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо удваивать апостроф в поисковом слове. Смотрите ФАК - Формирование строки SQL-запроса в VBA ( http://www.sql.ru/faq/faq_topic.aspx?fid=157 )
...
Рейтинг: 0 / 0
поиск в форме
    #39231544
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо за ответ!

Прочитал насколько смог понять)
Другое дело как мне использовать
strWhere = "WHERE field=""" & "a""""a's" & """"
в своем случае... с
rst.FindFirst "кличка='" & Me.кличка & "'"
в VBA честно говоря неуч)

Найденную запись мне нужно открывать в форме для изменения (не просто заполнить поля формы данными из записи)
...
Рейтинг: 0 / 0
поиск в форме
    #39231550
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
rst.FindFirst "имя='" & Replace(Replace(Me.имя, "'", "''"), """", """""") & "'"
...
Рейтинг: 0 / 0
поиск в форме
    #39231553
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делаю так как рекомендовал)):

Private Sub имя_AfterUpdate()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("select * from таблица")
If rst.EOF Or rst.BOF Then Exit Sub
rst.MoveFirst
rst.FindFirst "имя='" & Replace(Replace(Me.имя, "'", "''"), """", """""") & "'"
If rst.NoMatch Then Exit Sub
Me.Undo
Me.Bookmark = rst.Bookmark
End Sub

ругаться на англо-с-апострофом перестало конечно)) но потом не ищет запись, содержащую апостроф!
не содержащие апостроф записи ищутся и открываются в форме для работы с ними
...
Рейтинг: 0 / 0
поиск в форме
    #39231555
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
немного поясню,
форма - добавление новых записей в базу, но
после заполнения поля идет поиск - есть ли в ней УЖЕ такая запись

и если есть то открывается в форме для проверки\изменения\дополнения
...
Рейтинг: 0 / 0
поиск в форме
    #39231561
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
апостроф может только один быть и я попробовал упростить
rst.FindFirst "имя='" & Replace(Me.имя, "'", "''") & "'"
не помогло - не ищет (но и не ругается)))
...
Рейтинг: 0 / 0
поиск в форме
    #39231562
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikle1010делаю так как рекомендовала1. Пожалуйста, пользуйтесь тегами оформления сообщения. Для кода. Вам ведь уже модератор поправил в первом сообщении.
2. "Англо-..." тут ни при чем, в русском тексте тоже необходимо удваивать кавычки.
3. "не ищет запись, содержащую апостроф!". Не ищет или же ищет, но не находит? А она там есть?
Сделайте
Код: vbnet
1.
Debug.Print "имя='" & Replace(Replace(Me.имя, "'", "''"), """", """""") & "'"

Что показывает?
...
Рейтинг: 0 / 0
поиск в форме
    #39231566
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikle1010апостроф может только один быть...Это, конечно, Вам лучше знать.
Но обычно дюймы обозначаются не апострофом ('), а кавычкой (").
Поэтому я ввела проверку на оба знака - это не два апострофа, а другой знак.
...
Рейтинг: 0 / 0
поиск в форме
    #39231567
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michellemikle1010делаю так как рекомендовала1. Пожалуйста, пользуйтесь тегами оформления сообщения. Для кода. Вам ведь уже модератор поправил в первом сообщении.
2. "Англо-..." тут ни при чем, в русском тексте тоже необходимо удваивать кавычки.
3. "не ищет запись, содержащую апостроф!". Не ищет или же ищет, но не находит? А она там есть?
Сделайте
Код: vbnet
1.
Debug.Print "имя='" & Replace(Replace(Me.имя, "'", "''"), """", """""") & "'"

Что показывает?

конечно такая запись есть - я же конечно на существующих в таблице проверяю
при Debug.Print "имя='" & Replace(Replace(Me.имя, "'", "''"), """", """""") & "'"
сообщение:
compile error:
syntax error
...
Рейтинг: 0 / 0
поиск в форме
    #39231570
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где это в коде поместили? Покажите, пожалуйста.
Не может быть такого сообщения, если сделано правильно.
...
Рейтинг: 0 / 0
поиск в форме
    #39231571
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще.
Вы не ответили на вопрос "Не ищет или же ищет, но не находит?".
Ответьте, пожалуйста.
...
Рейтинг: 0 / 0
поиск в форме
    #39231573
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleА где это в коде поместили? Покажите, пожалуйста.
Не может быть такого сообщения, если сделано правильно.

я могу))) неправильно делать конечно:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub имя_AfterUpdate()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("select * from таблица")
If rst.EOF Or rst.BOF Then Exit Sub
rst.MoveFirst
Debug.Print "имя='" & Replace(Replace(Me.имя, "'", "''"), """", """""") & "'"
If rst.NoMatch Then Exit Sub
Me.Undo
Me.Bookmark = rst.Bookmark
End Sub
...
Рейтинг: 0 / 0
поиск в форме
    #39231584
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то что не ругается на апостроф - уже супер! огромное спасибо
т.к. набор может быть срочный 400-500 записей и точно 20-30 с апострофами

конечно хотелось бы проверку иметь рабочей)
...
Рейтинг: 0 / 0
поиск в форме
    #39231587
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
)))
Нет, не вместо строки с FindFirst, а дополнительно, отдельной строкой.
Это команда отладочной печати, выводит результат в окно отладки Immediate.

Попробуйте искать так, с обратной отменой удвоения апострофа
Код: vbnet
1.
Rst.FindFirst Replace("имя=""" & Replace(Replace(Me.имя, "'", "''"), """", """""") & """", "''", "'")
...
Рейтинг: 0 / 0
поиск в форме
    #39231589
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для упрощения, раз может встретиться только апостроф
Код: vbnet
1.
Rst.FindFirst Replace("from=""" & Replace(Me.имя, "'", "''") & """", "''", "'")
...
Рейтинг: 0 / 0
поиск в форме
    #39231590
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

СУПЕР! - сейчас ищет - нормально все

Огромное спасибо! Хороших праздников и настроения!

Надеюсь еще и другим пригодится ваш "ликбез" для меня.
...
Рейтинг: 0 / 0
поиск в форме
    #39231592
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikle1010,

Спасибо!
Вам тоже веселых праздников!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
поиск в форме
    #39977840
mikle1010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
Можете помочь c поиском из открытой формы записи в другой таблице записи по значению поля формы?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / поиск в форме
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]