Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22

Запросы

12.06.2013, 11:25. Показов 2076. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток ) У есть таблица сданными показателямz по услугам на начало месяца и конец месяца , как мне сделать так что бы показатели с конца месяца (10.01.2001) переходили автоматически на начало месяца (10.02.2001) Какими запросами ??? И продолжали переходить с конца на начало месяца с появлением новых месяцев автоматически .
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2013, 11:25
Ответы с готовыми решениями:

Нужно доделать базу. Групповые запросы и запросы на изменение данных
Есть база, нужно доделать кое что Групповые запросы: 1) С использование функции count 2) С использованием функции sum 3)...

Как в Access объединить запросы в один или вывести эти запросы в одном отчете и рассчитать по ним коэффициент?
Добрый день! Помогите разобраться. Есть у меня 5 запросов access, которые через долгие манипуляции все же вывели мне суммы, которые...

Запросы в БД
Подскажите,почему когда делаю запрос и делаю выполнить,ничего не выводит,только название полей и все.

20
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
12.06.2013, 11:31
Сделать два запроса, один - текущий период, второй - пред идущий период.
В первый запрос добавить второй как источник данных (как таблицу), связать по ключевым полям. Вывести необходимые данные в бланк запроса.
Точнее можно будет ответить увидев вашу схему данных, а лучше пример базы.
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 11:33  [ТС]
Вот база
Вложения
Тип файла: rar жкх - копия (2).rar (124.6 Кб, 9 просмотров)
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 12:04  [ТС]
GenaY, можете показать на базе данных ?
0
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
12.06.2013, 12:18
Цитата Сообщение от Ekaterinaaa Посмотреть сообщение
GenaY, можете показать на базе данных ?
Только вечером, *.accdb (access 2010) сейчас не открою. Сейчас могу только *.mdb (access 2003).

Может кто раньше покажет.
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 12:21  [ТС]
GenaY, вот в нужном формате фаил )
Вложения
Тип файла: rar 123456.rar (16.5 Кб, 15 просмотров)
0
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
12.06.2013, 13:18
Я не дополнял вопрос, решение с двумя запросами, которое я описывал раньше, Вам не подойдет.
Вам нужно по определенному событию выполнить обновление поля. На уровне таблиц это не получиться. У таблиц нет обработки событий. Автоматически поле заполнить получиться только в форме.
А форм у вас пока нет.
Нужно будет на какое нибудь событие в форме написать программу которая будет искать пред идущее значение счетчика и сохранять его в текущей записи.
Создавайте форму где будете заносить показания счетчиков, тогда помогу.

Вообще то, если это реальная задача, а не учебное задание, я бы поменял немножко схему данных.
Поле pokazateli_start старт перенес в таблицу Vladelec и назвал бы его pokazateli_start_el (будут же еще другие счетчики, их начальные показатели тоже сюда). Из моего опыта начельное значение счетчика не всегда =0.
В таблице pokazateli оставил бы только pokazateli_end
Тогда можно будет начальные показания счетчика за конкретный период можно будет получать расчетным путем.

