Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2013, 10:40   #1
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
Сообщение Перекрестный запрос с условием дат из полей формы

Всем здравствуйте.
Помогите пожалуйста с перекрестным запросом.
Я делаю простой перекрестный запрос:
графы-наименование услуг,
строки-даты оплаты по услугам,
значения-суммы оплаты.
Собственно абсолютно ничего сложного, НО…

Мне нужно что бы выводились данные не по всем датам, а только за выбранный период.
Период выбирается на форме в Поле 4 и Поле 6.
В Запросе условие дат ставлю через построитель: Between [Forms]![ФОРМА]![Поле4] And [Forms]![ФОРМА]![Поле6].

Сам запрос планировала разместить на форме.

При запросе на выборку все получается, но при перекрестном выдает ошибку:
[Поле4] Не распознается ядром базы данных Microcoft Jet как допустимое имя поля или выражение.

Я пробовала сначала делать запрос на выборку, а на основе его уже перекрестный запрос результат тот же.
Пробовала в перекрестном запросе добавлять колонку с датой, и там указав не группировка, а условие - указывать данное условие результат, тот же.
Как же сделать такой перекрестный запрос с условием дат из полей формы?

Спасибо.
АННА-ЕАО вне форума Ответить с цитированием
Старый 14.06.2013, 15:02   #2
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

1. На закладке "Модули" окна "база данных" создайте модуль с любым именем и поместите в него текст:

Public data1_modul As Date
Public data2_modul As Date

Public Function data1_() As Date
data1_=data1_modul
End Function

Public Function data2_() As Date
data2_=data2_modul
End Function

2. В форме заполните значения глобальных переменных data1_modul и data2_modul, например, так:

data1_modul=ПолеФормы_ДатаС
data2_modul=ПолеФормы_ДатаПо

3. Тогда условие WHERE запроса будет выглядеть так:

WHERE Таблица.Дата Between data1_() and data2_()
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 14.06.2013, 17:10   #3
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Myhaylo Спасибо большое за помощь , но мне как для начинающей и мало ещё знающей кое-что не совсем понятно:
Цитата:
Сообщение от Myhaylo Посмотреть сообщение
2. В форме заполните значения глобальных переменных data1_modul и data2_modul,
как это сделать, это на событие на форме прописать?
Код:
Private Sub Form_Load()
data1_modul = Поле4
data2_modul = Поле6
End Sub
Цитата:
Сообщение от Myhaylo Посмотреть сообщение
WHERE Таблица.Дата Between data1_() and data2_()
Почему Таблица а не форма? Поля с датами на форме ведь расположены?
Спасибо.

Последний раз редактировалось АННА-ЕАО; 14.06.2013 в 17:14.
АННА-ЕАО вне форума Ответить с цитированием
Старый 14.06.2013, 18:03   #4
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

1. Предположим, что вывод данных перекрёстного запроса осуществляется нажатием какой-то кнопки. Вот в подпрограмме обработки этого события и нужно заполнить значения глобальных переменных.
2. В конструкторе, вместо Вашего условия

Between [Forms]![ФОРМА]![Поле4] And [Forms]![ФОРМА]![Поле6]

запишите это:

Between data1_() and data2_()

3. В Вашем случае к вопросу желательно всегда прикладывать базу (предварительно сжатую и заархивированную).
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 14.06.2013, 22:02   #5
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Myhaylo Ещё раз спасибо большое за помощь! Благодаря Вашим пояснениям всё получилось!
Вот только...
Разместив данный запрос на форме если за выбранный период не было операций по группе (т.е. нет данных по графе №1), то в ней выводится не 0,00 , а #Имя? .

Когда в вычисляемом поле на форме появляется #Ошибка? я пишу так:
Код:
=IIf(IsError([форма].[Form]![Поле4])=Истина;0;[форма].[Form]![Поле4])
,

но тут так не проходит, в этом случае в данной графе ВСЕГДА отображается 0.

Будьте добры, подскажите, как от #Имя? избавиться?
Спасибо.
АННА-ЕАО вне форума Ответить с цитированием
Старый 17.06.2013, 03:15   #6
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Цитата:
Сообщение от АННА-ЕАО Посмотреть сообщение

Будьте добры, подскажите, как от #Имя? избавиться?
Спасибо.
Цитата:
В Вашем случае к вопросу желательно всегда прикладывать базу (предварительно сжатую и заархивированную).
.................
alvk вне форума Ответить с цитированием
Старый 17.06.2013, 09:15   #7
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Прикладываю базу, в сокращенном виде. В этой форме "Ф_ОПЛАТА_ПО_ДАТАМ_ПО _ГРУППАМ" меняйте даты и результат перекрестного запроса отображается так же в этой форме.
Если за выбранный период не было операций по какой либо из групп, то в ней выводится не 0,00 , а #Имя.
Может кто-то подскажет решение?
Ну или м.б. как то можно скрывать столбцы с #Имя?
Спасибо.
Вложения
Тип файла: rar Копия 1.rar (3.46 Мб, 46 просмотров)
АННА-ЕАО вне форума Ответить с цитированием
Старый 17.06.2013, 19:43   #8
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Например, так...
Вложения
Тип файла: rar #Копия1.rar (1.56 Мб, 118 просмотров)
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 17.06.2013, 21:53   #9
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию


Myhaylo ОГРОМНОЕ СПАСИБО ВАМ ЗА ПОМОЩЬ !!!

Всё работает супер!
АННА-ЕАО вне форума Ответить с цитированием
Старый 17.06.2013, 22:59   #10
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

И все же, наверно, не получится применять данный запрос на форме как в примере, ведь группы услуг могут добавляться, а запрос без внесения изменений на форме и в коде автоматически меняться не будет.
АННА-ЕАО вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перекрестный запрос с условием sasha-infocom Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 10.04.2011 08:49
Перекрестный запрос с условием sasha-infocom ASP.NET 0 10.04.2011 08:48
Перекрестный запрос analyst Microsoft Office Access 3 17.02.2010 18:24
Перекрестный запрос zander Microsoft Office Access 2 13.01.2010 15:25