Форум программистов, компьютерный форум, киберфорум
Наши страницы

MS Access

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

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

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

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

Как реализовать поиск в таблице - MS Access
Помогите есть таблица с кодом товара (Код товара текстовый) когда пользователь водит в форме код с начала база должна проверить есть ли...

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

Access 2003/ как в подчиненной таблице сделать поиск по фамилии и адресу? - MS Access
Добрый день Помогите пожалуйста! Бьюсь уже 4 день. Есть форма с полями (.... адрес, улица, дом, ФИО контролера). Необходимо в...

Как реализовать такой поиск..? - MS Access
Всем привет, наткнулся я тут на интерсное видео http://www.youtube.com/watch?v=3cJinHSSkuI - уж больно понравился способ поиска и открытия...

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

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

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 / 4
Регистрация: 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
Привет! Вот еще темы с ответами:

Поиск записей в списке по первым буквам - MS Access
всем привет... вопрос конечно глупый, но не тривиальный... на форме Главная есть список0 со следующим запросом SELECT...

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

Поиск не по первОМУ, а по первЫМ символам в jdbComboBox. Как ? - Java
Коллеги, заказчик наседает, 'сделай, да сделай...' Надо при заполнении поля через компонент jdbComboBox обеспечить возможность...

Поиск в combobox по первым символам - C#
как в combobox сделать поиск по первым символам?


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

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

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