Добавлено через 9 минут
...Вообще то, если это реальная задача, а не учебное задание, я бы поменял немножко схему данных.
Поле pokazateli_start старт перенес в таблицу Vladelec и ....
Сори, в моем варианте pokazateli_start переносить нужно в таблицу Apartments.
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 13:23  [ТС]
GenaY, как я понимаю это запрос на обновление , только я не знаю как указать условие следующего месяца )
0
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
12.06.2013, 14:41
Цитата Сообщение от Ekaterinaaa Посмотреть сообщение
GenaY, как я понимаю это запрос на обновление , только я не знаю как указать условие следующего месяца )
Вам необходимо найти [конечные показания] за предыдущий период по выбранной квартире и вставить в поле [начальные показания]. Я не знаю как это сделать с помощью запроса на обновление. (Может кто то здесь и знает.)
Но знаю как это сделать с помощью VBA в формах.
Отложите решение этой проблемы до появления форм в вашей базе, а пока заполняйте руками. Потом, в формах это решиться проще.
1
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
12.06.2013, 15:15
Можно запросом обновить, если использовать dlookup
SQL
1
2
3
4
5
UPDATE pokazateli 
SET pokazateli_start=dlookup("pokazateli_end", "pokazateli", 
"num_uslugi=" & num_uslugi 
& " and num_Apartments=" & num_Apartments 
& " and year(Date_in)*100+month(Date_in)=" & YEAR(Date_in)*100+MONTH(Date_in)-1)
Только нужно ли это обновление, если аналогичным образом можно найти значения запросом на выборку? И не нужно заботиться о соответствии данных, если вдруг были исправлены старые ошибки
2
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 15:18  [ТС]
mobile, Мне просто надо как это сделать, а вот как я не знаю (((( Вот как именно это сделать запросом на выборку , и сделать так чтобы оно постоянно обновлялась автоматически )?
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
12.06.2013, 15:26
Цитата Сообщение от Ekaterinaaa Посмотреть сообщение
mobile, Мне просто надо как это сделать, а вот как я не знаю (((( Вот как именно это сделать запросом на выборку , и сделать так чтобы оно постоянно обновлялась автоматически )?
Если вы работаете непосредственно в таблицах, без форм, то единственно известный мне способ это держать постоянно висящую, можно скрытую форму с таймером, где по таймеру будет вызываться запрос на обновление.

Есть и более интересный способ, связанный с квази-триггером Бенедикта. Но врядли вы сумеете им воспользоваться, все-таки не самое тривиальное в аксе. А во вторых, для его применения, вашу БД придется изменить, поставив с соответствие со стандартом Ansi-92.

Вообщем, как вам уже советовали, переходите к формам, где есть неплохие и несложные возможности для выполнения задуманного.
1
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 15:36  [ТС]
mobile, это была часть базы вот полная база ) её будет сложновато переделать )
Вложения
Тип файла: rar жкх.rar (134.3 Кб, 10 просмотров)
0
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
12.06.2013, 17:05
Цитата Сообщение от mobile Посмотреть сообщение
Можно запросом обновить, если использовать dlookup
SQL
1
2
3
4
5
UPDATE pokazateli 
SET pokazateli_start=dlookup("pokazateli_end", "pokazateli", 
"num_uslugi=" & num_uslugi 
& " and num_Apartments=" & num_Apartments 
& " and year(Date_in)*100+month(Date_in)=" & YEAR(Date_in)*100+MONTH(Date_in)-1)
Только нужно ли это обновление, если аналогичным образом можно найти значения запросом на выборку? И не нужно заботиться о соответствии данных, если вдруг были исправлены старые ошибки
Поправил немножко запрос, исходный не правильно отрабатывает январь. Пропускает.
SQL
1
2
3
4
5
6
7
UPDATE pokazateli 
SET pokazateli.pokazateli_start = DLookUp("pokazateli_end","pokazateli",
"num_uslugi=" & [num_uslugi] 
& " and num_Apartments=" & [num_Apartments] 
& " and year(Date_in)*100+month(Date_in)=" & IIf(MONTH([Date_in])=1,
(YEAR([Date_in])-1)*100+12,
YEAR([Date_in])*100+MONTH([Date_in])-1));
Кстати, очень понравилось условие отбора записей предыдущего периода.
IIf(Month([Date_in])=1,(Year([Date_in])-1)*100+12,Year([Date_in])*100+Month([Date_in])-1))
mobile отдельное спасибо за идею.
2
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 17:12  [ТС]
GenaY, спасибо огромное !!!!!!!!!!!!!!!!!!!!!!!!
0
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
12.06.2013, 17:32
Ekaterinaaa, Мне то за что? Решение предложил mobile.
1
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 22
12.06.2013, 18:09  [ТС]
mobile,
GenaY, Вам обоим за ваше не равнодушие ! Спасибо !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!=)

Добавлено через 35 минут
GenaY, так а теперь задам самый важный вопрос что значат эти функции и как их можно интерпретировать в слова???
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
12.06.2013, 19:01
Спасибо, GenaY за поправку. Прошляпил...

Но и ваше решение можно упростить. ИИФ не нужен, достаточно в моем решении, вместо умножения на 100, умножать на 12. Тогда непрерывность "годомесяцев" обеспечена :-)
1
383 / 209 / 5
Регистрация: 29.05.2013
Сообщений: 337
12.06.2013, 20:52
Запрос на обновление пробегает по очереди все строки в таблице pokazateli
В каждой строке берется текущее значение полей pokazateli_end, num_Apartments, num_Apartments, Date_in
Согласно этих значений функция DLookUp ищет в этой же таблице подходящую условию строчку берет из нее значение поля pokazateli_end и запрос сохраняет это значение в поле pokazateli_start. Так по каждой строчке до конца таблицы.

Опишу работу функций:

"То что ищем" = DLookUp ("Поле в котором ищем";"Таблица в которой ищем";"Условие по которому находиться нужная строка")
Так работает эта функция у нас.
Поле в котором ищем = "pokazateli_end"
Таблица в которой ищем = "pokazateli"
Условие по которому находиться нужная строка = Уже сложнее, опишу по частям.
"num_uslugi=" & [num_uslugi]
Выбираем только те записи у которых услуга совпадает

& " and num_Apartments=" & [num_Apartments]
Так же должна совпадать квартира

& " and year(Date_in)*100+month(Date_in)=" & IIf(MONTH([Date_in])=1,
(YEAR([Date_in])-1)*100+12,
YEAR([Date_in])*100+MONTH([Date_in])-1)

Также дата должна находиться в пределах предыдущего месяца.

Вспомогательные функции:
year (01.05.2013) = 2013
month (01.05.2013) = 5

IIf (выражение; считаем если выражение верно; считаем если выражение ложно
IIf (5=5;1+1;2+2) = 2
IIf (5=4;1+1;2+2) = 4

как то так

Добавлено через 49 секунд
mobile, Вы меня удивляете все больше и больше.
1
12.06.2013, 21:12

Не по теме:

Цитата Сообщение от GenaY Посмотреть сообщение
mobile, Вы меня удивляете все больше и больше.
О чем речь?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2013, 21:12
Помогаю со студенческими работами здесь

Запросы
Привет всем! Имеется таблица с наименованием товара и ценой. Необходимо создать 2 запроса: 1) выбрать 5 товаров с минимальной ценой; 2)...

Запросы
В общем есть бд с таблицами,не как не могу понять как сделать запросы по ним: Файлы, с которыми работают все программы. Файлы,...

Запросы
Как сделать, чтобы при нажатии на запрос выводилось модальное окно с вводом параметров для запроса? У меня создан запрос...

Запросы с Like
В общем такое дело.... Я ОООООЧЧеень недавно начел работать с access и возник вопрос суть в том: у меня есть запрос на выборку Like , при...

Запросы
Добрый день.Помогите пожалуйста с запросами. Необходимо осуществлять следующую обработку данных: - на заданную дату список спортивных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru