|
|
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Уважаемые господа! Подсобите с идеями:) Проблема следующая: В поле "В" есть текст "генеральный директор" требуется найти в Столбе "К" записи LIKE "директор" или LIKE "генеральный" Т.Е. искать по каждому слову. С трудом представляю себе как объяснить это машине:( Т.Е. КАК РАЗБИТЬ ТЕКСТ НА СОСТАВЛЯЮЩИЕ??????? Geen ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 11:02 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. На входе: MyLike("MyField", "генеральный директор") На выходе: MyField Like "*генеральный*" OR MyField Like "*директор*" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 11:19 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
То есть Dim и Function надо поменять местами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 11:20 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Уважаемый Владимир Саныч! Все таки не разобрался:( Значит ли ваш текст то, что должен создать свою функцию? Паблик или Приват? И самое главное: Как потом правильно сослаться на нее? Privat Sub ......... Даблклик() ...... ...... ..... ..... = "SELECT......FROM....... WHERE (....... = MyLike(?имяполя?,?????)" ......... ....... End Sub Да! В .adp наверное мне следует поставить "%" вместо "*" Искренне Ваш Geen ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 13:28 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
> Паблик или Приват? Если обращение к ней будет в том же модуле, то достаточно Private, а если нет, то Public. Скорее всего обращение будет в запросе, значит Public. На все остальные вопросы - да, да, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 15:10 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Уж простите великодушно!:) Непонятливый я:) 1. В Fynction MyLike(Fld - это Fld или имя поля? 2. В тексте запроса = MyLike(МоеПоле?, а что после запятой?) Не серчайте:) Geen ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 15:17 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Позволю сам себе процитировать самого себя. На входе: MyLike("MyField", "генеральный директор") То есть оба параметра стринги, но первый из них имя того поля, которое надо сравнивать, а второй - само то поле, в котором "генеральный директор". ..... = "SELECT......FROM....... WHERE " & MyLike("ОдноПоле", ДругоеПоле) Правда, это только идея - как и было заказано в заголовке топика. :^) Ее недостаток в том, что надо сначала взять одно значение типа "генеральный директор" и строить весь селект для него. Если же надо в каждой записи сравнивать ОдноПоле с тем "генеральным директором", который в той же записи, то эта идея не годится. Но она на то и идея, чтобы ее совершенствовать. Вот я сам же это и делаю. Вторая версия: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. И тогда: ..... = "SELECT......FROM....... WHERE MyLike(ОдноПоле, ДругоеПоле)" То есть старая версия MyLike возвращает хвост селекта, а новая сама ставится в селекте и проверяет для каждой записи то, что было заказано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 15:58 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Уважаемый Владимир Саныч! Следуя Вашему совету попробовал Split() Так вот, Boolen не подходит по определению (т.к. после сплита идут несколько других критериев:( ). Было бы интереснее разобрать "генеральный дриектор" на запчасти (что я и проделал сплитом). Причем выводя резуьтат сплита в месседжбокс, я отчетливо вижу и "генерального" и "директора". Так вот, осталась "мелкая" деталь. Хотелось бы понять, как именно сшить расспитованные данные обранто в строку. Но эте еще пол беды. В последней части сплита мне не хоттелось бы получить "OR". Подумайте пожалуйста как. Искренне Ваш Geen ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 11:08 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
В конце (для первой версии функции MyLike) Код: plaintext А лучше конечно в последней итерации цикла не ставить OR и все. Только не спрашивайте как это сделать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 11:50 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
> Boolen не подходит по определению (т.к. после сплита идут несколько других критериев:( ). Не понял. > Хотелось бы понять, как именно сшить расспитованные данные обранто в строку. Зачем??? Исходная строка ведь никуда не девается. > В последней части сплита мне не хоттелось бы получить "OR". А его там и так нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 14:00 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Так лучше. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 17:27 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Наконец-то! Почти готово! Но осталась маленькая деталь:( Значится беру данные, сплитую, собираю обратно в кучу, и результат вывожу в MsgBox. (Заявил QWER) Вижу: (МойСтолб Like '%генеральный%') OR (МойСтолб Like '%директор%') Идеально!!! НО при попытке вставить в SQL начались проблемы: & " WHERE '" & QWER & "' " _ - выдает WHERE '(вся моя фигня)' а если & " WHERE & QWER" _ - выдает WHERE & QWER Я мне нужно: WHERE (вся моя фигня) - т.е. без кавычек. ХЕЛП!!! Geen ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 12:28 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
> Я мне нужно: > WHERE (вся моя фигня) - т.е. без кавычек. Так кавычки убери, елы-моталы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 12:39 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
Сил побороть функцию MyLike не хватило) Поэтому предлагаю всем свое решение проблемы:) Итак: Имеется поле Р6, которое содержит текст "Генеральный директор" (должность). Требуется провести поиск в таблице dbo.P(вледелец.таблица) тех записей, которые содержат в столбце dbo.P.P (должность) слова "генеральный" или "директор", а так же число в столбце dbo.P.Age (возраст) которое находится в диапазоне между P8 и P10 (полями в форме возраст от и до) Результат поиска по нажатию кнопки Btn12 нужно выдать в список SP1 Решение: Private Sub Btn12_Click() Dim WHR12 As String Dim B As Variant, C As Variant, A As String, S As String A = Me.P6 B = Split(A, " ") S = "" For Each C In B If S > "" Then S = S & " OR " S = S & "(dbo.P.P LIKE " & "'" & "%" & C & "%" & "')" Next WHR12 = "SELECT dbo.P.P, dbo.P.Age From dbo.P" _ & " WHERE " & S & "" _ & " AND (dbo.P.Age > '" & Me.P8 & "')" _ & " AND (dbo.P.Age < '" & Me.P10 & "')" Me.SP1.RowSource = WHR12 End Sub Где WHR12 - строковая переменная, которая является источником строк для списка SP1 Надеюсь, кому-нибудь пригодится Geen Особое спасибо Владимир Саныч!!!! :) Да! Если вдруг Вы не очень заняты, хотелось бы доковырять MyKike:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:49 |
|
||
|
Поиск по критериям НУЖНА ИДЕЯ:)
|
|||
|---|---|---|---|
|
#18+
В Израиле к одному человеку на "вы" не обращаются. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:55 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1791&tid=1681060]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 371ms |

| 0 / 0 |
