|
|
|
| Вобшем пользователь вводит кусок текста к примеру слово МОСКВА а Access выводит все записи где встречается это слово . Знаю что можно зделать это в VB но нету время учить целый язык программирования для того чтобы зделать вроде простой запрос . Я сам могу зделать только поиск по полному соответствию (так [введите слово] ) | |
|
| |
|
|
|
| like "*<строкапоиска>*"
Where [Поле1] like "*Москва*"
по поводу "но нету время учить целый язык программирования для того чтобы зделать вроде простой запрос" - если еще кто на форуме так скажет - буду посылать невзирая на пол/возраст/заслуженность
наймите тогда того, кто любит и знает своё дело. если вынужден чем то заниматься, то или учи - или не калеч остальным психику :) | |
|
| |
|
|
|
| ну это я и сам написать могу . Мне нужно чтобы пользователь сам из оболочки вписывал какоето слово а заявка ее искала | |
|
| |
|
|
|
|
| like "*" & [введите слово] & "*" | |
|
| |
|
|
|
| Доброго времени суток! Собственно имею вот такой вот поиск:
Private Sub Поле107_change()
Dim strFind As String
strFind = Nz(Me.Поле107.Text, "")
If strFind <> "" Then
Me!Поле107 = strFind
Me.Filter = "[NaimenovanijeObjekta] Like '" & strFind & "*'"
Me.FilterOn = True
Me.Поле107.SelStart = 200
Else
Me.FilterOn = False
End If
End Sub
|
Все хорошо, вот только ищет с начала слова, желательно чтобы хватал еще и часть слова. Это очень критично для меня, например есть объект "ВК Московской области", сейчас можно найти только если ввести "ВК Мо...", а хотелось бы чтобы и при вводе "Мос..." тоже выводилось... Просто через несколько месяцев у меня дублей необерешься будет... Опретатор он же если не нашел то по своему ввел...
П.С. Где то видел как это реализовывается, вот уже сижу около часа никак найти не могу.... | |
|
| |
|
|
|
|
...Like '*" & strFind & "*'"
|
| |
|
| |
|
|
|
|
| Ага! Здорово!
А можно сделать чтоб в подчиненной форме искало?
Во чё начудил:
Private Sub Поиск_change()
On Error GoTo Поиск_Err
Dim strFind As String
strFind = Nz(Me.Поиск.Text, "")
If strFind <> "" Then
Me!Поиск = strFind
Forms("Товары").ПФзапТовары.Form.Filter = Forms("Товары").ПФзапТовары.Form![ТоварИмяКрт] Like "*" & strFind & "*"
Forms("Товары").ПФзапТовары.Form.FilterOn = True
Me.Поиск.SelStart = 200
Else
Forms("Товары").ПФзапТовары.Form.FilterOn = False
End If
Поиск_Exit:
Exit Sub
Поиск_Err:
Forms("Товары").ПФзапТовары.Form.FilterOn = False
MsgBox "Ашипка"
Resume Поиск_Exit
End Sub
|
Ниработаит Подчиненная форма мыргает и периодически (без какой либо закономерности) говорит: Ашипка. | |
|
| |
|
|
|
| как то так
Forms("Товары").ПФзапТовары.Form.Filter = "[ТоварИмяКрт] Like '*" & strFind & "*'" | |
|
| |
|
|
|
|
| соврал - каюсь
"[ТоварИмяКрт] Like '*" & strFind & "*'" вот это место не правильное
должно быть так "[имя таблицы на которой сделана форма].[имя поля] Like '*" & strFind & "*'" | |
|
| |
|
|
|
| И так и сяк работает. Второй вариант наверное более правильный/грамотный. Но мне не подойдет - запросы источники данных для формы - разные. Можно конечно извратиться, но оно надо?... Остановлюсь на первом. | |
|
| |
|
|
|
| еще про поиск
когда в поле поиска удаляешь все раннее введенное, курсор автоматически убирается, неудобно блин, приходиться мышкой опять тыкать =( как можно этого избежать?
Все, нашел =)
Me.FilterOn = False
Me.Поле107.SetFocus
|
| |
|
| |
|
|
|
| у меня похожая проблема а можно обойтис без vb
просто в аксесе написать sql запрос что то в этом роде:
SELECT Таблица1.imya
FROM Таблица1
WHERE "Таблица1.imya Like ' " & Forms!Form1!Поле0 & " * '";
только он выбирает все поля | |
|
| |
|
|
|
|
только он выбирает все поля
|
а может это называется фильтр?
и конструкция WHERE "Таблица1.imya Like ' " вызывает вопрос - почему Таблица1.imya Like ' находится в кавычках? | |
|
| |
|
|
|
|
только он выбирает все поля
|
а может это называется фильтр?
и конструкция WHERE "Таблица1.imya Like ' " вызывает вопрос - почему Таблица1.imya Like ' находится в кавычках? | |
|
| |
|
|
|
| во нашел
Таблица1.imya Like Forms!Form1!Поле0 & "*"; поиск если в начале поле
Таблица1.imya Like "*"&Forms!Form1!Поле0 & "*"; поиск если встречается поле вразных местах
еще вопрос пусть у меня задано поле телефон сосоящий из 7 цифр
в поле формы вводим разную комбинацию цифр
пример telefon=2723643
pole = ___36_3
щн должен вывести 2723643
как записать вопрос
вот что я надумал
(telefon like pole[1]______ or pole[1] is null) and ( telefon like _pole[2]_____ or pole[2] is null) and ....
как записать правильно? | |
|
| |
|
|
|
| что у вас есть МЕМО
--одна длинная строка
--несколько строк с переходом строки
--какая у васмаксимальная длина МЕМО( примерно ) | |
|
| |
|
|
|
| pole = ___36_3
чем не устраивает такая вещь к форме.
Me.Filter = "Таблица1.imya like '" & Forms!Form1!Поле0 & "'"
Me.FilterOn = True
причем можно в поле вводить сразу *36*3 или программно удалять из ______36_3 двойные подчеркивания и менять их на *.
и будет сщазтье. | |
|
| |
|
|
|
| слушайте я сделал тупо WHERE Таблица1.telefon Like Forms!Form1!Поле0;
и работает просто в поле приходится вводить ###4#56
как бы упростить чтобы пользователь не вводил знаки # | |
|
| |
|
|
|
| это фильтр и есть - только по другому.
и работает просто в поле приходится вводить ###4#56
как бы упростить чтобы пользователь не вводил знаки #
|
а зачем так сложно?
вар № 0 - (самый простой) - задай изначально поле равно ####### - и юзер вводит в нужные места цифры и можно включить режим замены.
вар № 1 - сделай 7 полей шириной в 1 символ и поставь их рядом, по команде ПОИСК собирай строку для фильтра - пустое поле = "#"
вар № 2 - юзер просто вводит последовательность цифирей - мы в начеле и конце строки ставим *, между каждой цифрой тоже *.
вар № 3 - как правило набирают первые цифры поэтому фильтр либо *поле*, либо Поле*.
п.с. я плохо себе представляю описанную тобой ситуацию с вводом телефона 4-й и 6-й цифрами.
если ввести *4*56* - результат будет тот-же, только больше вариантов выбора - что не есть архистрашно. | |
|
| |