MS Access 2016 - всплывающее окно ввода параметра при передаче параметра с использованием условия where для открытия отчета

Мой вопрос простой, и я не могу найти простой ответ на этот вопрос после долгих поисков. Многие ответы касаются более сложных ситуаций кодирования, которые мне трудно соотнести с этим вопросом.

Я открываю отчет из формы. Я могу указать параметр имени пользователя как «счет», и в отчете будут отображаться только те записи, где «счет» — это имя пользователя. Если я вручную меняю «счет» на «том», он все еще работает и отображает записи, в которых имя пользователя «том».

Private Sub Command11_Click()

Const cstrForm2 As String = "Report1"

 'DoCmd.OpenReport cstrForm2, acViewPreview, WhereCondition:="[username]=" & "'bill'"


End Sub

Если я использую следующий код и добавляю Me.username (имя пользователя является именем текстового поля и не ограничено)

DoCmd.OpenReport cstrForm2, acViewPreview, WhereCondition:="[username]=" & Me.username

MS Access предлагает мне ввести значение параметра. Если я ввожу значение параметра "том" или "билл" я получаю правильные данные в отчете.

Как мне избавиться от поля ввода параметра, в основном, как мне передать правильный формат значения параметра, чтобы получить желаемый результат? Я думаю, это может быть связано с использованием комбинации кавычек и других символов.


person stackex555    schedule 26.05.2017    source источник


Ответы (2)


Ответ заключается в том, чтобы сначала создать запрос. По-видимому, создание запроса позволяет избежать проблемы.

Создайте запрос для рассматриваемой таблицы и в разделе критериев запроса в режиме конструктора:

введите следующее в критерии

[Forms]![Form1]![username]

Где Form1 — имя формы, а username — имя текстового поля.

Когда вы запустите запрос, создайте отчет, используя запрос в качестве основы.

person stackex555    schedule 26.05.2017

Вам все еще нужны одинарные кавычки:

DoCmd.OpenReport cstrForm2, acViewPreview, WhereCondition:="[username]='" & Me!username.Value & "'"
person Gustav    schedule 26.05.2017