Предполагая, что код является вашим предложением where, он должен работать.Если отчет основан на веб-запросе с этими формами!в качестве условия, вы должны удалить его.Таким образом, вам нужно использовать здесь выражение «где» команды OpenReport.Это просто означает, что ссылки [forms]! [SomeFormName] в веб-запросе НЕ допускаются.
Если предположить, что вышеизложенные проблемы, то я могу подумать еще о двух вещах, которые могут привести к сбою:
Вы поместили форму внутри навигационной формы.По сути, это означает, что ваша форма теперь находится в подчиненной форме, а ссылка на форму в команде фильтра, таким образом, теперь неверна.
На самом деле, из-за вышеуказанной неприятной проблемы, я, как правило, заполняю значениеиз элемента управления INTO локальной переменной, а затем использовать эту переменную в выражении фильтра.Причин этому много, но одним из преимуществ является то, что в коде нет ссылки на формы в жестком коде.Фильтр может принимать управление, но он ДОЛЖЕН быть жестко закодированными полностью определенными формами.Однако команда фильтра также может использовать локальную или глобальную переменную.
Оказывается (к счастью), что вы можете складывать значения из элементов управления форм в переменную БЕЗ необходимости в квалифицированных формах ref.Таким образом, вы можете просто использовать имя элемента управления.Это дает вам то же самое, что и «я» в VBA, и в результате получается нейтральный код.Поэтому этот «дополнительный» шаг настоятельно рекомендуется.
Таким образом, этот подход позволяет вам копировать форму, переименовывать форму или даже использовать форму внутри подчиненной формы (а это означает новую форму веб-навигации) всебез необходимости изменять ваш код и имя формы.
Следующая проблема заключается в том, что веб-приложения FAR более чувствительны к типам данных.Так что это означает, что если ваше поле со списком НЕ связано, то оно, скорее всего, НЕ возвращает значение типа данных даты.Это тогда приведет к тому, что фильтр потерпит неудачу на стороне сети.
Доступ на стороне клиента будет часто «приводить» тип данных для вас, но для веб-сайтов это менее простительно.
Один простой подход здесь - это таблица свойств для поля со списком (форматвкладка), установите формат поля со списком на дату (попробуйте короткую дату).Это должно исправить вашу проблему.
Кроме того, я бы также использовал приведенную выше идею set var для удаления жестко закодированных форм ref и name.
Таким образом, ваш код должен выглядеть следующим образом:
SetLocalVar (dtUserDate,[myComboBox])
OpenReport (myReport, [InvoiceDate] = [LocalVars]![dtUserDate], Normal)
Обратите внимание, что если поле со списком привязано к базовому столбцу в базе данных, тогда установка формата данных в свойстве поля со спискомлист не требуется.Однако это, скорее всего, несвязанное поле со списком, поэтому настройка типа данных является обязательной.
Эта проблема типа данных также относится к текстовым полям при фильтрации столбца чисел (задайте общее число на вкладке формата).(или оберните выражение в CDbl (), чтобы привести его к длинному типу данных).
Для дат вы также можете использовать команду dateSerial (), чтобы форсировать тип даты, но это, вероятно, не имеет смыслаиз поля со списком.
Итак, в конце дня, при использовании неограниченных элементов управления на формах и использовании таких значений для фильтров, обратите особое внимание на тип данных.
Как уже отмечалось, это, как правило, не проблема / проблема со связанными элементами управления, но для несвязанных тогда выражение часто принимает неверный тип данных, и в то время как клиент Access лучше выполняет "приведение"тип данных, веб-сторона вещей более чувствительна.