Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Добавление записей в таблицу и удаление их из таблицы с помощью элемента ADO Data





Элемент ADO Data (как, впрочем, и DAO Data) позволяет не только просматривать записи в таблицах базы данных. Записи можно добавлять, удалять и редактировать. Эти манипуляции можно выполнять как без использования кода (для одного объектного отношения), так и из кода (для любого количества отношений, в том числе и связанных между собой).

Для демонстрации обработки записей таблицы Товары базы фирма.mdb без использования кода создадим форму с элементами управления (рис. 16.49), свойства которых приведены в следующей таблице.

Рис. 16.49

Форма для демонстрации обработки записей таблицы Товары базы фирма.mdb без использования кода

Тип элемента Свойство, которое изменено (используется в коде) Значение Примечание
UserForm Name FrmNacl Имя формы, на которое можно ссылаться в коде.
  ConrtolBox False Убрать кнопки минимизации/максимизации и закрытия формы.
  Caption Использование ADO Data  
DataGrid Name DataGrid1 Элемент для отображения табличных данных.
  DataSource Adodc1 Для отображения данных Adodc1.
  Caption Таблица Товары из базы фирма.mdb Текст – заголовок.
  AllowAddNew False Запрещает добавлять данные.
  AllowUpdate False Запрещает редактировать данные в сетке.
Frame Name Frame1 Для группировки текстовых окон с метками.
  Caption Редактирование/Добавление  
Label Name Label1 Метка для Text1.
  Caption Код товара  
Label Name Label2 Метка для Text2.
  Caption Наименование товара  
Label Name Label3 Метка для Text3.
  Caption Цена1  
Label Name Label4 Метка для Text4.
  Caption Цена2  
TextBox Name Text1 Элемент для отображения записи одного поля: КодТовара.
  DataSource Adodc1  
  DataField КодТовара  
TextBox Name Text2 Элемент для отображения записи одного поля: НаимТовара.
  DataSource Adodc1  
  DataField НаимТовара  
TextBox Name Text3 Элемент для отображения записи одного поля: Цена1.
  DataSource Adodc1  
  DataField Цена1  
TextBox Name Text4 Элемент для отображения записи одного поля: Цена2.
  DataSource Adodc1  
  DataField Цена2  
Adodc Name Adodc1 Имя, на которое можно ссылаться в коде (элемент ADO Data).
  Visible True Элемент будет виден в режиме выполнения.
  EOFAction adDoAddNew При попытке выйти за конец файла добавить новую запись.
CommandButton Name CmdExit Имя, на которое можно ссылаться в коде.
  Caption Выход Заголовок для кнопки.
  Cancel True Клавиша Esq также вызовет процедуру CmdExit_Click.

В модуле формы только для одной кнопки CmdExit будем использовать код — программу для закрытия приложения. Вся остальная информация записана в свойства элементов управления.

Свойство AllowAddNew элемента DataGrid1 имеет значение False, что предотвращает добавление к нему записей. Такому же значению равно свойство AllowUpdate для запрета редактировать записи прямо на сетке. Сетка в данном случае используется только для отображения данных.

Текущая запись отображается также в текстовых окнах Text1, Text2, Text3 и Text4, для которых метки Label1, Label2, Label3 и Label4 служат в качестве заголовков.

Добавление записи к таблице осуществляется, благодаря установке свойства EOFAction элемента Adodc1 в значение adDoAddNew — при попытке выхода за конец файла с файлу добавляется новая запись. При этом свойство Visible должно иметь значение True, чтобы пользователь имел доступ к кнопкам элемента Adodc1. Для добавления новой записи достаточно щелкнуть кнопку Move Last на элементе Adodc1 (если текущая запись не последняя), а затем кнопку — Next. При этом в таблицу Товары добавляется новая запись, которая отображается и в элементе DataGrid1, и в текстовых окнах Text1, Text2, Text3 и Text4. Остается только заполнить текстовые окна значениями (рис. 16.50).

Рис. 16.50

В таблицу Товары добавляется новая запись, которая отображается и в элементе DataGrid1, и в текстовых окнах Text1, Text2, Text3 и Text4. Остается только заполнить текстовые окна значениями

Добавлять записи из кода немногим сложнее, но при этом можно это делать для нескольких таблиц. Для демонстрации добавления записей из кода изменим форму, представленную на рис. 16.49, как показано на рис. 16.51.

Рис. 16.51

Форма для демонстрации обработки записей таблицы Товары базы фирма.mdb с использованием кода

Здесь добавлены четыре кнопки перемещения по записям набора, кнопка Добавить и Удалить (свойства этих кнопок приведены в следующей таблице). Кроме того, свойству Visible элемента Adodc1 присвоено значение False, таким образом, в режиме выполнения воспользоваться кнопками этого элемента будет невозможно.

Тип элемента Свойство, которое изменено (используется в коде) Значение Примечание
CommandButton Name Command1 Кнопка для перемещения к следующей записи.
  Caption >  
  ToolTipText Следующая При нахождении курсора на кнопке появляется ToolTip-подсказка.
CommandButton Name Command2 Кнопка для перемещения к последней записи.
  Caption >>  
  ToolTipText Последняя При нахождении курсора на кнопке появляется ToolTip-подсказка
