Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
18 / 20 / 2
Регистрация: 04.03.2017
Сообщений: 199
1

Как сделать чтобы при вводе текста в поле, при введении каждого нового символа фильтр обновлялся, а текст в по

03.05.2017, 18:51. Показов 2155. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал фильтр для поля формы, он как только фокус возвращается в поле, весь текст выделяется и при введении символа весь предыдущий текст удаляется. Таким образом в поле может находится не более 1-го символа, также не принимаются пробелы в поле. Как сделать чтобы при вводе текста в поле, при введении каждого нового символа фильтр обновлялся, а текст в поле увеличивался?

Visual Basic
1
2
3
4
Private Sub ПолеПОИСК_Change()
Me.RecordSource = "SELECT [IC1] FROM ИсходноеДанное1 WHERE [IC1] LIKE '" & Me.ПолеПОИСК.Value & "*'"
Me!ПолеПОИСК.SetFocus
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2017, 18:51
Ответы с готовыми решениями:

Как сделать, чтобы ProgressBar заполнялся в ходе отсчета таймера и обновлялся при запуске нового?
Доброго времени суток. У меня имеется обратный отсчет TimeSpan и ProgressBar. Как сделать, чтобы...

Сделать так, чтобы при введении с клавиатуры не числа, а символа программа завершалась
Здравствуйте! Помогите начинающему программисту, пожалуйста. Я написал программу, вычисляющую...

Как сделать чтобы при нажатии на bdedit при введении даты появлялся календарь
Я пишу программу для диплома ! там она привязана к базе данных и чтобы добавлять в базу разные...

Как сделать так, чтобы при вводе штрих - кода автоматически во второе поле писалось название товара
Добрый день! Не могу реализовать следующее: Имеется БД с таблицей: sh_kod - сюда заносится...

14
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.05.2017, 19:28 2
Лучший ответ Сообщение было отмечено ГарриНаФеррари как решение

Решение

Visual Basic
1
2
3
4
5
Private Sub ПолеПОИСК_Change()
Me.RecordSource = "SELECT [IC1] FROM ИсходноеДанное1 WHERE [IC1] LIKE '" & Me.ПолеПОИСК.Text & "*'"
Me!ПолеПОИСК.SelStart=Len(Me.ПолеПОИСК.Text)
Me!ПолеПОИСК.SelLength=0
End Sub
И свойство Автоподстановка (AutoExpand) задайте Нет
1
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,624
03.05.2017, 19:56 3
Лучший ответ Сообщение было отмечено ГарриНаФеррари как решение

Решение

Application.SetOption "Behavior entering field", 2 перед возвратом в поле ПолеПОИСК
и восстановление предыдущего значения после перевода фокуса на ПолеПОИСК.
Цитата Сообщение от ГарриНаФеррари Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
Private Sub ПолеПОИСК_Change()
 Dim k AS Byte
 Me.RecordSource = "SELECT [IC1] FROM ИсходноеДанное1 WHERE [IC1] LIKE '" & Me.ПолеПОИСК.Value & "*'"
 k = Application.GetOption("Behavior Entering Field")
 Application.SetOption "Behavior Entering Field", 2
 Me!ПолеПОИСК.SetFocus
 Application.SetOption "Behavior Entering Field", k
End Sub
Добавлено через 21 минуту
Добавление.
Вместо Me.ПолеПОИСК.Value нужно, конечно же, Me.ПолеПОИСК.Text.
1
18 / 20 / 2
Регистрация: 04.03.2017
Сообщений: 199
03.05.2017, 19:56  [ТС] 4
А как сделать чтобы поле также учитывало и пробелы? А то сейчас поле на пробелы не реагирует.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.05.2017, 20:03 5
Цитата Сообщение от ГарриНаФеррари Посмотреть сообщение
А как сделать чтобы поле также учитывало и пробелы? А то сейчас поле на пробелы не реагирует.
Если автоподстановка отключена, то по идее пробелы должны сохраняться. Но можно и насильно вставить
Visual Basic
1
2
3
4
5
6
7
8
Private Sub ПолеПОИСК_Change()
Dim t
t=Me.ПолеПОИСК.Text
Me.RecordSource = "SELECT [IC1] FROM ИсходноеДанное1 WHERE [IC1] LIKE '" & t & "*'"
Me!ПолеПОИСК.Text=t
Me!ПолеПОИСК.SelStart=Len(t)
Me!ПолеПОИСК.SelLength=0
End Sub
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,624
03.05.2017, 20:07 6
Цитата Сообщение от ГарриНаФеррари Посмотреть сообщение
А как сделать чтобы поле также учитывало и пробелы? А то сейчас поле на пробелы не реагирует.
Первое, что пришло в голову:
- вместо пробелов использовать какой-нибудь символ, которого заведомо не будет в тексте, например, @.
- заменить в коде Me.ПолеПОИСК.Value на Replace(Me.ПолеПОИСК.Value, "@", " "):
Visual Basic
1
Me.RecordSource = "SELECT [IC1] FROM ИсходноеДанное1 WHERE [IC1] LIKE '" & Replace(Me.ПолеПОИСК.Value, "@", " ") & "*'"
0
18 / 20 / 2
Регистрация: 04.03.2017
Сообщений: 199
03.05.2017, 20:09  [ТС] 7
mobile, пишет ошибку:
Миниатюры
Как сделать чтобы при вводе текста в поле, при введении каждого нового символа фильтр обновлялся, а текст в по  
0
18 / 20 / 2
Регистрация: 04.03.2017
Сообщений: 199
03.05.2017, 20:12  [ТС] 8
И ещё, никак не могу найти, где находится поле "автоподстановка"?

