Возврат значения

Lelu
Дата: 04.12.2006 10:27:50
У меня есть наблица:дата,№путевки, №машины, водитель,бензин на начало дня и конец дня.
На ее основании форма для заполнения.
Задачь:сделать так чтоб при внесении новых данных после выбора машины показывался бензин на начало дня(на начало дня=конец вчерашнего дня)
Программист-Любитель
Дата: 04.12.2006 10:35:10
Схема данных не продумана. На описываемой одной таблице решать ее не надо.
Lelu
Дата: 04.12.2006 10:55:10
Программист-Любитель
Схема данных не продумана. На описываемой одной таблице решать ее не надо.

Вы предлогаите разбить таблицу на несколько.
Каким образом?
Программист-Любитель
Дата: 04.12.2006 11:22:32
Таким, чтобы схема данных максимально полно описывала моделируемую предметную область в рамках решаемой задачи.
mds_world
Дата: 04.12.2006 13:37:58
Lelu
У меня есть наблица:дата,№путевки, №машины, водитель,бензин на начало дня и конец дня.
На ее основании форма для заполнения.
Задачь:сделать так чтоб при внесении новых данных после выбора машины показывался бензин на начало дня(на начало дня=конец вчерашнего дня)

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


Dim rst as DAO.RecordSet, srrSql as String

strSql="SELECT TOP 1 [Таблица].[БензНаНачДня] " _
& "FROM [Таблица] " _
& "WHERE ([Таблица].№машины = Forms!Forma![ПолеНомераМашины])  AND (Max([Таблица].Дата) " _
& "< CDate(Format(Forms!Forma![ПолеДаты]), "dd/mm/yy"))) " _
& "ORDER BY Max([Таблица].Дата) DESC; "

Set rst=CurrentDB.OpenRecordSet (strSql, DbOpenDynaSet)
If rst.RecordCount > 0 Then  ' Есть данные
   Me.[ПолеВФорме-БензинНаНачалоДня]=rst("БензНаНачДня")  
Else  ' Нет данных
      ' Надо что-то делать. Может быть писать 0 в поле БензинНаНачалоДня
EndIf
mds_world
Дата: 04.12.2006 13:40:50
Да. Забыл. После проверки на наличие записей, а лучше даже до нее, нужно заполнить рекордсет данными
rst.MoveLast
rst.MoveFirst
mds_world
Дата: 04.12.2006 14:31:18
И еще вопрос к вам. Автомашина заправляется только один раз в сутки? Два и более раз не может быть? Если может быть то прислушайтесь к мнению Программист-Любитель, надо менять схему данных, менять таблицы.
Lelu
Дата: 04.12.2006 14:57:55
А это все писать в запросе в соответствующей ячейки?
Lelu
Дата: 04.12.2006 15:34:53
mds_world
И еще вопрос к вам. Автомашина заправляется только один раз в сутки? Два и более раз не может быть? Если может быть то прислушайтесь к мнению Программист-Любитель, надо менять схему данных, менять таблицы.

Машина заправляется в течение дня и все данные по завравки учитываются в одной путевки.
mds_world
Дата: 04.12.2006 15:36:01
Lelu
А это все писать в запросе в соответствующей ячейки?
Или я вас неправильно понял, или вы меня. То, что я вам предложил это не запрос, вернее не только запрос, это текст процедуры на событии После обновления контрола формы. Того контрола, в котором вы ставите номер машины, как вы и просили. Т.е. вы пишете номер машины, дата уже заполнена (можно, конечно поменять последовательность, тогда немного надо и процедуру менять). Как только вбили номер, отрабатывает программа и заносит кол-во бензина на начало дня для это машины. Вот так.