Фильтр доступа по полю - PullRequest
       13

Фильтр доступа по полю

0 голосов
/ 02 ноября 2018

Просто интересно, возможна ли фильтрация полей в Access? Или, если есть код VBA, позволяющий установить или снять флажок «Показать» в запросе на основе оператора if?

В основном у меня в базе данных около 80 полей, и я хочу создать таблицу только с 3 из них на основе значения в поле со списком. 2 всегда одинаковы, а 3-й будет основан на поле со списком.

Могу ли я это сделать?

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете сделать это, изменив SQL объекта запроса, который вы хотите изменить. Поэтому, если ваш объект запроса называется «qryMyQ», а ваш объект поля со списком называется «cboDropDown», тогда VBA будет событием AfterUpdate поля со списком и будет выглядеть следующим образом:

Private Sub cboDropDown_AfterUpdate()
    Dim qryDef As QueryDef
    Dim sql As String

    Set qryDef = CurrentDb.QueryDefs("qryMyQ")

    sql = "SELECT [Column1], [Column2], [" & cboDropDown.Value & _ 
          "] FROM yourTableName " & _
          " WHERE [" & cboDropDown.Value & "] = ""applicable"""

    Debug.Print sql 'This line will allow you to troubleshoot the SQL that is to be executed.'
    qryDef.sql = sql

    Set qryDef = Nothing
End Sub

Просто записка здесь; но вы хотите убедиться, что пользователи не могут добавлять или редактировать параметры поля со списком, чтобы избежать инъекций SQL. Не уверен, насколько дружелюбна ваша пользовательская база.

...