Программирование MsAccess, VB, VBA

  

© am 1999-2010

Добро пожаловать, незнакомец! [вход]   

|  Домой   |   Новости   |   Гостевая   |   Форумы   |   Поиск   |   Страницы Авторов   |

Форумы/     Сообщений: всего:53643, сегодня:0, за неделю:31, за месяц:46, за год:1617
Использование СУБД Ms Access, программирование на VB, VBA
Данный форум посвящен различным вопросам создания приложений баз данных на платформах - Microsoft Access, Microsoft Visual Basic.

Public forum

  Home Ответить подписка В избранное Из избранного

Эта тема располагается на нескольких страницах: [1] 2 3 »  все
Вычисляемое поле Профиль пользователяOl_Bak   
В форме каждый день заносятся в поля числовые данные. В некоторых полях информация заносится с нарастающим итогом.
Например:
Дата Поле 1
01.01.2010 10000
02.01.2010 11000
и.т.д.
Как в форме организовать поле, которое бы показывало прирост (разницу с предыдущей записью этого поля за прошлый день)
Для примера, возле поля 1 вставить поле 2
Дата Поле 1 Поле 2
01.01.2010 10000
02.01.2010 11000 1000
31.01.2010 13:35

Re:Вычисляемое поле Сергей Лалов   
Вас устроит вариант, если для расчета вам нужно будет нажимать кнопку на форме,чтобы посмотреть разницу по выделенной и предыдущей записи ? Или вам статистику с этими значениями разницы надо вести в таблице тоже. Данные должны только на форме отображаться,или же в таблицу тоже заноситься другим словом? Скажите, соберем вам образец и приложим.
31.01.2010 15:09

Re:Вычисляемое поле Профиль пользователяOl_Bak   
Да, должны заносится в таблицу.
31.01.2010 15:38

Re:Вычисляемое поле Профиль пользователяDenis V.   
Какая-то обратная у Вас задача. Обычно в таблицу записываются данные, просто данные. Например, приход чего-то столько-то, дата такая-то. Потом возникает необходимость просмотреть историю нарастающим итогом. А у Вас нарастающим итогом данные заносятся... точно на каждый день одна запись?
Можно составить запрос, в котором объединить таблицу саму с собой по условию, что даты отличаются на один день и расчитать разницу.
31.01.2010 21:01

Re:Вычисляемое поле Профиль пользователяOl_Bak   
Каждый день заносятся показатели оборудования, они идут с нарастанием. Необходимо на форме видеть величину прироста, потом от него будут производится некоторые вычисления.

Как объединить таблицу саму с собой
31.01.2010 21:28

Re:Вычисляемое поле Anonimous   
Доброй ночи, я подумал тут пару минут, решение получилось немного сумбурным, но работает. Примерно как сказал Денис, только я разложил все на составляющие. В качестве объединенных таблиц наглядно на форме в главной вставил таблицу1,и в подчиненной ее же, только условием для связи/отбора сделал не чистое поле, а значение дата-1, для этого создал отдельное поле на форме,назвал его poledata. и привязал подчиненную именно на это поле. Создал второе поле,назвал его poleznachenie, источником данных у которого является поле значение из подчиненной формы(которое предварительно уже отфильтровано по предыдущей дате). Итак, значение предыдущей даты известно, осталось отнять текущее от предыдущего.
Код простенький, повесил на кнопку:


Private Sub Кнопка37_Click()
Dim P As Integer
Dim D As Integer
P = Me.predznachenie
D = Me.значение
Me.разница = D - P
End Sub


Все, процесс пошел...образец приложил.
Можно вместо подчиненной формы написать выборку SQL прямо в коде, по этому же принципу, присвоить переменную этому выбранному значению,и провернуть то же самое чисто в коде, но пора спать уже)).
Образец БД прилагаю.
Присоединенный файл:Опыты.rar (Размер: 23478 байт, Скачиваний:51)
01.02.2010 02:18

Re:Вычисляемое поле Anonimous   
С Уважением,
ЛАлов Сергей
01.02.2010 02:19

Re:Вычисляемое поле Профиль пользователяas111   
Сергей думаю что решение немного не доработано. Что если
в какой-то из дней поле не будет заполнено, например в субботу
или воскресенье сотрудники наверняка отдыхают. Скорее надо ввести
нумерацию записей в запросе (см. примеры на сайте) и создать
запрос с двумя копиями полученной автонумерации, связав копии
уже по значению этого поля автонумерации - 1. Соответственно
в этом последнем запросе и вычислять разницу.
03.02.2010 12:28

Re:Вычисляемое поле Сергей Лалов   
Да,согласен, решение недоработано по следующим моментам:
во первых обработчик нулевых значений поля надо включить.
Добавить условие if которое в случае выходных дней обращается например к пятнице. Вообще предварительно проверяет день недели. Организуется просто ,при помощи функции WeekDay(тра та та)если к примеру функция выдает значение тиекущего дня =1 понедельнику, то обращение идет к пятнице прошлой недели. В принципе задача несложная. Если актуально еще вопрос,доработаю в коде и пришлю..
03.02.2010 13:19

Re:Вычисляемое поле Профиль пользователяOl_Bak   
актуально
03.02.2010 21:49

Эта тема располагается на нескольких страницах: [1] 2 3 »  все

  Home Ответить подписка В избранное Из избранного

  Rambler's Top100TopList