Умение обращаться
с файлами данных - чуть ли не одна из самых важных ступений в обучении
программированию на Visual Basic! Здесь я постараюсь выложить только
самые основные приёмы работы с объектом Data.
Прежде чем начать
использовать базу данных её нужно сначала создать ;)!
1.Создайте стандартный
проект. 2.Кликните на ToolBox'e на кнопку Data и натяните на форму
так, чтобы полоска была не очень широкой и в самом низу формы. 3.Теперь создайте на форме
четыре кнопки и назовите их (по порядку создания): cmdAdd,
cmdDelete, cmdUpdate, cmdExit. Свойствам Caption
дайте эти же имена, только без "cmd". 4.Создайте на форме три
текстовых поля одинаковой длины. 5.Теперь надо связать объект Data с какой-нибудь
базой данных. С какой? С той которая есть у всех владелцев VBasic'a -
biblio.mdb! Активируйте объект Data и в свойствах, в DatabaseName
выберите этот файл. Теперь там же, но в поле RecordSource надо выбрать раздел
"Authors". Этим мы выберем только нужную часть базы данных.
6.Выделите первое
текстовое поле и в свойствах, в DataSource выберите единственную в
списке, созданную нами базу данных Data1, т.е. тем самым мы связываем это
текстовое поле с объектом Data1. А в поле свойств DataField
выберите "Au_ID". Теперь задача этого поля отображать идентификационный
номер каждого автора! То же самое проделайте со следующими двумя другими полями,
но в DataField вместо "Au_ID" выберите "Author" и "Year
Born".
Поздравляю! Если Вы ещё этого никогда не делали, то знайте - Вы написали первую в
своей жизни простенькую программку для отображения содержания базы данных!!! А
теперь научимся редактировать её. Итак, главное редактирование - это занесение
записей и удаление их.
7.Щёлкните два раза на
кнопку Add и введите:
CODE NOW!
Private Sub cmdAdd_Click()
Data1.Recordset.AddNew 'Все поля, которые могут быть отредактированы будут
очищены 'и подготовлены, поле Year Born будет установленно на
0,
'т.к. оно должно иметь какое-то значение 'поле Au_ID не
будет очищено вообще, а изменено на самую 'последнюю
позицию End
Sub
8.Следующая кнопка
сохраняет внесённые изменения в базе данных. Сделайте двойной клик по кнопке
Update и введите:
CODE NOW!
Private Sub cmdUpdate_Click()
'сохраняем ... Data1.UpdateRecord 'без
следующей строки после сохраниения в полях
'автоматически появились бы самые первые записи. 'поэтому
закладке присваеваем идентификатор последней 'изменённой
записи и в полях остануться ваши записи
Data1.Recordset.Bookmark = Data1.Recordset.LastModified End Sub
9.Теперь самое лёгкое -
удаление записей!!! Ведь правильно говорят - "Ломать - не строить!" :-))).
Делаем двойной щелчок по кнопке Delete и вводим:
CODE NOW!
Private Sub
cmdDelete_Click() 'чтобы выполнить последовательность инструкций
над
'одиночным объектом Data1, не перечисляя его каждый 'раз, используем
инструкцию With
With
Data1.Recordset .Delete .MoveNext If .EOF Then
.MoveLast End
With End
Sub
10.И теперь для кнопки
Exit просто введите:
CODE NOW!
Private Sub
cmdExit_Click() End End
Sub
Всё! А тепeрь Вы
создали почти настоящую программу с базой данных!!!
10.Запустите проект.
Нажмите на правую кнопку >. Содержание полей сменилось! Теперь нажмите
на правую кнопку >|. В полях появились самые последние записи! То же
самое будет происходить при нажатии на левые кнопки |< и <.
Но как Вы, наверное, заметили поле, содержащие год рождения, всегда
пустое! 11.Теперь нажмите кнопку "Add". 12.Первое поле НЕ испраляйте, во
второе ввидите, например, ваше имя, а в третье год рождения. 13.Теперь сохраните эту запись,
нажав кнопку "Update". 14.Знайте, ваша запись теперь сохранена на самом последнем месте! Можете
снова "прогуляться" по записям и вернутся наконец с помощью правой кнопки
>|. Ваша запись на месте. 15.Теперь нажмите на кнопку Delete... запись исчезла! НО! В
этом случае мы НЕ можем удалять записи сделанные не нами.
Ну, вот и готово! А
теперь я расскажу немного о создании некотрых удобств с работой с базой данных.
Например, представим себе, что Вы, просматривая нашу базу данных, заметили имя
автора где-то в середине и через некоторое время должны вернуться к этой
записи... Не пролистывать же нам снова окло тысячи имён!!! Для этого можно
создавать так называеимые закладки!
16.создайте на форме
ещё две кнопки с именами cmdMBM и cmdSMB со следующими надписями: Make the
Bookmark и Show the Bookmark. 17.Теперь в разделе формы General Declarations
объявите переменную, которая будет содержать идентификатор актуальной
записи:
CODE NOW!
'переменная должна быть
объявлена, как Variant поскольку 'значения закладки могут быть как числовые, так и
строковые Dim
BM As
Variant
18.Теперь делаем
двойной щелчок по кнопке cmdMBM и вводим:
CODE NOW!
Private Sub cmdMBM_Click() 'получаем
идентификатор актуальной записи BM = Data1.Recordset.Bookmark
End Sub
19.Теперь делаем
двойной щелчок по кнопке cmdSBM и вводим:
CODE NOW!
Private Sub
cmdSBM_Click() 'присваеваем закладке идентификатор нужной
записи Data1.Recordset.Bookmark = BM End Sub
20.Снова запустите
проект и прощёлкайте несколько записей. 21.Нажмите кнопку "Make the
Bookmark". Так, теперь пролистайте ещё дальше или вернитесь, вобщем уйдите
от этой записи. 22.Щёлкните на кнопку "Show the Bookmark".
В полях появились
записи, на которые Вы и поставили закладку!
А теперь я расскажу
немного о поисках записей в базе данных. Представьте себе, что Вам нужно найти
конкретное имя автора из тысяч других... WOW!!! :-)) Представили? Ну, так вот
листать - вроде совсем не интересно... Нужно воспользовать одним из способов
нахождения : FindFirst, FindLast, FindNext или FindPrevious. В следующей таблице
представлены ихзначения:
Метод
Пояснение
FindFirst
Ищет первую запись в
БД
FindLast
Ищет последнюю запись в
БД
FindNext
Ищет каждую следующую запись в
БД
FindPrevious
Ищет предыдущую запись в
БД
23.Создайте кнопку cmdFind c надписью
"Find" и впишите:
CODE NOW!
Private Sub cmdFind_Click() 'у
пользователя запрашивается имя автора а потом происходит 'поиск его в
БД
Data1.Recordset.FindFirst "Author = '" _ &
Trim(InputBox("Введите имя автора")) & "'" 'если запись
не найдена появляется следующая надпись: If Data1.Recordset.NoMatch Then MsgBox "Имя не найдено" End Sub
24.Теперь запустите проект. Выищите
какое-нибудь имя из БД и нажмите кнопку Find. 25.Введите имя и нажмите ОК.
Имя появилось! Чтобы искалось имя с
конца БД слово FindFirst надо поменять на FindLast. А если Вы хотите проверить
БД на наличие одного имени несколько раз надо применять слово FindNext и каждый
раз вызывать поиск!
Комментарии
отсутствуют
Добавление комментария
:: Последние обновления ::
04.09.2011 Долгожданный релиз VB Decompiler. Масса улучшений декомпиляции Native Code. Значительно расширенна и обновлена справочная система на русском и английском языках.
20.12.2010 DotFix Software поздравляет наших клиентов и посетителей сайта с наступающим Новым Годом и рождеством! Желаем приятно провести праздники и успехов в новом году!
28.11.2010 Выпущена новая версия защиты DotFix NiceProtect. Основные изменения коснулись обфускатора Delphi программ. Теперь имеется полная поддержка Tab и Page контролов на формах, что обеспечивает максимальную совместимость обфускации с Delphi XE программами.
21.10.2010 Обновлен декомпилятор Visual Basic программ до версии 8.1. Декомпиляция P-Code программ становится все более идеальной, также проделана большая работа по улучшению анализа Native Code и .NET приложений.
16.09.2009 Полностью обновлен движок сайта! Теперь все ссылки имеют читаемый понятный вид, разного рода глюки на страницах убраны. И теперь сайт полноценно работает на второй версии нашего движка.