- •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.6. Редактирование данных через компоненты
Для реализации редактирования текущей записи через отдельные компоненты необходимо в форму добавить кнопки Редактировать и Сохранить изменения (рис. 2.10).
Рис. 2.10. Вид формы с кнопками для редактирования
С кнопкой Редактировать связана следующая процедура:
Var
i: integer;
begin
{Перезапись в компоненты полей текущей записи}
Edit1.text:= имя_модуля_данных.ADOTable1['Sh_gr'];
ComboBox1.Text := имя_модуля_данных.ADOTable1 ['Facul'];
ComboBox2.Text := имя_модуля_данных.ADOTable1 ['Spec'];
for i:=0 to ComboBox1.Items.Count-1 do
if ComboBox1.Items[i]=IntToStr(имя_модуля_данных.ADOTable1['Kurs'])
then
begin
ComboBox1.ItemIndex:=i;
break;
end;
Edit2.text := имя_модуля_данных.ADOTable1 ['Star'];
DateTimePicker1.Date := имя_модуля_данных.ADOTable1 ['Dat_zach'];
End;
С кнопкой Сохранить изменения связана следующая процедура:
{Перевод текущей записи в состояние редактирования с помощью метода Edit}
имя_модуля_данных.ADOTable1.Edit;
{Присвоение полям текущей записи значений компонентов}
имя_модуля_данных.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;
{Сохранение сделанных изменений в текущей записи с помощью метода Post}
имя_модуля_данных.ADOTable1.Post;
3. Реализация сортировки, вычислений и фильтрации данных
3.1. Реализация сортировки
Для отображения результатов сортировки на форму необходимо поставить следующие компоненты:
компонент DataSource (источник данных); настроить свойство DataSet – имя таблицы, находящейся на модуле данных (в модуле, соответствующем созданной форме для доступа к компонентам модуля данных в разделе implementation выставить uses unit2 (если модуль данных был создан вторым));
компонент DbGrid (таблица для отображения информации); настроить свойство DataSource – DataSource1.
Сортировка с помощью отдельной кнопки осуществляется следующим образом.
Поставить на форму компонент Кнопка (Button1), для свойства OnClick данной кнопки написать процедуру
Имя_модуля_данных.ADOTable1.Sort:='Avt ASC';
Данная процедура реализует сортировку таблицы ADOTable1 по возрастанию для поля Avt (авторы). Если вместо ключевого слова Asc использовать Desc, то будет убывающая сортировка.
Сортировка с помощью группы переключателей осуществляется следующим образом.
1. На форму можно поставить компонент Panel1, удалить надпись в свойстве Caption.
2. На панель поставить компонент Radiogroup1, для него в свойстве Caption задать надпись Вид сортировки; в свойстве Items задать подписи для переключателей (например, по автору, по области знаний, по шифру книги).
3. Добавить на форму кнопку Button1 (задать надпись Сортировать), для свойства OnClick данной кнопки написать процедуру:
case RadioGroup1.ItemIndex of
0: DataM.ADOTable3.Sort:='Avt ASC';
1: DataM.ADOTable3.Sort:='Oblzn ASC';
2: DataM.ADOTable3.Sort:='Sh_gr ASC';
end;
4. При выборе первого переключателя будет сортировка по полю Авторы, при выборе второго переключателя будет сортировка по полю Область знаний, при выборе третьего переключателя – по полю Шифр книги.