Существует сильнейшая библиотека компонентов для работы с базами данных, под названием - EhLib. Так вот, аналогом стандартного DBGrid, в этой библиотеке является компонент DBGridEh. По сравнению с DBGrid, DBGridEh более гибкий и обладает гораздо большим диапазоном настроек. В частности, для того чтобы отображать в ячейках какого либо столбца, выпадающий календарь DateTimePicker, 1) В базе Access в соответствующем столбце, тип указать - Дата/время; 2) Кликаем дважды по гриду, в редакторе столбцов - Editing DbGridEh1Columns выбираем Add All Fields, выделяем наш столбец и переходим к инспектору объектов. 3) Свойство AlwaysShowEditButton, ставим в true;
4) Чтобы компилятор не ругался на пустую строку типа '' - не является типом DateTime, на кнопке для добавления новых строк, как вариант можно прописать следующее: var a:Tdate; begin a:=Date; AdoTable1.Insert; // Добавляем в таблицу новую строку; AdoTable1.FieldByName('имя столбца').AsDateTime:=a; //Присваиваем ячейке текущую дату; AdoTable1.Post; end; 5) Запускаем проект;
Теперь при вводе даты, ошибок возникать не будет, поскольку строке будет присваиваться текущая дата уже при добавлении, и поле не будет пустым.
|