Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / текстовый фильтр в форме / 13 сообщений из 13, страница 1 из 1
08.04.2016, 11:13
    #39210857
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
Сделал текстовый фильтр, но не получается сделать его так, чтобы я мог записывать в ячейку несколько слов, через пробел,
и вторая проблема, если я пишу в ячейке слово, которого нет, то вылетает ошибка кода, как сделать так чтобы в форме просто не показаловалось бы записей?

https://cloud.mail.ru/public/6NDU/3upFjww2H
...
Рейтинг: 0 / 0
08.04.2016, 12:48
    #39210979
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
Retvisan,

Посмотрите пример(пустую выборку не обрабатывала)
...
Рейтинг: 0 / 0
08.04.2016, 12:51
    #39210982
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
Retvisan,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
Option Compare Database
Dim S0
'''''''''''''''добавление
Private Sub VOpisanie_KeyPress(KeyAscii As Integer)
If KeyAscii = 32 Then
KeyAscii = Asc("?")
End If
End Sub

Sub fpoisk()
Dim s1, s2
Me.Refresh
s1 = "true "
'''''''''''''''исправление
s2 = Replace("" & Me.VInstr_id, "?", " ")
If Form.Recordset.EOF Then Me.FilterOn = False
    Form.Dirty = False
    
 

If Len(s2) > 0 Then
s1 = s1 & " and  Instr_id like '*" & s2 & "*'"
End If
s2 = "" & Me.VOpisanie
If Len(s2) > 0 Then
s1 = s1 & " and Opisanie like '*" & s2 & "*'"
End If


Me.Filter = s1
Me.FilterOn = True
End Sub

Private Sub VInstr_id_Change()
S0 = "" & Me.VInstr_id

Call fpoisk
If Form.Recordset.EOF Then Me.FilterOn = False
    Form.Dirty = False
Me.VInstr_id.SelStart = Len(S0) + 1
End Sub

Private Sub Check1017_DblClick(Cancel As Integer)
    On Error GoTo errend
    Application.Echo False
    If Me.selectrecord Like "*|" & Me.ID & "|*" Then
        Me.selectrecord = Replace(Me.selectrecord, "|" & Me.ID & "|", "")
    Else
        Me.selectrecord = Me.selectrecord & "|" & Me.ID & "|"
    End If
    selectid = Me.selectrecord
    If Len(Me.selectrecord & "") = 0 Then
        Me.Summa = 0
        Me.Summa2 = 0
    Else
        Me.Summa = DSum("Cheloveko_chasi_na_TP_B1", "kl", "id in(" & inExpr(Me.selectrecord) & ")")
        Me.Summa2 = DSum("Cheloveko_chasi_na_TP_B2", "kl", "id in(" & inExpr(Me.selectrecord) & ")")
    End If
    Me.Recalc
errend:
    Application.Echo True
End Sub

Private Sub VOpisanie_Change()
S0 = "" & Me.VOpisanie

Call fpoisk
If Form.Recordset.EOF Then Me.FilterOn = False
    Form.Dirty = False
Me.VOpisanie.SelStart = Len(S0) + 1
End Sub
...
Рейтинг: 0 / 0
08.04.2016, 14:02
    #39211061
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
ПЕНСИОНЕРКА,

Хорошо, вечером посмотрю, спасибо!
...
Рейтинг: 0 / 0
08.04.2016, 14:13
    #39211076
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
RetvisanСделал текстовый фильтр, но не получается сделать его так, чтобы я мог записывать в ячейку несколько слов, через пробел,
и вторая проблема, если я пишу в ячейке слово, которого нет, то вылетает ошибка кода, как сделать так чтобы в форме просто не показаловалось бы записей?

Попробуй

Like "*" & [значение фильтра] & "*"
несколько слов (обрывков слов) записывай в значение фильтра через * а не через пробел...
...
Рейтинг: 0 / 0
08.04.2016, 14:36
    #39211114
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
Сомневаюсь, что там вообще нужны LIKE.
Скорее всего, там просто значения и нужны равенства.

Во всяком случае, то, что я видела, было именно таким.
И кучу LIKE-ов в критериях я уже в одной из предыдущих тем упразднила.

И вот тут 19013761 все эти критерии для vagon01 ÷ vagon10 тоже нужно переделать.
И следующие за ними тоже.
И не только из-за LIKE-ов, вообще переделать.
...
Рейтинг: 0 / 0
08.04.2016, 14:40
    #39211121
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
Retvisan,

Вот это зачем после сброса фильтра?
Код: vbnet
1.
Form.Dirty = False

Что сохранять там после этого?
...
Рейтинг: 0 / 0
09.04.2016, 23:11
    #39211783
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
__Michelle, нее) эта совсем другая форма,она является источником данных для новой(где есть этот текстовый фильтр). все что есть в этой форме, есть в примере, который я выложил
...
Рейтинг: 0 / 0
10.04.2016, 15:49
    #39211947
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
Retvisan, да, действительно.
Открыла в 2003 – вылетает при попытке перейти в конструктор формы,
в 2007 – вылетает (не отвечает) при попытке сохранения микро-изменений формы
(попытка вместо перечня всех полей в источнике данных просто указать таблицу).
Там ведь вроде все элементарно, но вот так.
Перевести в 2000 тоже не получается.
Вот к этому совету прислушайтесь 19032830 .
...
Рейтинг: 0 / 0
10.04.2016, 17:06
    #39211966
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
__Michelle,понял, завтра прислушаюсь)
...
Рейтинг: 0 / 0
10.04.2016, 17:30
    #39211979
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
Retvisan,
А вот здесь, 19032245 , смотрю, пробел сначала маскируется вопросительным знаком,
а потом при формировании фильтра снова переводится в пробел.
Это, может, даже лучше, точнее, если важно, чтобы, кроме этого пробела, ничего не попало между словами.
...
Рейтинг: 0 / 0
11.04.2016, 09:30
    #39212194
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
ПЕНСИОНЕРКА,
Код: vbnet
1.
Private Sub VOpisanie_KeyPress(KeyAscii As Integer)


не могу понять, а откуда появилась этот контрол в форме?
...
Рейтинг: 0 / 0
11.04.2016, 09:35
    #39212201
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовый фильтр в форме
ПЕНСИОНЕРКА,

https://cloud.mail.ru/public/6fHA/3oQbZLYBN
вот бд, здесь побольше данных для фильтрации
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / текстовый фильтр в форме / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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