2016-01-13 2 views
0

Я совершенно новичок в доступе и программировании в целом.Функция, используемая в критериях запроса - ошибка во время выполнения 2486

У меня есть база данных пользователей, имеющих разные статусы, т.е. Активный, Неактивный, VIP. Я делаю отчет, который получает его данные из запроса. Один из критериев запроса должен соответствовать флажкам.

Checkboxes

Я создал функцию SeznamClanov(), который возвращает строку, которую я использую в качестве критериев в моем запросе.

Public Function SeznamClanov() As String 

Dim Predhodnik As Boolean 

DoCmd.OpenForm "IzpisClanovSubF" 

Predhodnik = False 

If Forms!IzpisClanovSubF!CheckAktivni.Value <> 0 Then 
    SeznamClanov = "1" 
    Predhodnik = True 
End If 

If Forms!IzpisClanovSubF!CheckNeaktivni.Value <> 0 Then 
    If Predhodnik = True Then 
    SeznamClanov = SeznamClanov & "& 2" 
    Else 
    SeznamClanov = SeznamClanov & "2" 
    End If 

    Predhodnik = True 
End If 

If Forms!IzpisClanovSubF!CheckIzpisani.Value <> 0 Then 
    If Predhodnik = True Then 
    SeznamClanov = SeznamClanov & " & 4" 
    Else 
    SeznamClanov = SeznamClanov & "4" 
    End If 

    Predhodnik = True 
End If 

If Forms!IzpisClanovSubF!CheckPokojni.Value <> 0 Then 
    If Predhodnik = True Then 
    SeznamClanov = SeznamClanov & " & 5" 
    Else 
    SeznamClanov = SeznamClanov & "5" 
    End If 

    Predhodnik = True 
End If 

If Forms!IzpisClanovSubF!CheckVIP.Value <> 0 Then 
    If Predhodnik = True Then 
    SeznamClanov = SeznamClanov & " & 6" 
    Else 
    SeznamClanov = SeznamClanov & "6" 
    End If 

End If 

End Function 

Когда я выполняю эту функцию шаг за шагом, все работает нормально. Проблема в том, что когда я использую эту функцию в Query, я получаю сообщение об ошибке: Ошибка времени выполнения «2486»: вы не можете выполнить это действие в настоящее время.

Когда я запускаю инструмент отладки останавливается на линии

DoCmd.OpenForm "IzpisClanovSubF" 

Почему я получаю эту ошибку? Есть ли более простой способ приблизиться к этой проблеме?

Спасибо за вашу помощь заранее.

С уважением!

+0

У меня серьезные проблемы с чтением того, что похоже на обфускацию символов. Или, возможно, не-английские соглашения об именах. Кроме того, пожалуйста, не включайте ссылки на изображения (скорее добавьте их в уценку). – SmokeDispenser

ответ

0

Вы не можете этого сделать - откройте форму для каждой записи.

Удалить эту команду из функции:

DoCmd.OpenForm "IzpisClanovSubF" 

и запустить его, прежде чем открыть запрос.

+0

Я не открываю форму для каждой записи. В форме есть кнопка, которая должна открыть отчет, в котором перечислены пользователи, на основе выбора, сделанного в флажках. У каждого пользователя есть статус (например: 1 = Активен, 2 = Неактивен, 6 = VIP и т. Д.). Если вы нажмете на флажок, который говорит «Актив», я не укажу на отчет только список пользователей со статусом «Актив». Если у вас есть флажки в Active и VIP - мне нужен список в отчете с обеими группами пользователей. Я вызываю эту функцию только в запросе, который используется в этом отчете. SELECT [COLUMNS] WHERE ClanT.StatusClana = SeznamClanov() – buri87

+0

Вы писали: _Проблема заключается в том, что я использую эту функцию в Query ..._ Это не-нет ... вы не открываете формы из запущенных запросов. – Gustav

+0

Форма уже открыта. Когда я нажимаю кнопку, это открывает отчет. Отчет получает его данные из запроса, который использует функцию SeznamClanov() как критерий (фильтр). Функция получает данные из флажков в форме и должна возвращать строку, которая используется в запросе. – buri87

Смежные вопросы