Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск в поле со списком / 6 сообщений из 6, страница 1 из 1
23.04.2003, 07:43
    #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
23.04.2003, 09:02
    #32146347
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в поле со списком
>strPoisk = Chr(KeyAscii) вот на это говорят Ошибка 5.Invalid procedure call or argument
Почему?

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

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

З.Ы.
А почему бы SQL-запроcе напрямую не использовать введеные символы (Типа
Like '*" & Ме.Поле1.Text & "*'));" )
...
Рейтинг: 0 / 0
23.04.2003, 12:27
    #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
24.04.2003, 10:50
    #32147461
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в поле со списком
A strRS что выдает, можно поинтересоваться?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск в поле со списком / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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