DataLife Engine > Visual Basic > Основы работы с базами данных
Основы работы с базами данных26 сентября 2007. Разместил: podpole |
Умение обращаться с файлами данных - чуть ли не одна из самых важных ступений в обучении программированию на 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 и введите: Private Sub cmdAdd_Click() Data1.Recordset.AddNew 'Все поля, которые могут быть отредактированы будут очищены 'и подготовлены, поле Year Born будет установленно на 0, 'т.к. оно должно иметь какое-то значение 'поле Au_ID не будет очищено вообще, а изменено на самую 'последнюю позицию End Sub 8. Следующая кнопка сохраняет внесённые изменения в базе данных. Сделайте двойной клик по кнопке Update и введите: Private Sub cmdUpdate_Click() 'сохраняем ... Data1.UpdateRecord 'без следующей строки после сохраниения в полях 'автоматически появились бы самые первые записи. 'поэтому закладке присваеваем идентификатор последней 'изменённой записи и в полях остануться ваши записи Data1.Recordset.Bookmark = Data1.Recordset.LastModified End Sub 9. Теперь самое лёгкое - удаление записей!!! Ведь правильно говорят - "Ломать - не строить!" :-))). Делаем двойной щелчок по кнопке Delete и вводим: Private Sub cmdDelete_Click() 'чтобы выполнить последовательность инструкций над 'одиночным объектом Data1, не перечисляя его каждый 'раз, используем инструкцию With With Data1.Recordset .Delete .MoveNext If .EOF Then .MoveLast End With End Sub 10. И теперь для кнопки Exit просто введите: Private Sub cmdExit_Click() End End Sub Всё! А тепeрь Вы создали почти настоящую программу с базой данных!!! 10. Запустите проект. Нажмите на правую кнопку >. Содержание полей сменилось! Теперь нажмите на правую кнопку >|. В полях появились самые последние записи! То же самое будет происходить при нажатии на левые кнопки |< и |. Ваша запись на месте. 15. Теперь нажмите на кнопку Delete... запись исчезла! НО! В этом случае мы НЕ можем удалять записи сделанные не нами. Ну, вот и готово! А теперь я расскажу немного о создании некотрых удобств с работой с базой данных. Например, представим себе, что Вы, просматривая нашу базу данных, заметили имя автора где-то в середине и через некоторое время должны вернуться к этой записи... Не пролистывать же нам снова окло тысячи имён!!! Для этого можно создавать так называеимые закладки! 16. создайте на форме ещё две кнопки с именами cmdMBM и cmdSMB со следующими надписями: Make the Bookmark и Show the Bookmark. 17. Теперь в разделе формы General Declarations объявите переменную, которая будет содержать идентификатор актуальной записи: 'переменная должна быть объявлена, как Variant поскольку 'значения закладки могут быть как числовые, так и строковые Dim BM As Variant[/auote] 18. Теперь делаем двойной щелчок по кнопке cmdMBM и вводим: Private Sub cmdMBM_Click() 'получаем идентификатор актуальной записи BM = Data1.Recordset.Bookmark End Sub 19. Теперь делаем двойной щелчок по кнопке cmdSBM и вводим: 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" и впишите: Private Sub cmdFind_Click() 'у пользователя запрашивается имя автора а потом происходит 'поиск его в БД Data1.Recordset.FindFirst "Author = '" _ & Trim(InputBox("Введите имя автора")) & "'" 'если запись не найдена появляется следующая надпись: If Data1.Recordset.NoMatch Then MsgBox "Имя не найдено" End Sub 24. Теперь запустите проект. Выищите какое-нибудь имя из БД и нажмите кнопку Find. 25. Введите имя и нажмите ОК. Имя появилось! Чтобы искалось имя с конца БД слово FindFirst надо поменять на FindLast. А если Вы хотите проверить БД на наличие одного имени несколько раз надо применять слово FindNext и каждый раз вызывать поиск! |