Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ошибка 3070...
 
 автор: lurix   (13.10.2008 в 11:21)   личное сообщение
 
 

странное дело:
создан запрос на выборку данных в зависимости от указанного периода в числовом поле (за 3 месяца назад от текущей даты (Month(Date())-3). Данный запрос отлично работает, даже если из него сделать CrossTab.

Но!
если в данном запросе сделать ссылку на поле в основной форме, дата в которой по умолчанию принята как текущая (=DateSerial(Year(Date());Month(Date());Day(Date()))) запрос простой - нормально работает, а при преобразовании в CrossTab выдает сообщение:

The Microsoft Jet database engine does not recognize <name> as a valid field name or expression

подскажите, что делать, чтобы CrossTab заработал....

  Ответить  
 
 автор: Анатолий (Киев)   (13.10.2008 в 11:34)   личное сообщение
 
 

Т.е. запрос не понимает ссылку на поле формы? Пропишите эту ссылку в параметрах запроса.

ЗЫ. А чем лучше =DateSerial(Year(Date());Month(Date());Day(Date())) от просто =Date()?

  Ответить  
 
 автор: lurix   (13.10.2008 в 12:03)   личное сообщение
 
 

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

<Пропишите эту ссылку в параметрах запроса
объясните пожалуйста, как именно?

  Ответить  
 
 автор: Pasat   (13.10.2008 в 12:36)   личное сообщение
 
 

если в данном запросе сделать ссылку на поле в основной форме

Это имеется ввиду в условии отбора запроса что-то вроде этого
>=[Forms]![MyForm]![MyDate] - не работает
a
>= #01.09.2008# - работает ?

  Ответить  
 
 автор: lurix   (13.10.2008 в 13:12)   личное сообщение
 
 

да, именно!

  Ответить  
 
 автор: Pasat   (13.10.2008 в 13:18)   личное сообщение
 
 

Давно мучаюсь тем же вопросом
Помогите плиз

  Ответить  
 
 автор: FORMAT   (13.10.2008 в 13:48)   личное сообщение
 
 

Я так понимаю, что нужно привести дату к американскому формату.

  Ответить  
 
 автор: Bellerofont   (13.10.2008 в 13:53)   личное сообщение
 
 

можно использовать пользовательскую функцию, которая будет возвращать значение поля формы

  Ответить  
 
 автор: Анатолий (Киев)   (13.10.2008 в 14:02)   личное сообщение
 
 

<Пропишите эту ссылку в параметрах запроса
<объясните пожалуйста, как именно?

В конструкторе запроса через меню "Запрос"-"Параметры..." открываете окошко, где в левой колонке пишете [Forms]![ИмяФормы]![ИмяПоля], а в правой - тип Дата/Время.

Можно и по другому: =EVal([Forms]![ИмяФормы]![ИмяПоля])

  Ответить  
 
 автор: Pasat   (13.10.2008 в 14:40)   личное сообщение
10 Кб.
 
 

У меня это не работает
В атаче пример
Перекрестный запрос CrosstabOk - открывается нормально
а
Перекрестный запрос CrosstabTruble - не открывается

  Ответить  
 
 автор: Анатолий (Киев)   (13.10.2008 в 15:23)   личное сообщение
34 Кб.
 
 

>У меня это не работает
Уже работает...

Акцентирую ваше внимание на следующем:
В параметрах перекрестного запроса нужно прописывать все ссылки на элементы форм, присутствующие в нем и во всех запросах, на которых он построен.
Если есть запрос1 со ссылкой на форму, он участвует в Запросе2, тоже имеющем ссылку на форму (другое поле или другая форма), а он участвует в перекрестном запросе, то в последнем надо прописать в параметрах обе ссылки.

  Ответить  
 
 автор: lurix   (13.10.2008 в 14:52)   личное сообщение
 
 

Анатолий, Вы - чудо!!!!!! огромнейшее спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!

  Ответить  
 
 автор: Pasat   (13.10.2008 в 15:01)   личное сообщение
 
 

О и у меня заработало
Great respect

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList