powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск в поле со списком
6 сообщений из 6, страница 1 из 1
Поиск в поле со списком
    #32146319
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, пожалуйста разобраться!!!!!!


Есть поле со списком [Подрядчик] с данными:
SELECT Подрядчики.КодП, Подрядчики.[Наименование подрядчика] FROM Подрядчики;
Хочется фильтр на любую часть названия подрядчика

Private Sub Подрядчик_KeyPress(KeyAscii As Integer)
Dim tblT As Variant, dbT As Variant
Dim fldKod As Variant, fldName As Variant
Dim strPoisk As String
Dim strRS As String
Dim ctlSpisok As Variant
Set dbT = CurrentDb()
Set tblT = dbT.TableDefs("Подрядчики")
Set fldKod = tblT.Fields("КодП")
Set fldName = tblT.Fields("Наименование подрядчика")
Set ctlSpisok = Me![Подрядчик]

strPoisk = Chr(KeyAscii) вот на это говорят Ошибка 5.Invalid procedure call or argument
Почему?

If Not IsNull(strPoisk) Then
strRS = "SELECT " & tblT.Name & "." & fldKod.Name & ", " & tblT.Name & "." & fldName.Name & " " _
& "FROM " & tblT.Name & " " _
& "WHERE ((( " & tblT.Name & "." & fldName.Name & ") Like '*" & strPoisk & "*'));"

ctlSpisok.RowSource = strRS
SendKeys "%{DOWN}", True
End If

End Sub
...
Рейтинг: 0 / 0
Поиск в поле со списком
    #32146347
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>strPoisk = Chr(KeyAscii) вот на это говорят Ошибка 5.Invalid procedure call or argument
Почему?

А что за символ переадется? Какой код KeyAscii? Не больше 256 ли? Не UniCode ли?
...
Рейтинг: 0 / 0
Поиск в поле со списком
    #32146563
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передается код нескольких буквенных клавиш (как образец для поиска в поле наименование подрядчика)
...
Рейтинг: 0 / 0
Поиск в поле со списком
    #32146575
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Передается код нескольких буквенных клавиш

Кто тебе такое сказал, что нескольких? Одной. Или ты из своей процедуры, что пихаешь в Подрядчик_KeyPress(KeyAscii As Integer) ?
Поставь точку прерывания и посмотри значение KeyAscii - сразу все станет ясно.

З.Ы.
А почему бы SQL-запроcе напрямую не использовать введеные символы (Типа
Like '*" & Ме.Поле1.Text & "*'));" )
...
Рейтинг: 0 / 0
Поиск в поле со списком
    #32146594
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и пыталась сначала, но если вставляю в запрос поле со списком "Подрядчик" то запрос просто игнорируется и не выдает никакай ошибки! Я даже не могу проследить что ни так
If Not IsNull(ctlSpisok) Then
strRS = "SELECT " & tblT.Name & "." & fldKod.Name & ", " & tblT.Name & "." & fldName.Name & " " _
& "FROM " & tblT.Name & " " _
& "WHERE ((( " & tblT.Name & "." & fldName.Name & ") Like '*" & ctlSpisok & "*'));"

Вот таким образом
...
Рейтинг: 0 / 0
Поиск в поле со списком
    #32147461
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A strRS что выдает, можно поинтересоваться?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск в поле со списком
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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