Добавлено через 1 минуту
вроде в настройках формы всё внимательно просмотрел

Добавлено через 1 минуту
Capi, это хороший вариант, но охота (если возможно) сделать эстетически красивее
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.05.2017, 20:16 9
Ну если теряет фокус, то задать фокус
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub ПолеПОИСК_Change()
Dim t
t=Me.ПолеПОИСК.Text
Me.RecordSource = "SELECT [IC1] FROM ИсходноеДанное1 WHERE [IC1] LIKE '" & t & "*'"
Me!ПолеПОИСК.Setfocus
Me!ПолеПОИСК.Text=t
Me!ПолеПОИСК.SelStart=Len(t)
Me!ПолеПОИСК.SelLength=0
End Sub
Цитата Сообщение от ГарриНаФеррари Посмотреть сообщение
никак не могу найти, где находится поле "автоподстановка"?
В свойствах поля со списком
Миниатюры
Как сделать чтобы при вводе текста в поле, при введении каждого нового символа фильтр обновлялся, а текст в по  
1
18 / 20 / 2
Регистрация: 04.03.2017
Сообщений: 199
03.05.2017, 20:27  [ТС] 10
mobile, теперь ясно, у меня не поле со списком, а просто поле

Добавлено через 8 минут
mobile, а возможно сделать тоже самое, но для текстового поля?
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,624
03.05.2017, 20:53 11
Лучший ответ Сообщение было отмечено ГарриНаФеррари как решение

Решение

ГарриНаФеррари,

А Вы пробовали мой первоначальный вариант-то?
Там пробелы нормально воспринимаются безо всяких ухищрений.
Вот он (с исправленным недосмотром: Me.ПолеПОИСК.Value заменено на Me.ПолеПОИСК.Text).
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub ПолеПОИСК_Change()
 Dim k AS Byte, _
     s As String
 s = Me!ПолеПОИСК.Text
 Me.RecordSource = "SELECT [IC1] FROM ИсходноеДанное1 WHERE [IC1] LIKE '" & Me.ПолеПОИСК.Text & "*'"
 k = Application.GetOption("Behavior Entering Field")
 Application.SetOption "Behavior Entering Field", 2
 Me!ПолеПОИСК= s
 Me!ПолеПОИСК.SetFocus
 Application.SetOption "Behavior Entering Field", k
End Sub
1
18 / 20 / 2
Регистрация: 04.03.2017
Сообщений: 199
03.05.2017, 21:05  [ТС] 12
Capi, я его и принял за рабочий вариант, всё как часы)

Добавлено через 2 минуты
Capi, Спасибо Это было круто
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,624
03.05.2017, 21:07 13
ГарриНаФеррари, Пожалуйста.)))
0
18 / 20 / 2
Регистрация: 04.03.2017
Сообщений: 199
03.05.2017, 21:31  [ТС] 14
Capi, а Вы знаете как в код добавляется обработчик ошибок, чтобы прога игнорировала её?

Добавлено через 22 минуты
уже разобрался как это делается
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,624
03.05.2017, 21:31 15
Цитата Сообщение от ГарриНаФеррари Посмотреть сообщение
чтобы прога игнорировала её
Кого её? Ошибку?
Visual Basic
1
On Error Resume Next
Цитата Сообщение от ГарриНаФеррари Посмотреть сообщение
уже разобрался как это делается
Ну и хорошо.
0
03.05.2017, 21:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2017, 21:31
Помогаю со студенческими работами здесь

Сделать так, чтобы при вводе Х=0 программа не завершалась а запрашивала ввод нового значения Х
Как сделать чтобы при вводе Х=0 программа не завершалась а запрашивала ввод нового значения Х...

Подскажите пожалуйста как запрограммировать в Delphi чтобы по нажатию кнопки открывался сиди ром?как сделать чтобы при вводе в labeledit ФИО при нажат
Подскажите пожалуйста как запрограммировать в Delphi чтобы по нажатию кнопки открывался сиди...

Как сделать, чтобы при удалении записи в пустом поле автоматом появлялся стандартный текст
Подскажите, плиз! Не знаю как сформулировать, голова уже не соображает, но может кто поймет мой...

Как сделать чтобы при введении пароля открылась другая форма, а эта закрылась
Здравствуйте! у меня есть код для введения пароля в Edit и при правильном вводе открывается другая...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru