Студопедия — Работа с формами VBA и сложными типами данных»
Студопедия Главная Случайная страница Обратная связь

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

Работа с формами VBA и сложными типами данных»






Цель: С помощью программных средств VBA создать мини-СУБД, используя заданную вариантом структуру данных.

Постановка задачи: Программа должна уметь выполнять следующие функции:

§ при загрузке показывать заставку (сведения о программе, разработчике);

§ работать в интерактивном режиме с простым и дружественным интерфейсом;

§ вводить новые данные в СУБД;

§ осуществлять вывод данных по избранным объектам на экран в заданном порядке;

§ изменять избранные элементы выбранного объекта;

§ сохранять изменения данных в дисковом файле при завершении работы;

§ производить чтение данных из дискового файла;

§ при необходимости завершать работу без сохранения измененных данных.

 

Для следующего типа данных:

 

 

Для создания формы в VBA достаточно открыть редактор VBA и из выпадающего меню «Вставки» выбрать «UserForm», что добавить форму в существующий проект и позволит работать с формой режиме «WYSIWYG».

 

Добавление формы.

Работа с формой в режиме «WYSIWYG».

 

Программа добавления / изменения записей в БД:

 

'Записываем значения соотв. текстовых полей в соотв. ячейки листа документа

Private Sub NewAdd_Button_accept_Click()

 

Dim i As Integer

For i = 1 To 9 'в соотв. с кол/вом столбцов строки

Cells(Chosen_Cell, i) = frmNewAdd.Controls("TextBox" & i).Value 'позволяет передать значение поля в соотв. с его типом

Next i

 

Call countCurRows 'получаем текущее кол/во записей в БД

ChoiceTheCell.AddItem (countRows + 6) 'добавляем новую строку в список для добавления записи

 

End Sub

 

 

Блок схема программы.

 

Программа поиска данных в БД:

 

'Обработчик кнопки "Искать" на форме поиска

Private Sub FindAccept_Click()

 

Dim i As Integer 'итерационная пременная

Dim iValue As String 'храним ввод с экрана для "поиска по значению"

 

If FindMethod1.Value = True Then 'Если пользователь выбрал первый метод поиска

For i = 6 To countRows + 5

If i < FindFrom Then

rows(i).Hidden = True 'Скрытие ячеек исключенных при выборочном просмотре

ElseIf i > FindTo Then

rows(i).Hidden = True

End If

Next i

End If

 

If FindMethod2.Value = True Then 'Если пользователь выбрал второй метод

FindArray = Split(CustomFind.text) 'преобразуем строку введенную пользователем в массив

For i = 6 To countRows + 5

If Not "~" & Join(FindArray, "~") & "~" Like "*~" & i & "~*" Then

rows(i).Hidden = True 'Скрытие ячеек исключенных при выборочном просмотре

End If

Next i

End If

 

If FindMethod3.Value = True Then 'Если пользователь выбрал третий метод

iValue = iFind.text 'получаем введеное значение

 

'выполняем поиск по введенному значению

For i = 6 To countRows + 5

If Not Cells(i, iColumns).Value Like iValue Then

rows(i).Hidden = True

End If

Next i

End If

 

End Sub

 

 

Блок схема программы.

 

 

Программа сохранения БД в отдельный файл на диске:

 

'Сохранение записей в файл

Private Sub Workbook_BeforeClose(Cancel As Boolean)

 

Dim c As Range, r As Range

Dim output, buf As String 'используем строку в кач/ве символьного массива

 

Call countCurRows 'получаем текущее кол/во записей

buf = "A6:I" & (countRows + 5) 'устанавливаем обьем записываемых данных

 

'цикл заполнения строки

For Each r In Range(buf).rows

For Each c In r.Cells

output = output & c.Value & "," 'формируем текущую строку из значений ячеек

Next c

output = output & vbNewLine 'записываем текущую строку в массив

Next r

 

Open ThisWorkbook.Path & "\backupDB.txt" For Output As #1 'создаем файл

Print #1, output 'записываем в файл

Close 'закрываем файл

 

ThisWorkbook.Close SaveChanges:=True

 

End Sub

 

 

 

Блок схема программы.

 

Программа чтения данных из файла в БД:

 

'Читаем данные из файла

Sub ReadFromDestFile()

 

Dim buffer, str As String 'переменные для чтения из файла

Dim CellsValueArray As Variant 'массив считаных данных

 

Open ThisWorkbook.Path & "\backupDB.txt" For Input As #1 'указываем файл для чтения

 

'читаем данные пока не достигнем конца файла

Do Until EOF(1)

Line Input #1, buffer

str = str & buffer

Loop

Close #1

 

CellsValueArray = Split(str, ",") 'преобразуем строку считанных данных в массив

 

Dim i, x, y As Integer

x = 6 'начальная строка для записи в открытую книгу

y = 1 'начальный столбец записи

For i = 0 To UBound(CellsValueArray) 'записываем данные в книгу пока не выведем последний элемент массива

If y > 9 Then 'при записи в 9й столбец строки преходим в начало следующей

y = 1

x = x + 1

End If

Cells(x, y) = CellsValueArray(i) 'запись текущего значения элемента массива в ячейку

y = y + 1 'переключаем столбцы

Next i

End Sub

 

 

Блок схема программы.







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



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

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

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

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

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