Страница 1 из 1

Запрос не выводит дату, устанавливаемую в ФОРМЕ.

Добавлено: 07 июл 2004, 07:57
patq
Перевел недавно я БД из Access 97 в Access 2002.
Стал проверять, и тут вылезла ошибка: запрос не стал выводить дату, записанную на форме.
Подробнее: есть форма “Mem”, на ней поле ”Дата”, заношу туда программно дату (например “16.10.02”), создаю запрос, где в поле заношу “Начало:[Forms]![Mem]![Дата]”.
Открываю запрос и облом: в столбике под наименованием “Начало” гольная пустота, а иногда в первой строке возникают прямоугольники, зачерненные, как при выделении. При вводе даты в поле ”Дата” ручками, запрос работает нормально.
Пробовал поиграть форматами, устанавливал два форматы полей: пустые и “краткий формат даты”. Комбинировал форматы как мог. Толку никакого.
Что интересно, дата, программно установленная в форме, и используемая в запросе в “условиях отбора” работает нормально.

Помогите, чем могити. Буду благодарен за любую подсказку

Добавлено: 07 июл 2004, 23:03
Naeel Maqsudov
“Начало:[Forms]![Mem]![Дата]”.
Странно. Попробуйте переписать эту формулу не руками, а с помощью построителя. Т.е. прямо построителем выберите поле с формы. Еще (на всякий случай) имейте в виду, что значения полей формы доступны только пока форма открыта.

Добавлено: 09 июл 2004, 09:59
patq
Попробуйте переписать эту формулу не руками, а с помощью построителя.
И так я тоже делал.
Для проверки перевел БД опять из Access 2002 в 97 там опять все работает.

Добавлено: 14 июл 2004, 01:27
Naeel Maqsudov
Открываю запрос и облом: в столбике под наименованием “Начало” гольная пустота, а иногда в первой строке возникают прямоугольники, зачерненные, как при выделении. При вводе даты в поле ”Дата” ручками, запрос работает нормально.
А! Так поле свободное так?
Приведите фрагмент кода как Вы программно заносите дату в поле?
Есть такая особенность: даже при заполнения поля "ручками", если мы изменим значение свободного поля ф ворме и обновим или переоткроем запрос, то он все равно вернет старое значение (что, видимо, и происходит, так как поле (наверное) после создания формы имеет значение по умолчанию = null). Теперь если нажать Tab или Enter (т.е. покинуть это поле), а потом еще раз обновить запрос, то он извлечет из формы уже новое значение.

Попробуйте изменения значения формы проводить методами объекта DoCmd. Должно получиться, и сделать базу переносимой в обе стороны.

Добавлено: 14 июл 2004, 08:50
patq
Приведите фрагмент кода как Вы программно заносите дату в поле?
......
Должно получиться, и сделать базу переносимой в обе стороны .

Код заноса даты в поле формы: [Forms]![Mem]![Дата] = Me.Дата.Value
Код вывода даты в запросе: Начало: Forms!Mem![Дата]
При ручном вводе я ухожу с поля "Дата", после ввода даты. Значение поля "Дата" не меняется в процессе выполнения запроса.


Что означает: "переносимая в обе стороны"?

Добавлено: 16 июл 2004, 01:46
Naeel Maqsudov
Код заноса даты в поле формы: [Forms]![Mem]![Дата] = Me.Дата.Value
Вот! А попробуйте через DoCmd

Что означает: "переносимая в обе стороны"?
Т.е. в любой момент можно преобразовать базу в Access97, 2000 или XP и обратно.