Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
DmitM
0 / 0 / 0
Регистрация: 19.06.2009
Сообщений: 6
#1

Как реализовать поиск в таблице по первым символам??? - MS Access

29.06.2009, 08:36. Просмотров 2437. Ответов 10
Метки нет (Все метки)

Кто подскажет где можно посмотреть пример или как вообще реализовать это.
То есть на форме есть поле ввода, и есть Подчененная форма(ПФ), которая отображает набор данных какого нибудь поля, ну например 'Название городов'. Итак, с самого начала форма отображает все данные начиная с первого, при вводе в поле любой буквы, курсор должен передвигаться на запись кот. начинается с этой буквы.
Далее вводим 2-ю,3-ю и курсор передвигает на те записи у которых
первые символы = символам в поле ввода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2009, 08:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как реализовать поиск в таблице по первым символам??? (MS Access):

Как реализовать поиск в таблице
Помогите есть таблица с кодом товара (Код товара текстовый) когда пользователь...

Поиск по таблице как в 1с
Всем доброго времени суток! Подскажите, возможно реализовать поиск по таблице...

Поиск записей в одной таблице, где значения ключевого поля не совпадают с полем в другой таблице
Имеется Access XP, надо создать запрос для поиска записей в таблице ТОВАРЫ,где...

Access 2003/ как в подчиненной таблице сделать поиск по фамилии и адресу?
Добрый день Помогите пожалуйста! Бьюсь уже 4 день. Есть форма с полями...

Как реализовать такой поиск..?
Всем привет, наткнулся я тут на интерсное видео...

Как реализовать поиск по диапазону дат?
Есть два поля, в которые вводятся даты, нужно чтоб в подчиненной таблице записи...

10
JustAlex
0 / 0 / 0
Регистрация: 08.11.2007
Сообщений: 27
29.06.2009, 09:12 #2
' Where mid(;; = '' & st & '''
или
' where f1 like '' & st & '*''
0
DmitM
0 / 0 / 0
Регистрация: 19.06.2009
Сообщений: 6
29.06.2009, 15:02  [ТС] #3
Оба варианта не работают
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
29.06.2009, 15:05 #4
Вместо * используй %
0
JustAlex
0 / 0 / 0
Регистрация: 08.11.2007
Сообщений: 27
29.06.2009, 15:38 #5
ну дай хоть код посмотреть а то у меня все работает
а у тебя нет - должна ж быть причина....
0
Kach
0 / 0 / 0
Регистрация: 24.06.2009
Сообщений: 13
29.06.2009, 18:05 #6
это вешаеться на поле ввода
извини но коментарии перегонять лень, поэтому козюльками
если че непонятно пиши
вроде все очень прозрачно
взял из своего работающего кода

Private Sub txtSearch_Change()
Dim rst As dao.Recordset
Dim strCriteria As String

'ñîçäàåì êðèòåðèé îòáîðà
'---------- ------------------
strCriteria = 'fldInfoParam Like ' & ''' & Me.txtSearch.Text & '*''

'îòêðûâàåì Êëîí
Set rst = Me.Recordset.Clone

'Èùåì ïî êðèòåðèþ
rst.FindFirst strCriteria

If rst.NoMatch = False Then
'åñëè íàøëè òî ïåðåäàåì Áóêìàðê
Me.Bookmark = rst.Bookmark
' âêëþ÷àåì ðåäàêòèðîâàíèå ïîëÿ ââîäà
Me!txtSearch.SelStart = Len(Me.txtSearch.Text)
End If
'çàêðûâàåì êëîí
rst.Close
Set rst = Nothing

'ÓÑÅ
End Sub
0
DmitM
0 / 0 / 0
Регистрация: 19.06.2009
Сообщений: 6
30.06.2009, 06:49  [ТС] #7
Вот код
Visual Basic
1
2
3
4
5
6
Private Sub Поле1_Change()
Dim strPost As String
strPost = Me.Поле1.Text
SQL('Select Должность from Должность where Должность=
'' & strPost & ' *' ')
end sub
Пробывал и % всеравно не получается.
В табличной форме он не передвигает курсор на нужную запись, стоит на 1-ой, хотя переменной присваивает то что написано в поле1
У меня база на SQL2000 может в этом причина ?
Или я что то не так делаю......
SQL это функция
Visual Basic
1
2
3
Public Function SQL(SQL_Query As String) As Recordset
    Set SQL = CurrentProject.Connection.Execute(SQL_Query)
End Function
0
DmitM
0 / 0 / 0
Регистрация: 19.06.2009
Сообщений: 6
30.06.2009, 06:52  [ТС] #8
И еще пробывал точно так же но с Like
SQL ('Select Должность from Должность where Должность Like '' & strPost & ' %' ')Тоже не работает
0
JustAlex
0 / 0 / 0
Регистрация: 08.11.2007
Сообщений: 27
30.06.2009, 11:54 #9
правильно ли я понял:

есть форма на кот. поле и подформа в табличном
виде Юзер набирает текст а сабформа в интерактивном
режиме кажет. Ну в этом случае делаю так

в сабформе пишу
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Function findRec(st As String)
On Error Resume Next
 If Len(st) > 0 Then
  st = 'f2 like '*' & st & '*' or ' _
  & 'f3 like '*' & st & '*' or ' _
  & 'f4 like '*' & st & '*' or ' _
  & 'f4a like '*' & st & '*''
  Me.Form.Filter = st
  Me.Form.FilterOn = True
 End If
End Function
и этот код можно вызывать из Parent
Visual Basic
1
2
3
4
5
Private Sub ed0_Change()
On Error Resume Next
 dim ret
 ret =  Me.child0.Form.findRec(Me.ed0.Text)
End Sub
или из какой другой формы
Поиск ведется сразу по нескольким полям одновременно
Если спереди * убрать то получим по поиск началу
можно конечно определить recordSource но я это делаю
только на более глобальные фильтры (типа наличие-пусто)
0
JustAlex
0 / 0 / 0
Регистрация: 08.11.2007
Сообщений: 27
30.06.2009, 11:59 #10
это если фильтрация...
а просто передвижение по сабформе:
это подругому - будет нужно черкану

скажу только что через docmd и фокус
должен перемещаться на child0 а потом
снова на ed0 - и чтобы курсор встал
в конец в ed0 - ed0.SelStart = 100
0
papirus
30.06.2009, 13:17 #11
Советую все-таки обратить внимание на совет от Kach. У меня аналогичный код, т.е. переход на запись с помощью Recordset.Bookmark, уже несколько месяцев работает без всяких проблем. Переход осуществляется моментально. Чем он Вам не нравиться?
30.06.2009, 13:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2009, 13:17
Привет! Вот еще темы с решениями:

БД для Гостиниц. Как реализовать запрос (поиск) по выпадающему списку?
Доброе время суток, строю БД для гостиницы. С Access работал очень давно и уже...

Сравнение данных полей по нескольким символам - как?
нужно сравнить данные двух таблиц, причем в одной все достаточно формально и...

Поиск записей в списке по первым буквам
всем привет... вопрос конечно глупый, но не тривиальный... на форме Главная...

мастер подстановки-список- поиск по первым буквам
ребята, подскажите, пожалуйста, как сделать, чтобы при вводе в форме первых...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru