Студопедия
rus | ua | other

Home Random lecture






А. ADO: вывод данных в поле списка; добавление/удаление записей в базу данных из проекта


Date: 2015-10-07; view: 475.


Практическая работа 30. ADO

1. Создать на форме 5 полей списка ( lstName, lstVorname, lstVatersn, lstGebdat, lstNummer ),

2. создать ссылку на библиотеку: Проект Информация () установить флажок Microsoft ActiveX Data Object 2.0 сделать щелчок на кнопке ОК,

3.


Рис. 4.5.MSFlexGrid

 

 

4. создать на форме меню (): Инструменты Редактор меню, данные OK,

 

Таблица 4.9. Данные, используемые при создании меню
Имя Название
mnuDob &Добавить
mnuUd &Удалить
mnuExit &Выход

5. ввести код, данный ниже, пояснения даны под комментариями,

(General) (Declarations) (формы)' описание переменных как объектов подключения и ' набора записейPrivate cn As adodb.ConnectionPrivate rs As adodb.Recordset


Рис. 4.6.Вид формы Form1

 

Private Sub Form_Activate()' переменная для хранения строки подключения к базе данныхDim cmd As String' переменная для хранения SQL-запросаsql As StringDim cn As adodb.Connection Dim rs As adodb.Recordset' очистить спискиlstName.ClearlstVorname.ClearlstVatersn.ClearlstGebdat.ClearlstNummer.Clear ' создать строку подключения. Подключение проводится с помощью' провайдера OLEDB (иначе в строке нужно указать другого провайдера).' Следующий параметр (см. строку программы) определяет имя базы данных.' Строка кода выделяется в отдельную функцию, что позволяет реализовать работу с ' различными источниками данных. Такой функции можно передать параметр.cmd = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security _Info=False;Data Source=A:\db1.mdb"' установить соединение с базой данныхSet cn = New adodb.Connection cn.ConnectionString = cmdcn.Open' создать запросsql = "select * from Таble1" ' открыть набор записей. Открывается объект Recordset, ему нужно передать' SQL-запрос (sql = "select * from Table1"), Set rs = New..... Далее' набор открывается командой rs.Open sql, cn,adOpenDynamic, adLOckOPtimistic' параметр sgl хранит SQL-запрос, второй параметр означает, что для 'подключения к базе нужно использовать объект cn, следующий параметр' определяет тип курсора (табл. 4.10)
Таблица 4.10. Типы курсоров
Тип курсора Описание
ad OpenForwardOnly Лишь для перебора записей в одном направлении
adOpenKeyset Для большого набора записей
adOpenDynamic Позволяет отслеживать изменения, вносимые другими пользователями в набор записей
adOpenStatic Для небольших наборов

Последний параметр определяет тип доступа к набору записей ()

Таблица 4.11. Тип блокировки
Тип блокировки Описание
ad LockReadOnly Использовать, если не нужно добавлять, обновлять или удалять записи
adLockPessimistic Запись блокируется в начале редактирования до его завершения или перехода к следующей записи
adLockOptimistic Включается при вызове метода Update для записи. Запись временно блокируется (на время сохранения изменений в базе)
Set rs = New adodb.Recordset rs.Open sql, cn, adOpenDynamic, adLockOptimisticDo While Not rs.EOF' включить данные в каждый списокlstName.AddItem rs("Name")lstVorname.AddItem rs("Vorname")lstVatersn.AddItem rs("Vatersn")lstGebdat.AddItem rs("Gebdat")lstNummer.AddItem rs ("Nummer")rs.MoveNext ' перейти к следующей записиLoop' закрыть набор записей и очистить объектную переменнуюrs.CloseSet rs = Nothing' закрыть подключение и уничтожить объект подключенияcn.Close: Set cn = NothingEnd Sub Private Sub mnuDob_Click()' показать форму "Добавление"frmDob.ShowEnd Sub Private Sub mnuExit_Click()Dim v As Integer ' код возврата' проверка, хочет ли пользователь закончить ' выполнение проектаv = MsgBox("Exit ?", vbYesNo + vbQuestion, " Exit ?")' число 6 соответствует нажатой кнопке YesIf v = 6 Then End End Sub Private Sub mnuUd_Click()' показать форму "Удаление"frmUd.ShowEnd Sub

