Перевел недавно я БД из Access 97 в Access 2002.
Стал проверять, и тут вылезла ошибка: запрос не стал выводить дату, записанную на форме.
Подробнее: есть форма “Mem”, на ней поле ”Дата”, заношу туда программно дату (например “16.10.02”), создаю запрос, где в поле заношу “Начало:[Forms]![Mem]![Дата]”.
Открываю запрос и облом: в столбике под наименованием “Начало” гольная пустота, а иногда в первой строке возникают прямоугольники, зачерненные, как при выделении. При вводе даты в поле ”Дата” ручками, запрос работает нормально.
Пробовал поиграть форматами, устанавливал два форматы полей: пустые и “краткий формат даты”. Комбинировал форматы как мог. Толку никакого.
Что интересно, дата, программно установленная в форме, и используемая в запросе в “условиях отбора” работает нормально.
Помогите, чем могити. Буду благодарен за любую подсказку
Запрос не выводит дату, устанавливаемую в ФОРМЕ.
Модератор: Naeel Maqsudov
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Странно. Попробуйте переписать эту формулу не руками, а с помощью построителя. Т.е. прямо построителем выберите поле с формы. Еще (на всякий случай) имейте в виду, что значения полей формы доступны только пока форма открыта.“Начало:[Forms]![Mem]![Дата]”.
И так я тоже делал.Попробуйте переписать эту формулу не руками, а с помощью построителя.
Для проверки перевел БД опять из Access 2002 в 97 там опять все работает.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
А! Так поле свободное так?Открываю запрос и облом: в столбике под наименованием “Начало” гольная пустота, а иногда в первой строке возникают прямоугольники, зачерненные, как при выделении. При вводе даты в поле ”Дата” ручками, запрос работает нормально.
Приведите фрагмент кода как Вы программно заносите дату в поле?
Есть такая особенность: даже при заполнения поля "ручками", если мы изменим значение свободного поля ф ворме и обновим или переоткроем запрос, то он все равно вернет старое значение (что, видимо, и происходит, так как поле (наверное) после создания формы имеет значение по умолчанию = null). Теперь если нажать Tab или Enter (т.е. покинуть это поле), а потом еще раз обновить запрос, то он извлечет из формы уже новое значение.
Попробуйте изменения значения формы проводить методами объекта DoCmd. Должно получиться, и сделать базу переносимой в обе стороны.
Приведите фрагмент кода как Вы программно заносите дату в поле?
......
Должно получиться, и сделать базу переносимой в обе стороны .
Код заноса даты в поле формы: [Forms]![Mem]![Дата] = Me.Дата.Value
Код вывода даты в запросе: Начало: Forms!Mem![Дата]
При ручном вводе я ухожу с поля "Дата", после ввода даты. Значение поля "Дата" не меняется в процессе выполнения запроса.
Что означает: "переносимая в обе стороны"?
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Вот! А попробуйте через DoCmdКод заноса даты в поле формы: [Forms]![Mem]![Дата] = Me.Дата.Value
Т.е. в любой момент можно преобразовать базу в Access97, 2000 или XP и обратно.Что означает: "переносимая в обе стороны"?