- •1.1. Создание базы данных в Access 2003
- •1.2. Создание таблицы в режиме Конструктор
- •1.3. Редактирование структуры таблицы
- •1.4. Создание и редактирование схемы данных
- •1.5. Создание базы данных, таблиц и схемы данных в Access 2007
- •1.8. Защита пункта меню паролем
- •1.9. Редактирование внешнего вида формы
- •2.1. Создание формы для работы с одной таблицей
- •2.2. Ввод данных в таблицу с помощью созданной формы
- •2.3. Создание формы для работы с двумя таблицами
- •2.4. Редактирование формы
- •2.5. Ввод данных через отдельные компоненты
- •2.6. Редактирование данных через компоненты
- •3. Реализация сортировки, вычислений и фильтрации данных
- •3.1. Реализация сортировки
- •3.2. Реализация вычислений
- •3.3. Реализация фильтрации записей
- •4.3. Создание запроса с групповыми вычислениями
- •4.4. Создание параметрического запроса
- •4.5. Параметрический запрос для поиска поля, выбранного из списка
- •4.6. Параметрический запрос для поиска даты, выбранной из списка или введенной в поле ввода
- •5.1. Создание отчета в Delphi
- •5.2. Создание отчета с группировкой записей по определенному полю
- •Список книг
- •5.3. Создание отчета на основе параметрического запроса
- •Библиографический список
- •Оглавление
2.5. Ввод данных через отдельные компоненты
Ввод данных в отдельные компоненты и запись в таблицу базы данных осуществляют следующим образом.
Первоначально необходимо подготовить форму для ввода данных. Возможный вид формы представлен на рис. 2.8.
Рис. 2.8. Форма для ввода данных через компоненты
Область для ввода данных располагается на компоненте Panel, свойство Caption очищено.
Поля ввода сопровождают надписи. Надписи созданы с помощью компонента Label, в свойство Caption введена русская надпись.
Поля для ввода созданы с помощью следующих компонентов:
текстовые поля - компонент Edit, свойство text очищают;
поле с раскрывающимся списком – компонент ComboBox, в свойстве Items вводят список значений, свойство text очищают;
поле для ввода даты DateTimePicker.
На кнопке Добавить (компонент Button) помещена процедура добавления введенных данных в таблицу базы данных (данные отражаются в компоненте DBGrid).
Имя_модуля_данных.ADOTable1.Append;
Имя_модуля_данных.ADOTable1 ['Sh_gr']:=Edit1.text;
Имя_модуля_данных.ADOTable1 ['Facul']:=ComboBox1.Text;
Имя_модуля_данных.ADOTable1 ['Spec']:=ComboBox2.Text;
Имя_модуля_данных.ADOTable1['Kurs']:= StrToInt(ComboBox1.Items[ComboBox1.ItemIndex]);
Имя_модуля_данных.ADOTable1 ['Star']:=Edit2.text;
Имя_модуля_данных.ADOTable1['Dat_zach']:=DateTimePicker1.Date;
Имя_модуля_данных.ADOTable1.Post;
На кнопке Очистить помещена процедура очистки полей ввода.
Edit1.text:='';
ComboBox1.Text:='';
ComboBox2.Text:='';
ComboBox3.Text:='';
Edit2.text:='';
Второй пример ввода данных в таблицу базы данных реализован следующим образом.
Первоначально создают форму для ввода данных. Возможный вид формы представлен на рис. 2.9.
Область для ввода данных располагается на компоненте Panel, свойство Caption очищено.
Поля ввода сопровождают надписи. Надписи созданы с помощью компонента Label, в свойство Caption введена русская надпись.
Рис. 2.9. Форма для ввода данных
Поля для ввода созданы с помощью следующих компонентов:
простые поля для ввода - с помощью компонента Edit;
группа зависимых переключателей – с помощью компонента RadioGroup (в свойстве Caption вносится надпись на русском языке; например, «Бюджет / Договор»), на компоненте RadioGroup помещают компоненты RadioButton (для них в свойстве Caption ставят надписи на русском языке);
независимый переключатель - с помощью компонента CheckBox (в свойстве Caption указывается надпись на русском языке, например, «Военнообязанный»);
поле с раскрывающимся списком - с помощью компонента ComboBox.
Раскрывающийся список выбирают из другой таблицы (в данном примере поле «Шифр группы» выбирают из таблицы «Группы»). Для формирования списка создают специальную процедуру.
Для формы в целом в событии OnActivate записывают следующую процедуру:
Имя_модуля_данных.ADOTable2.First;
While not Имя_модуля_данных.ADOTable2.Eof do
begin
ComboBox1.Items.Add(Имя_модуля_данных.ADOTable2.fieldByName('Sh_gr').Value);
Имя_модуля_данных.ADOTable2.Next;
end;
Данная процедура выбирает значения из поля Sh_gr таблицы ADOTable2, которая находится на модуле данных, и помещает их в значения (Items) в компонент ComboBox1.
На кнопке Добавить помещена процедура ввода данных в поля таблицы базы данных.
Имя_модуля_данных.ADOTable1.Append;
Имя_модуля_данных.ADOTable1 ['Nom_z']:=Edit1.text;
Имя_модуля_данных.ADOTable1 ['Fam']:=Edit2.text;
Имя_модуля_данных.ADOTable1 ['Im']:=Edit3.text;
Имя_модуля_данных.ADOTable1 ['Otch']:=Edit4.text;
Имя_модуля_данных.ADOTable1 ['Sh_gr']:=ComboBox1.Text;
if RadioButton1.Checked then Имя_модуля_данных.ADOTable1 ['B_D']:='Бюджет' ;
if RadioButton2.Checked then Имя_модуля_данных.ADOTable1 ['B_D']:='Договор';
if CheckBox1.Checked then Имя_модуля_данных.ADOTable1 ['V_sl']:='Да'
else Имя_модуля_данных.ADOTable1 ['V_sl']:='Нет';
Имя_модуля_данных.ADOTable1.Post;
На кнопке Очистить помещают процедуру очистки полей ввода.
Edit1.text:='';
Edit2.text:='';
Edit3.text:='';
Edit4.text:='';
ComboBox1.Text:='';
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
CheckBox1.Checked:=false;