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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2008, 16:15   #1
Elvisnya
Пользователь
 
Аватар для Elvisnya
 
Регистрация: 13.09.2008
Сообщений: 24
По умолчанию Операции с датами в Access 2003

Здраствуйте. Обьясните пожалуйста как в Access'e 2003 можно осуществить следущее: В таблице "Аренда" Есть четыре поля:
1.стоимость аренды на 1 день (Тип данных:денежный)
2.Дата начала (Тип данных:Дата/время, формат поля:краткий формат даты)
3.Дата окончания (Тип данных:Дата/время, формат поля:краткий формат даты)
4.итоговая цена (Тип данных:денежный)
первые три заполнены данными, а в 4 я должен получит результат следующего вычесления:
(Дата окончания-Дата начала)*стоимость аренды на 1 день
Причём это необходимо сделать при помощи запроса на обновление.
Единственно что у меня не получается, так это (Дата окончания-Дата начала)
Обьясните что мне нужно написать чтобы получить например 01,06,2001-01,06,2002=360 (может там и не 360 получится, но смыслвы поняли )
ПОМОГИТЕ ПОЖАЛУЙСТА.
Elvisnya вне форума Ответить с цитированием
Старый 05.10.2008, 18:16   #2
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от Elvisnya Посмотреть сообщение
Единственно что у меня не получается, так это (Дата окончания-Дата начала)
Обьясните что мне нужно написать чтобы получить например 01,06,2001-01,06,2002=360 (может там и не 360 получится, но смыслвы поняли )
ПОМОГИТЕ ПОЖАЛУЙСТА.
Для этого применяются функции работы с датами, в данном случае функция DateDiff. Там все просто, указываете "d" в первом аргументе функции, во втором дата окончания, в третьем дата начала. И все у Вас получится.
Abrakadabra вне форума Ответить с цитированием
Старый 05.10.2008, 19:53   #3
Elvisnya
Пользователь
 
Аватар для Elvisnya
 
Регистрация: 13.09.2008
Сообщений: 24
По умолчанию

Код:
Для этого применяются функции работы с датами, в данном случае функция DateDiff. Там все просто, указываете "d" в первом аргументе функции, во втором дата окончания, в третьем дата начала. И все у Вас получится.
Неполучается. Напишите пожалуйста на примере
Я пишу вот так и нефига неработает
DateDiff (d; «Выражение» [Аренда]![Дата окончания] «Выражение» ; «Выражение» [Аренда]![Дата начала] «Выражение» ; «firstweekday»; «firstweek»)
Elvisnya вне форума Ответить с цитированием
Старый 05.10.2008, 20:55   #4
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от Elvisnya Посмотреть сообщение
Код:
Для этого применяются функции работы с датами, в данном случае функция DateDiff. Там все просто, указываете "d" в первом аргументе функции, во втором дата окончания, в третьем дата начала. И все у Вас получится.
Неполучается. Напишите пожалуйста на примере
Я пишу вот так и нефига неработает
DateDiff (d; «Выражение» [Аренда]![Дата окончания] «Выражение» ; «Выражение» [Аренда]![Дата начала] «Выражение» ; «firstweekday»; «firstweek»)
Я так понимаю, что хотите получить результат в запросе? Тогда примерно вот так:
DateDiff ("d"; [Дата окончания]; [Дата начала])
т.е. в конструкторе запросов добавьте столбец, напишите ему имя, напр. "Разница дней", добавьте вышеприведенную строку функции:

Разница дней: DateDiff ("d"; [Дата окончания]; [Дата начала])


P.S.

А вот в таблице 4 столбец у Вас лишний. Зачем хранить вычисляемые значения? Это ведь можно просто вычислить в любое время..
Abrakadabra вне форума Ответить с цитированием
Старый 06.10.2008, 12:15   #5
Elvisnya
Пользователь
 
Аватар для Elvisnya
 
Регистрация: 13.09.2008
Сообщений: 24
Печаль