6. добавить новую форму для добавления записей в базу данных, на форме создать 6 элементов управления Label (значения свойств Caption даны на ), 5 текстовых полей (txtName, txtVorname, txtVatersn, txtGebdat, txtNummer) и 2 элемента управления CommandButton.

7.


Рис. 4.7.Вид формы Добавление записи

 

8. ввести код, данный ниже:

(General) (Declarations)Private cn As adodb.Connection Private rs As adodb.Recordset Private Sub Command1_Сlick()Dim rc As String 'код возвратаDim cmd As String, sql As StringDim cn As adodb.Connection, rs As adodb.Recordset' создать строку подключенияcmd = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security _Info=False;Data Source=A:\db1.mdb"' установить соединение с базой данныхSet cn = New adodb.Connectioncn.ConnectionString = cmdcn.Opensql = "select * from Таble1" ' создать запросSet rs = New adodb.Recordset ' открыть набор записейrs.Open sql, cn, adOpenDynamic, adLockOptimistic' проверка, действительно ли пользователь' хочет добавить данныеrc = MsgBox("Add ?", vbYesNo + vbQuestion, "Add !")If rc = 6 Then' процесс добавления данных rs.AddNew: rs("Name") = txtNamers("Vorname") = txtVornamers("Vatersn") = txtVatersnrs("Gebdat") = txtGebdatrs("Nummer") = txtNummerrs.UpdateEnd Ifrs.Close: Set rs = Nothingcn.CloseSet cn = Nothing' вывод сообщения о добавлении записи в БДMsgBox "Введенная вами запись добавлена в базу данных!",_ vbOKOnly, "Успешное добавление!"End Sub Private Sub Command2_Click()' перейти на главную формуUnload Me: Form1.ShowEnd Sub

9. добавить новую форму для работ по удалению записей из базы данных, создать на форме элементы управления Label, TextВox (Name= txtQuery), 2 элемента управления CommandButton,

 


Рис. 4.8.Вид формы Form3. Удаление записи

 

10. ввести код:

Private cn As adodb.ConnectionPrivate rs As adodb.Recordset Private Sub Command1_Сlick()Dim rc As Integer 'код возвратаDim cmd As String, sql As String, cn As adodb.ConnectionDim rs As adodb.Recordset' создание SQL-запроса sql = "SELECT Таble1.Nummer From Таble1 WHERE_(((Таble1.Nummer) = "_sql = sql & """" & txtQuery.Text & """" &"));"' создать строку подключенияcmd = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security _Info=False;Data Source=A:\db1.mdb"' установить соединение с базой данныхSet cn = New adodb.Connection cn.ConnectionString = cmdcn.Open ' открыть набор записейSet rs = New adodb.Recordset rs.Open sql, cn, adOpenDynamic, adLockOptimistic' проверка, действительно ли пользователь хочет ' удалить данныеrc = MsgBox("Yes or No ?", vbYesNo + vbQuestion, "Del)If rc = 6 Thenrs.Delete ' процесс удаленияMsgBox "Запись из базы данных удалена!", _vbInformation + vbOKOnly, "Удаление выполнено!"End Ifrs.Close:Set rs = Nothingcn.CloseSet cn = NothingEnd Sub Private Sub Command2_Click()Unload Me: Form1.ShowEnd Sub

11. cтартовать проект, при этом выводятся данные в поля ListBox, ввести записи в базу данных из проекта, удалить записи.


<== previous lecture | next lecture ==>
События, предусмотренные в модели ADO | B. Элемент управления ADO Data: вывод данных, добавление записей в таблицу из проекта, выполнение SQL-запроса, вывод результатов
lektsiopedia.org - 2013 год. | Page generation: 0.081 s.