![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 7. Разработка базы данныхСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Практическая работа № 7.1
Для создания и работы с базой данных необходимо использование специальных средств, имеющихся в Visual Basic 6.0 и называемых Data Manager. Эти средства создают объект Data, а также другие объекты, ассоциируемые с базой данных, для работы с ней. Но для простых случаев использование этих средств может оказаться более громоздким, чем создание базы данных с помощью структурного типа данных или массива. Для создания структуры базы данных в простой программе можно описать некоторый структурный тип, который будет иметь все необходимые поля таблицы базы данных. Затем должен быть описан одномерный массив этого типа. А также создана заготовка базы данных и другие объекты для работы с ней, которые могут быть выполнены с помощью общих средств языка Visual Basic 6.0 (операторов присваивания, объектов текстового поля и др.). Т.к. база данных должна быть доступна для многих событийных процедур, разных форм, в т.ч. и для главной формы, то описание структуры, типа и массива этого типа необходимо поместить в раздел general declarations. Это стандартный модуль файла с расширением *.bas, который добавляется к проекту командой Add Module из меню Project. 2. Открыть новый проект. Внешний вид главной формы показан на рис. 71. Задать свойство name формы – glav. Установить необходимые значения основных свойств формы по образцу. Создать на форме операционное меню приложения согласно рис. 71. (См. пр. р. № 5.1) Свойства name выпадающих меню указаны на рис. 71 в рамках меню. Установить на форме 7 меток и 1 список. Свойства name указаны на рисунке рядом с объектами.
Табл. 3
Записать в раздел general declarations модуля basa приложения «УЧЕТ КАДРОВ»: Type kadrrec famnum As String*10 dolnum As String*15 oklnum As String*10 End Type Затем описать в этом же разделе модуля массив базы данных: Public basa(1 To 10) As kadrrec ‘ база данных не более 10 записей 4. Для работы с базой данных потребуются различные текущие признаки, которые будут характеризовать текущее состояние базы данных. Эти признаки обычно присваивают глобальным целым переменным и описывают там же, где и структура, тип и массив базы данных. Добавить в модуль описания этих переменных: Public currec As Integer ‘ текущая запись Public recquant As Integer ‘ количество записей в базе 5. Список в главном окне приложения может показывать всю базу данных, но при этом может и не показывать все ее поля. Список необходимых для показа полей определяется программистом исходя из требований, предъявляемых к приложению. Для того, чтобы в списке в главном окне программы данные полей располагались в виде «правильных» столбцов, необходимо установить для этого списка непропорциональный шрифт, например: Courier или Courier New, в котором на каждый символ отводится одинаковое по ширине место. Открыть главную форму проекта. Установить для объекта список свойство Font – Courier или Courier New, размер шрифта следует подобрать самостоятельно исходя из размеров объекта список. 5. Открыть окно редактора кодов программы для команды меню файл и записать следующий программный код: Private Sub fm1_Click(Index As Integer) Select Case Index Case 1 glav.Enabled=False Sod.Show Case 2 glav.Enabled=False Zapys.Show Case 3 End End Select End Sub
7. Команда запись из меню файл проекта «УЧЕТ КАДРОВ» должна добавлять новую запись в конец базы данных, т.е. в очередной элемент массива, данные этой новой записи, которые вводятся в окне названой команды. Кроме этого, эта команда должна добавлять часть или все введенные данные к списку в главном окне приложения, который специально предназначен для просмотра базы. Имена текстовых полей в окне команды запись не должны (!) совпадать с именами полей базы данных, описанных оператором type.
Кнопки ЗАПИСАТЬ и ЗАКРЫТЬ выполняют почти одинаковые действия: кнопка ЗАПИСАТЬ – добавляет данные в базу данных, а кнопка ЗАКРЫТЬ – добавляет данные и закрывает окно. Таким образом, в событийных процедурах этих 2–х кнопок должен быть практически одинаковый текст. Для того, чтобы не дублировать этот текст в 2–х событийных процедурах, он оформляется в виде одной структурной единицы программы: процедуры addrecinput. При этом в указанных событийных процедурах для кнопок имеются лишь строки вызова этой общей процедуры. Общая процедура записывается в модуль проекта. Открыть окно редактора кодов для кнопок ЗАПИСАТЬ и ЗАКРЫТЬ и ввести следующий программный код: Private Sub zap_Click() nomer.Caption=recquant+1 Call addrecinput End Sub Private Sub zakr_Click() nomer.Caption=recquant+1 Call addrecinput Unload zapys glav.Enabled=True Glav.SetFocus End Sub 8. Открыть окно редактора кодов модуля basa и записать описание процедуры: Public Sub addrecinput() Dim strvar As String recquant=Val(glav.vsego.Caption)+1 If recquant<>11 Then zapys.nomer.Caption=recquant basa(recquant).famnum=zapys.fam.Text strvar=basa(recquant).famnum & "" basa(recquant).dolnum=zapys.dol.Text strvar=strvar+basa(recquant).dolnum & "" basa(recquant).oklnum=zapys.okl.Text strvar=strvar+basa(recquant).oklnum Glav.spisok.AddItem strvar zapys.fam.Text="" zapys.dol.Text="" zapys.okl.Text="" Zapys.fam.SetFocus glav.vsego.Caption=recquant Else MsgBox "база заполнена", 16, "нет места" Unload zapys glav.Enabled=True Glav.SetFocus Exit Sub End If End Sub 9. Вернуться в форму Запись. Записать программные коды для событий: загрузка формы и изменение состояния объекта fam (текстовое поле): Private Sub fam_Change() nomer.Caption=recquant+1 End Sub Private Sub Form_Load() recquant=Val(glav.vsego.Caption) End Sub 10. Вернуться в главную форму проекта. Команда удалить из меню правка должна удалять текущую запись базы данных. Для того, чтобы запись стала текущей, нужно выделить ее (щелкнуть по ней мышью) в списке в главном окне программы. При щелчке номер строки передается в свойство ListIndex списка. Команда удалить должна также удалять запись из базы данных, а все последующие записи после удаляемой переписывать на позицию выше. Будьте внимательны! Записи в базе данных нумеруются от 0 до 9, но пользователю на экране отображается нумерация от 1 до 10. Следует этот момент учитывать при реализации событийных процедур для команд запись и удалить, а также при написании других кодов программы, где предполагается вывод содержимого базы данных на экран. Открыть окно редактора кодов для команды операционного меню правка и записать следующий программный код: Private Sub pm1_Click(Index As Integer) Dim i As Integer Select Case Index Case 1 glav.Enabled=False Izmen.Show Case 2 ‘ процедура команды «удалить» If recquant=0 Then MsgBox "база пуста", 16, "удаление невозможно" Exit Sub End If glav.Enabled=True Glav.SetFocus If recquant<>0 Then For i=currec+1 To recquant+1 basa.basa(i-1)=basa.basa(i) basa.basa(i).famnum=" " basa.basa(i).dolnum=" " basa.basa(i).oklnum=" " Next i Spisok.RemoveItem currec-1 recquant=Val(vsego.Caption)-1 vsego.Caption=recquant currec.Caption=" " End If End Select End Sub Записать программные коды для событий: загрузка формы и щелчок по строке в объекте spisok (ListBox)
Private Sub Form_Load() recquant=Val(vsego.Caption) End Sub Private Sub spisok_Click() currec=spisok.ListIndex+1 currec.Caption=currec End Sub 11. Добавить к проекту форму. Задать свойство name формы – izmen. Внешний вид формы показан на рис. 74. Оформить форму по образцу, установить необходимые значения свойств объектов формы согласно рис. 74. Команда изменить показывает окно с теми данными базы, которые надо изменить. Таким образом, данные должны быть показаны в текстовых полях. После изменения новые данные должны попасть на то же место в базе данных и на ту же строку в список в главном окне приложения, но не в конец(!) списка и/или базы данных. Открыть окно редактора и записать следующие программные коды для объектов формы izmen: Private Sub pred_Click() Dim a As Integer a=recquant-1 If a<=0 Then MsgBox "вы просмотрели базу до начала", 48, "СТОП" Exit Sub End If recquant=recquant-1 izmen.fam.Text=basa.basa(recquant).famnum izmen.dol.Text=basa.basa(recquant).dolnum izmen.okl.Text=basa.basa(recquant).oklnum izmen.nomer.Caption=recquant End Sub Private Sub sled_Click() Dim a As Integer a=recquant+1 If a>=11 Then MsgBox "вы просмотрели базу до конца", 48, "СТОП" Exit Sub End If recquant=recquant+1 izmen.fam.Text=basa.basa(recquant).famnum izmen.dol.Text=basa.basa(recquant).dolnum izmen.okl.Text=basa.basa(recquant).oklnum izmen.nomer.Caption=recquant End Sub Private Sub zakr_Click() Unload izmen glav.Enabled=True Glav.SetFocus End Sub 12. Поскольку действия, выполняемые кнопкой ОК практически аналогичны действиям, выполняемым кнопкой записать в окне запись, то добавим в модуль проекта еще одну процедуру izmrecinput: Public Sub izmrecinput () Dim strvar As String recquant=izmen.nomer.Caption
|
|||||||||||||||||||||||
Последнее изменение этой страницы: 2016-12-10; просмотров: 424; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.100.186 (0.012 с.) |