Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужны советы для поля поиска / 5 сообщений из 5, страница 1 из 1
12.01.2005, 13:31:53
    #32861055
seath
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужны советы для поля поиска
Хочу сделать поле для поиска - смысл приблизительно такой чтобы поиск с автоподстановкой в наборе записей из запроса SQL. Но чтобы поиск велся не с начала строки а искалось совпадения с любой частью строки.

То есть нажал "а" - 4000 отсалось записей, "б" - 200 записей и т.д.

Правильно ли я понимаю что нужно использовать событие Change и поле со списком?

Заранее спасибо
...
Рейтинг: 0 / 0
12.01.2005, 14:22:24
    #32861182
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужны советы для поля поиска
нужна форма с сабформой и поле текстовое

работающий пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Private Sub txtFindSeller_Change()
Dim tmp, tmp2

txtFindSeller.SetFocus

If InStr(txtFindSeller.Text, "'") >  0  Then
MsgBox "Был введен недопустимый символ: ' ", vbCritical
txtFindSeller.Text = ""
Exit Sub
End If



tmp2 = IIf(chkFromStart, "", "*") & txtFindSeller.Text & "*"

txtShowMask = tmp2

tmp = "((Cl_Sellers.fSellerName Like '" & tmp2 & "'))"

If IsNull(txtFindSeller.Text) Then
[frm_sub_selectSellers].Form.FilterOn = False
'[frm_sub_selectSellers].Requery
Else
[frm_sub_selectSellers].Form.Filter = tmp
[frm_sub_selectSellers].Form.FilterOn = True
'[frm_sub_selectSellers].Requery
End If
пояснения:
chkFromStart - флажок "поиск с начала поля"
frm_sub_selectSellers - сабформа табличная - список контрагентов, лежащая на главной форме
в ней все и ищется
...
Рейтинг: 0 / 0
12.01.2005, 16:31:01
    #32861632
seath
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужны советы для поля поиска
спасибо, хотя это и немного не то)))
...
Рейтинг: 0 / 0
12.01.2005, 16:34:33
    #32861647
msn13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужны советы для поля поиска
а чем тебя это не устраивает
...
Рейтинг: 0 / 0
12.01.2005, 17:22:03
    #32861797
seath
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужны советы для поля поиска
Я вот так сделал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub SearchField_Change()

Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Dim rs As ADODB.Recordset

With cmd
.ActiveConnection = CurrentProject.Connection
.CommandText = "SELECT Clients.ClientID, Rekveziti.Name FROM dbo.Rekveziti INNER JOIN" _
& " dbo.Clients ON dbo.Rekveziti.ClientID = dbo.Clients.ClientID WHERE Name Like N'%" & Me.SearchField.Text & "%'"


Set rs = .Execute
If rs.RecordCount >  0  Then
Me.SearchField.RowSource = "SELECT Clients.ClientID, Rekveziti.Name FROM dbo.Rekveziti INNER JOIN" _
& " dbo.Clients ON dbo.Rekveziti.ClientID = dbo.Clients.ClientID WHERE Name Like N'%" & Me.SearchField.Text & "%'"
Else
MsgBox ("Не найдено")
Me.SearchField.RowSource = ""
End If

End With
End Sub


и

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub _AfterUpdate()

Dim rs As Object
Set rs = Me.Recordset.Clone
If (Me.SearchField? <> "") And (Not IsNull(Me.SearchField)) Then
rs.Find "[ClientID] = " & Me.SearchField
Me.Bookmark = rs.Bookmark
End If

End Sub

...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужны советы для поля поиска / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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