Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2017, 11:18   #1
klim8
Пользователь
 
Регистрация: 07.08.2016
Сообщений: 23
По умолчанию Как сделать чтобы форма фильтровалась по отдельному полю?

Используется:
- Access 2016
- ленточная форма

Сценарий 1:
- вводим значение в поле "фильтр";
- таблица фильтруется;

Сценарий 2:
- выбираем значение в поле "Выбор";
- нажимаем "Ввод";
- Значение попадает в поле "Фильтр";
- ТАБЛИЦА НЕ ФИЛЬТРУЕТСЯ;

ГИФка - ссылка

Код:
Option Compare Database

Private Sub selectCmb_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = 13 Then
       If Len(filtr.Value) > 0 Then
            If filtr Like "*" & Trim(selectCmb.Text) & "*" Then
               If MsgBox("Ошибка ХХХ. Тектс уже существует !!!" & vbNewLine _
                         & "Все равно добавить?", vbOKCancel + vbCritical) = vbOK Then
                    filtr = filtr & ", " & selectCmb.Text
                End If
            Else
                filtr = filtr & ", " & selectCmb.Text
            End If
        Else
            filtr = selectCmb.Text
        End If
        DoCmd.CancelEvent
    End If
End Sub

'' *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
'' *** СОБЫТИЕ. ФИЛЬТР  ***
'' *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

Private Sub filtr_change()
    s0 = "" & Me.filtr
    Call fpoisk
    Me.filtr.SelStart = Len(s0) + 1
    
End Sub



' *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
' *** fpoisk()
' *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Sub fpoisk()

Dim s1, s2
Me.Refresh
s1 = "true "

 ' Азия
s2 = "" & Me.filtr ' Азия
 If Len(s2) > 0 Then
s1 = s1 & " and Азия like '*" & s2 & "*'"
End If

Me.Filter = s1
Me.FilterOn = True

End Sub  ' fpoisk

Вопрос
Как сделать чтобы в Сценарии 2 таблица фильтровалась по значению в поле "Фильтр", которое туда попало из поля "Выбор" ?
Вложения
Тип файла: zip vpr_sale_00.zip (43.1 Кб, 19 просмотров)
klim8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы форма не закрылась? Ципихович Эндрю Microsoft Office Word 5 22.01.2012 18:14
Как правильно сделать чтобы одиннадцатая форма открывалась в первой Leila_4ever Общие вопросы Delphi 9 27.05.2011 08:53
Как сделать чтобы форма закрывалась по нажатию ESC H'orn Общие вопросы .NET 2 05.10.2010 11:50
Как сделать так, чтобы форма была поверх всех окон? Jupiter Общие вопросы Delphi 9 31.07.2009 17:42
Как сделать чтобы форма была над трэем Bigtyoma Общие вопросы Delphi 2 24.09.2008 17:40