У меня не получается. Дело в том что задача намного сложнее. Сейчас обьясню. У меня есть БД "Прокат машин", я её прикрепил к этому сообщению. Так вот там у меня есть таблица "Договор" в которой есть столбик "Итоговая оплата". Мне необходимо чтобы в этом столбике получился результат вычисления
((дата оконч дог - дата закл дог)*стоим аренды на 1 день)-скидка клиента
Я хочу это реализовать с помощью запроса на обновление. Но у меня не получается. Если вам не трудно то пожалуйста создайте такой запрос.

Дело в том что это моё ДЗ. Уже на этой недели надо сдавать, а я из-за этого долбаного запроса немогу его продолжить делать. В общем спасите студента =)

Заранее спасибо.
Вложения
Тип файла: rar Прокат машин.rar (39.9 Кб, 80 просмотров)

Последний раз редактировалось Elvisnya; 06.10.2008 в 12:19.
Elvisnya вне форума Ответить с цитированием
Старый 06.10.2008, 16:20   #6
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от Elvisnya Посмотреть сообщение
Дело в том что задача намного сложнее.
не сложнее.. у меня Ваш пример работает, вот только для этого Вам необходимо немного попытаться подумать.. Если хотите, чтобы это сделали за Вас, обратитесь в раздел "Работа". если же хотите сами, то Вам все объяснили. Только вот формула, а точнее понятие "скидка" у Вас не совсем корректная. Если у Вас скидка в %, то и вычисляйте ее как число, которое можно применить в приведенной формуле. И все получится.
Abrakadabra вне форума Ответить с цитированием
Старый 07.10.2008, 21:26   #7
Elvisnya
Пользователь
 
Аватар для Elvisnya
 
Регистрация: 13.09.2008
Сообщений: 24
Радость

ЗАШАРИЛ! УРА! УРА! УРА!
Вложения
Тип файла: rar OK.rar (48.6 Кб, 165 просмотров)
Elvisnya вне форума Ответить с цитированием
Старый 19.03.2009, 08:31   #8
Tatu
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 12
По умолчанию

А у меня такая проблема. Существует таблица "Архив контроля", в которой находятся все данные по контрольному съему показаний у абонентов за всё время существования (массив). Я создаю запрос, в котором мне нужно вывести дату последнего съема (столбец - ДатаЗадания) и дату предыдущего контрольного съема (она тоже находится в столбце ДатаЗадания, но в другой строке-записи). Дату последнего съема я вывела с помощью функции LAST. С условием на дату предыдущего съема у меня проблемы. Где то прочитала такое условие SELECT Last([имя столбца])-(Last([имя столбца])-1) From Имя таблицы, но мне кажется смещение "1" для даты не подействует. Помогите кто чем может!
Tatu вне форума Ответить с цитированием
Старый 16.01.2012, 22:18   #9
py6jlb
 
Регистрация: 16.01.2012
Сообщений: 8
По умолчанию Почти таже проблема

Товарищи а подскажите хотя бы примерно, как мне посчитать выручку фирмы по аренде автомобилей за определенный период!(период произвольный, то есть каждый раз разный)
py6jlb вне форума Ответить с цитированием
Старый 17.01.2012, 11:21   #10
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Ладно студенты, но имейте совесть хоть примеры выкладывайте, а то сначала пишут Вам функцию, потом разжовывают, а после исправляют под Ваш пример, не тратте зря время других....
gluk_fm вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста сделать поиск по базе данных в форме! Access 2003 LilijaSt Microsoft Office Access 19 25.12.2010 10:13
Операции с датами. mrtnt PHP 3 20.09.2008 01:16
ДД. Нужен человек для поддержки программы, написанной в Microsoft Office Access 2003 gsvgsv Фриланс 1 06.09.2007 11:52
Как связать таблицы в Access 2003 ? Nowichok Microsoft Office Access 2 13.02.2007 16:31
Общие сведения Microsoft Access 2003. Alar Microsoft Office Access 0 30.10.2006 23:22