CommandButton Name Command3 Кнопка для перемещения к предыдущей записи.
  Caption <  
  ToolTipText Предыдущая При нахождении курсора на кнопке появляется ToolTip-подсказка
CommandButton Name Command4 Кнопка для перемещения к первой записи.
  Caption <<  
  ToolTipText Первая При нахождении курсора на кнопке появляется ToolTip-подсказка

Самый простой код событийных процедур для кнопок перемещения по записям набора представлен в листинге 16.2. Здесь используются методы MoveNext (перейти к следующей записи), MoveLast (перейти к последней записи), MovePrevious (перейти к предыдущей записи), MoveFirst (перейти к первой записи) объекта Recordset.

Листинг 16.2 Событийные процедуры кнопок перемещения по записям

Private Sub Command1_Click()

Adodc1.Recordset.MoveNext

End Sub

 

Private Sub Command2_Click()

Adodc1.Recordset.MoveLast

End Sub

 

Private Sub Command3_Click()

Adodc1.Recordset.MovePrevious

End Sub

 

Private Sub Command4_Click()

Adodc1.Recordset.MoveFirst

End Sub

На рис. 16.52 рассматриваемая форма представлена в режиме выполнения. Щелкая на кнопках перемещения по записям, можно видеть перемещение табличного курсора (черный треугольник в левой части сетки) и поочередное отображение данных в секции Редактирование/Добавление.

Рис. 16.52

Модифицированная форма Использование ADO Data в режиме выполнения

Такой простой код для событийных процедур, конечно, предназначен только для демонстрации методов MoveNext, MoveLast, MovePrevious, MoveFirst объекта Recordset. Такой код «выпускать в свет» нельзя. Дело в том, что, достигнув, например, последней записи, мы не должны щелкать на кнопке >; или >>;, так как в этом случае произойдет ошибка времени исполнения, сообщение о которой приведено на рис. 16.53.

Рис. 16.53

Попытка перейти к следующей записи после последней может завершить выполнение кода

Чтобы исключить попытки перемещения к несуществующим записям, можно, например, блокировать кнопки, от которых в данный момент следует ждать одних «неприятностей». В листинге 16.3 приведен более «продвинутый» код событийных процедур, который предотвращает возникновение ошибок, подобных приведенным на рис. 16.53.

Листинг 16.3 Более «продвинутые» событийные процедуры кнопок перемещения по записям

1: Private Sub Command1_Click()

2: Adodc1.Recordset.MoveNext

3: If Adodc1.Recordset.EOF Then

4: Command1.Enabled = False

5: Command2.Enabled = False

6: End If

7: Command3.Enabled = True

8: Command4.Enabled = True

9: End Sub

10:

11: Private Sub Command2_Click()

12: Adodc1.Recordset.MoveLast

13: If Adodc1.Recordset.EOF Then

14: Command1.Enabled = False

15: Command2.Enabled = False

16: End If

17: Command3.Enabled = True

18: Command4.Enabled = True

19: End Sub

20:

21: Private Sub Command3_Click()

22: Adodc1.Recordset.MovePrevious

23: If Adodc1.Recordset.BOF Then

24: Command3.Enabled = False

25: Command4.Enabled = False

26: End If

27: Command1.Enabled = True

28: Command2.Enabled = True

29: End Sub

30:

31: Private Sub Command4_Click()

32: Adodc1.Recordset.MoveFirst

33: If Adodc1.Recordset.BOF Then

34: Command3.Enabled = False

35: Command4.Enabled = False

36: End If

37: Command1.Enabled = True

38: Command2.Enabled = True

39: End Sub

Рассмотрим две из этих процедур. В процедуре Command1_Click после выполнения метода MoveNext проверяется значение свойства EOF (в строке 3). Если оно равно константе True, значит, достигнут конец набора и пора заблокировать кнопки >; и >>;. В любом случае при перемещении «вниз» по записям кнопки < и << следует разблокировать (строки 7–8).

В процедуре Command3_Click после выполнения метода MovePrevious проверяется значение свойства BOF (в строке 23). Если оно равно константе True, значит, достигнуто начало набора и пора заблокировать кнопки <; и <<;. В любом случае при перемещении «вверх» по записям кнопки > и >> следует разблокировать (строки 27–28).

На рис. 16.54 рассматриваемая форма показана (в режиме выполнения) в тот момент, когда кнопки > и >> заблокированы.

Рис. 16.54

Попытка перейти к следующей записи после последней теперь невозможна: кнопки > и >> заблокированы

Код для добавления и удаления записей с использованием элемента ADO Data представлен в листинге 16.4.

Листинг 16.4 Код для добавления и удаления записей

Private Sub Command5_Click()

Adodc1.Recordset.AddNew

End Sub

 

Private Sub Command6_Click()

Adodc1.Recordset.Delete

End Sub







Дата добавления: 2015-09-04; просмотров: 539. Нарушение авторских прав; Мы поможем в написании вашей работы!




Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

ТЕРМОДИНАМИКА БИОЛОГИЧЕСКИХ СИСТЕМ. 1. Особенности термодинамического метода изучения биологических систем. Основные понятия термодинамики. Термодинамикой называется раздел физики...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия