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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2013, 22:46   #31
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Ой, сорри, там наоборот: слэш и точку надо местами поменять
Андрэич вне форума Ответить с цитированием
Старый 18.02.2013, 09:54   #32
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Извиняюсь за долгий ответ - выходные И да, ВСЕ заработало! Спасибо огромное, отличное начала рабочего дня!

У меня там в проекте еще есть задачки,если что-то не получится,обязательно отпишусь
Emmelman вне форума Ответить с цитированием
Старый 18.02.2013, 23:11   #33
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Цитата:
Сообщение от Emmelman Посмотреть сообщение
У меня там в проекте еще есть задачки
Справка по Аксесс 97. Там, например, нет некоторых новых полезных функций, вроде Split() или того же Replace(), но в целом вполне актуальный хэлп... :-)
Андрэич вне форума Ответить с цитированием
Старый 19.02.2013, 13:47   #34
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

не смогу поставить справку ибо все в компе залочено, ни в programFiles, ни в WINDOWS копирнуть ничего нельзя . Но наверно буду пользоваться справкой в инете , что-то типа этого http://office.microsoft.com/ru-ru/ac...010064691.aspx

Появилась такая проблемка, я сделал запрос в конструкторе на выборку за неделю, все просто,вот он -
Код:
SELECT *
FROM Operations
WHERE (((Operations.OPERATIONDATE) Between Date() And Date()-7))
ORDER BY Operations.OPERATIONDATE;
все работает и показывает. И теперь это дело мне нужно перенести в код VBA и я опять запутался. Попробовал вот так вот
Код:
MySQL = "SELECT *"
    MySQL = MySQL & " FROM Operations "
    MySQL = MySQL & "WHERE [Operations].[OPERATIONDATE] Between #" & Date & "# And #" & Date & -7"# "
    MySQL = MySQL & " ORDER BY Operations.OPERATIONDATE"
    [Forms]![Weekly_form]![Form1-operations].Form.RecordSource = MySQL
ессно ругается на "-7", убрал его,для теста. Без него ругается на то,что внутри BETWEEN, а именно #19.02.2013# and #19.03.2013# и его можно понять, ведь такое отображение даты использовать в данном операторе нельзя, а нужно переворачивать и поставить слэш вместо точки. И неужели так все сложно? Ведь запрос в конструкторе такой простой

UPDATE:Сделал, мб корявенько, но сделал
вставил вот такой код перед запросом:
Код:
MyDate = Date
MyDate2 = Replace(Format(MyDate, "yyyy/mm/dd"), ".", "/")

MyDate3 = Date - 7
MyDate4 = Replace(Format(MyDate3, "yyyy/mm/dd"), ".", "/")
и в запросе вставил :
Код:
MySQL = MySQL & "WHERE [Operations].[OPERATIONDATE] Between #" & MyDate2 & "# And #" & MyDate4 & "# "
и теперь мне отображает выборку за неделю) Но выглядит как-то громоздко или нет?

Последний раз редактировалось Emmelman; 19.02.2013 в 13:55. Причина: Сделал
Emmelman вне форума Ответить с цитированием
Старый 19.02.2013, 15:50   #35
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Какая нужна выборка: за текущую (прошлую) календарную неделю, за последние (календарн/рабоч) 7 дней или как?
Андрэич вне форума Ответить с цитированием
Старый 19.02.2013, 15:52   #36
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

http://www.sql.ru/faq/faq_topic.aspx?fid=157
Андрэич вне форума Ответить с цитированием
Старый 19.02.2013, 17:01   #37
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

выборка за - Текущая дата минус семь дней

Отличная ссылка,сделал закладку,чтоб не потерять!
Emmelman вне форума Ответить с цитированием
Старый 20.02.2013, 11:27   #38
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Думаю над задачей, как правильно сформировать запрос.
В моей таблице операций встречаются множественные операции сотрудника. Например Иванов Иван Иваныч перевел деньги тому-то. И так несколько раз, даты могут совпадать (т.е. в один день несколько операций).
Так вот, одним запросом я делаю выборку от текущей даты минус семь дней и вижу ВСЕ операции за этот период и что я хочу сделать: я хочу увидеть операции только тех сотрудников, которые совершили 2 или БОЛЕЕ операций за НЕДЕЛЮ (тек дата минус семь дней).

Создал второй запрос, в котором вывел имена всех сотрудников и их ID, сделал GROUP BY, примерный результат такой -
Иванов И.И. 2
Лопухин А.О. 1
Жирков Д.Д 4
Туполев Г.Д. 0

и так далее...

подсоединил к первому запросу и сразу вижу ошибку в выборке - у Иванова две операции,одна на последней НЕДЕЛЕ,а другая два месяца назад - ИВанов все равно попадает в выборку, а по идее не должен(((

вот запрос с ID и именем:
Код:
SELECT Operations.DEBIT_ACCOUNT_OWNER_NAME, Count(Operations.DEBIT_ACCOUNT_OWNER_ID) AS CountOfDEBIT_ACCOUNT_OWNER_ID
FROM Operations
GROUP BY Operations.DEBIT_ACCOUNT_OWNER_NAME
HAVING (((Count(Operations.DEBIT_ACCOUNT_OWNER_ID))>=2))
ORDER BY Operations.DEBIT_ACCOUNT_OWNER_NAME;
а вот запрос куда я подсоединяю предыдущий:
Код:
SELECT *
FROM Operations INNER JOIN Query3 ON Operations.DEBIT_ACCOUNT_OWNER_NAME = Query3.DEBIT_ACCOUNT_OWNER_NAME
WHERE (((Operations.OPERATIONDATE) Between Date() And Date()-7))
ORDER BY Operations.OPERATIONDATE;

UPDATE: Подошел по-другому к решению данного вопроса, сделал отдельную таблицу для еженедельных выгрузок, чтобы лишние "подтягивания" из прошлого не мешали, настроил так, что при запуске программы туда скидываются записи за неделю, каждый раз при открытии они обновляются,старые удаляются, типа как +1 день и -1 день

Последний раз редактировалось Emmelman; 20.02.2013 в 17:28.
Emmelman вне форума Ответить с цитированием
Старый 21.02.2013, 22:02   #39
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Выложи в .mdb таблицы с любыми изменёнными данными для наглядности
Андрэич вне форума Ответить с цитированием
Старый 22.02.2013, 16:23   #40
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Я закончил свой программу, отдал ее на начальное тестирование. После поиска багов и их исправления(если будут),могу выложить на форум,так сказать,для ознакомления.
Emmelman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приведение к 3 н.ф. базы данных leha_leha Помощь студентам 2 26.11.2012 22:50
приведение числовых данных к единому виду сантехник Microsoft Office Excel 42 20.09.2011 11:27
Приведение типов в Qt mike_tihomirov Qt и кроссплатформенное программирование С/С++ 1 19.06.2010 13:14
Необхоима подборка данных за определенный срок koma Общие вопросы Delphi 3 01.10.2009 14:08
Приведение к типу __Demon__ Общие вопросы C/C++ 1 27.09.2009 17:40