Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: пожалуста помогите зделать поиск куска текста из поля memo
 
 автор: greatmaster2008   (08.03.2008 в 15:58)   личное сообщение
 
 

Вобшем пользователь вводит кусок текста к примеру слово МОСКВА а Access выводит все записи где встречается это слово . Знаю что можно зделать это в VB но нету время учить целый язык программирования для того чтобы зделать вроде простой запрос . Я сам могу зделать только поиск по полному соответствию (так [введите слово] )

  Ответить  
 
 автор: Силыч   (08.03.2008 в 16:38)   личное сообщение
 
 

like "*<строкапоиска>*"

Where [Поле1] like "*Москва*"

по поводу "но нету время учить целый язык программирования для того чтобы зделать вроде простой запрос" - если еще кто на форуме так скажет - буду посылать невзирая на пол/возраст/заслуженность
наймите тогда того, кто любит и знает своё дело. если вынужден чем то заниматься, то или учи - или не калеч остальным психику :)

  Ответить  
 
 автор: greatmaster2008   (08.03.2008 в 16:49)   личное сообщение
 
 

ну это я и сам написать могу . Мне нужно чтобы пользователь сам из оболочки вписывал какоето слово а заявка ее искала

  Ответить  
 
 автор: greatmaster2008   (08.03.2008 в 16:51)   личное сообщение
 
 

не заявка а запрос

  Ответить  
 
 автор: Силыч   (11.03.2008 в 11:42)   личное сообщение
 
 

like "*" & [введите слово] & "*"

  Ответить  
 
 автор: АлаяЗаря   (22.03.2010 в 00:11)   личное сообщение
 
 

Доброго времени суток! Собственно имею вот такой вот поиск:


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


Все хорошо, вот только ищет с начала слова, желательно чтобы хватал еще и часть слова. Это очень критично для меня, например есть объект "ВК Московской области", сейчас можно найти только если ввести "ВК Мо...", а хотелось бы чтобы и при вводе "Мос..." тоже выводилось... Просто через несколько месяцев у меня дублей необерешься будет... Опретатор он же если не нашел то по своему ввел...

П.С. Где то видел как это реализовывается, вот уже сижу около часа никак найти не могу....

  Ответить  
 
 автор: Lukas   (22.03.2010 в 00:38)   личное сообщение
 
 


...Like '*" & strFind & "*'"

  Ответить  
 
 автор: АлаяЗаря   (22.03.2010 в 01:00)   личное сообщение
 
 



Лукас - вы гений =)

  Ответить  
 
 автор: Alex   (23.03.2010 в 11:24)   личное сообщение
 
 

Ага! Здорово!
А можно сделать чтоб в подчиненной форме искало?
Во чё начудил:

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

Ниработаит Подчиненная форма мыргает и периодически (без какой либо закономерности) говорит: Ашипка.

  Ответить  
 
 автор: snipe   (23.03.2010 в 11:35)   личное сообщение
 
 

как то так
Forms("Товары").ПФзапТовары.Form.Filter = "[ТоварИмяКрт] Like '*" & strFind & "*'"

  Ответить  
 
 автор: Alex   (23.03.2010 в 11:44)   личное сообщение
 
 

Работаит
Спасибо Большое

  Ответить  
 
 автор: snipe   (23.03.2010 в 11:48)   личное сообщение
 
 

соврал - каюсь
"[ТоварИмяКрт] Like '*" & strFind & "*'" вот это место не правильное
должно быть так "[имя таблицы на которой сделана форма].[имя поля] Like '*" & strFind & "*'"

  Ответить  
 
 автор: Alex   (23.03.2010 в 11:54)   личное сообщение
 
 

И так и сяк работает. Второй вариант наверное более правильный/грамотный. Но мне не подойдет - запросы источники данных для формы - разные. Можно конечно извратиться, но оно надо?... Остановлюсь на первом.

  Ответить  
 
 автор: АлаяЗаря   (26.03.2010 в 19:31)   личное сообщение
 
 

еще про поиск

когда в поле поиска удаляешь все раннее введенное, курсор автоматически убирается, неудобно блин, приходиться мышкой опять тыкать =( как можно этого избежать?

Все, нашел =)


   Me.FilterOn = False
   Me.Поле107.SetFocus

  Ответить  
 
 автор: shuhracharya   (15.06.2014 в 20:33)   личное сообщение
 
 

у меня похожая проблема а можно обойтис без vb
просто в аксесе написать sql запрос что то в этом роде:
SELECT Таблица1.imya
FROM Таблица1
WHERE "Таблица1.imya Like ' " & Forms!Form1!Поле0 & " * '";
только он выбирает все поля

  Ответить  
 
 автор: kot_k_k   (16.06.2014 в 09:06)   личное сообщение
 
 


только он выбирает все поля



а может это называется фильтр?

и конструкция WHERE "Таблица1.imya Like ' " вызывает вопрос - почему Таблица1.imya Like ' находится в кавычках?

  Ответить  
 
 автор: kot_k_k   (16.06.2014 в 09:06)   личное сообщение
 
 


только он выбирает все поля



а может это называется фильтр?

и конструкция WHERE "Таблица1.imya Like ' " вызывает вопрос - почему Таблица1.imya Like ' находится в кавычках?

  Ответить  
 
 автор: shuhracharya   (16.06.2014 в 14:23)   личное сообщение
 
 

во нашел
Таблица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 ....
как записать правильно?

  Ответить  
 
 автор: shanemac51   (16.06.2014 в 15:17)   личное сообщение
 
 

что у вас есть МЕМО
--одна длинная строка
--несколько строк с переходом строки
--какая у васмаксимальная длина МЕМО( примерно )

  Ответить  
 
 автор: kot_k_k   (16.06.2014 в 17:58)   личное сообщение
 
 

pole = ___36_3

чем не устраивает такая вещь к форме.

Me.Filter = "Таблица1.imya like '" & Forms!Form1!Поле0 & "'"
Me.FilterOn = True

причем можно в поле вводить сразу *36*3 или программно удалять из ______36_3 двойные подчеркивания и менять их на *.
и будет сщазтье.

  Ответить  
 
 автор: shuhracharya   (16.06.2014 в 19:19)   личное сообщение
 
 

слушайте я сделал тупо WHERE Таблица1.telefon Like Forms!Form1!Поле0;
и работает просто в поле приходится вводить ###4#56
как бы упростить чтобы пользователь не вводил знаки #

  Ответить  
 
 автор: kot_k_k   (19.06.2014 в 09:21)   личное сообщение
 
 

это фильтр и есть - только по другому.


и работает просто в поле приходится вводить ###4#56
как бы упростить чтобы пользователь не вводил знаки #


а зачем так сложно?
вар № 0 - (самый простой) - задай изначально поле равно ####### - и юзер вводит в нужные места цифры и можно включить режим замены.
вар № 1 - сделай 7 полей шириной в 1 символ и поставь их рядом, по команде ПОИСК собирай строку для фильтра - пустое поле = "#"
вар № 2 - юзер просто вводит последовательность цифирей - мы в начеле и конце строки ставим *, между каждой цифрой тоже *.
вар № 3 - как правило набирают первые цифры поэтому фильтр либо *поле*, либо Поле*.

п.с. я плохо себе представляю описанную тобой ситуацию с вводом телефона 4-й и 6-й цифрами.
если ввести *4*56* - результат будет тот-же, только больше вариантов выбора - что не есть архистрашно.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList