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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Проблемы с обработкой запроса с параметрами
 
 автор: Vik   (01.04.2007 в 20:18)   личное сообщение
 
 

Существует запрос (1) с параметрами, использующий для выборки данных поля формы (2):

"PARAMETERS [Forms]![AnalizCompare]![PeriodStart] DateTime, [Forms]![AnalizCompare]![PeriodEnd] DateTime;
SELECT . . . . . . WHERE (((tblProba.ProbaDate)>=[Forms]![AnalizCompare]![PeriodStart] And (tblProba.ProbaDate)<=[Forms]![AnalizCompare]![PeriodEnd]));"

Запрос нормально работает при отрытой форме (2).

Проблемы следующие:
1. На базе этого запроса создан перекрестный запрос, который нормально открывается в отдельном окне. Но этот перекрестный запрос не удается поместить в подчиненную форму - при открытии остается белое окно подчиненной формы. Если в первоначальном запросе явно, я не через параметры, прописать условия отбора данных - тогда все ОК. Реализовать подчиненную форму в виде формы не удастся - запрос перекрестный с изменяемым кол-вом выводимых полей.
2. При попытке в VB открыть Рекодсет на базе запроса с параметрами ругается, что не достаточно параметров. В то же время SQL, на базе которого должен быть открыт Рекордсет, нормально открывается в окне запросов.

Заранее благодарен за любую помощь.

  Ответить  
 
 автор: osmor   (01.04.2007 в 20:40)   личное сообщение
 
 

Попроводу "мало параметров " см. FAQ
http://hiprog.com/index.php?option=com_content&task=blogcategory&id=119&Itemid=159
вопрос 17
Относительно открытия в форме...
Задайте параметры в запросе явно:

PARAMETERS )>=[Forms]![AnalizCompare]![PeriodStart] DateTime, [Forms]![AnalizCompare]![PeriodEnd]s DateTime;
SELECT ....

  Ответить  
 
 автор: Bellerofont   (01.04.2007 в 23:04)   личное сообщение
 
 

Можно вместо ссылок на поля форм использовать пользовательские функции. Помогает ...

  Ответить  
 
 автор: Vik   (02.04.2007 в 11:38)   личное сообщение
 
 

Спасибо за советы: этот форум - мой лучши учитель по Access

2 Bellerofont - пользовательские функции - это решение, но, возможно, существует решение попроще - не хочется раздувать программу.

2 osmor - если не составит большого труда, можно детальнее о синтаксисе явного задания параметров :

PARAMETERS )>=[Forms]![AnalizCompare]![PeriodStart] DateTime, [Forms]![AnalizCompare]![PeriodEnd]s DateTime;

  Ответить  
 
 автор: osmor   (02.04.2007 в 12:05)   личное сообщение
 
 

Там у меня неправильно...
откройте запрос в режиме конструктора, переключитесь в SQL
и добавьте

PARAMETERS [Forms]![AnalizCompare]![PeriodStart] DateTime, [Forms]![AnalizCompare]![PeriodEnd]s DateTime;

Перед SELECT .....

  Ответить  
 
 автор: Vik   (03.04.2007 в 19:54)   личное сообщение
 
 

Так сказать результат...

1. Путем длительных експериментов пришлось отказаться от PARAMETERS -если в случае обычного запроса в подчиненной форме параметры (контролы основной формы) еще работают, то для перекрестного запроса в подчиненной форме параметры приводят к белому полю всей подчиненной формы. В отдельном окне такой перекрестный запрос открывается без проблем. Пришлось в условиях отбора использовать функциии (как советовал Bellerofont)...

2. Нарвался на еще один фокус - если в перекрестном запросе, размещенном в подчиненной форме, поменять макет (ширина колонок), при сохранении (Ctrl+S) начинает читать морали на тему создания перекрестной формы, также не удется закрыть форму. Вопрос решен через


   Me![CurData].SourceObject = ""
   DoCmd.Close


Малоприятные глюки
А-03

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