|
Вопрос # 1 545/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Я с делфи работаю не давно и еще не совсем разобралась.
У меня есть база (Access) в ней три таблицы(договора, клиенты и сводная). На форме выложены компоненты (3 DBGrida, MonthCalendar и кнопка1), в 1-ом DBGrid -данные о договорах,
во 2-ом DBGrid -данные о клиентах. Не подскажете как сделать так , чтобы при выборе в 1-ом DBGrid договор , во втором -клиента и в календаре дату, при нажатиии на кнопку1 выбранные данные сохранялись в базу и выводились в 3-ий DBGrid ?
 |
Вопрос задала: Танюшка (статус: Посетитель)
Вопрос отправлен: 2 мая 2008, 11:11
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Танюшка!
Итак, первое, что следует запомнить, что данные в DBGride не хранятся. Он только отображает их и не более.
Второе. Работать будем с ADOTable, с которыми вы через DataSource связали гриды. По этому, я предположу, что первый dbgrid это dbgrid1 и он связан с ADOTable1.
И третье. Я не знаю имен полей, которые там у вас. По этому буду писать "на бум".
итак вот код-набросок.
ADOTable3.append;//Добавим новую пустую запись в таблице, куда будем писать данные.
ADOTable3.FieldByName('pole').AsString := ADOTable1.FieldByName('pole').AsString; Такими шагами переписываем
//с нужных таблиц в третью необходимые данные в нужные поля. Также выбираем типы.
ADOTable3.FieldByName('поледлявремени').AsDateTime := MonthCalendar1.Date;//дату записали
ADOTable3.post;// подтвердили добавление записи.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 2 мая 2008, 16:36
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 19 мая 2008, 12:55; участников в обсуждении: 2.
|
Танюшка (статус: Посетитель), 2 мая 2008, 17:01 [#1]:
Спасибо за ответ на самом деле навел на нужное решение!!!!
И можно еще немножко понаглеть, как в MonthCalendar1 еще учитывать и заносить время(чч.мм) заранее спасибки
|
|
Вадим К (статус: Академик), 2 мая 2008, 21:37 [#2]:
то есть заносить?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Танюшка (статус: Посетитель), 3 мая 2008, 09:45 [#3]:
т.е. при выборе даты чтобы в БД сохранялось время этого события
|
|
Вадим К (статус: Академик), 3 мая 2008, 13:35 [#4]:
ну это просто. Текущая дата выдается по функции Now. То есть,
ADOTable3.FieldByName('поледлявремени').AsDateTime := Now;
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Танюшка (статус: Посетитель), 19 мая 2008, 11:06 [#5]:
Не могли бы вы мне разобраться еще вот в каком вопросе:
та же задача, но теперь мне нужно чтобы при выборе договора в первом гриде, во втором отображались те клиенты, которые привязаны к этому договору (т.е. в аксессовской бд код договора "привязан" к коду клиента (1 ко многим))
|
|
Вадим К (статус: Академик), 19 мая 2008, 12:55 [#6]:
Это называется Master-Detail. Гуглим по этому словосочитанию.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|