82
Государственное образовательное учреждение высшего профессионального образования «Московский государственный технический университет им. Н.Э. Баумана»
Калужский филиал
Факультет"Фундаментальных Наук"
Кафедра "Программного обеспечения ЭВМ, информационных технологий и прикладной математики" (ФН1-КФ)
РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОЙ РАБОТЕ
На тему «Создание базы данных»
По курсу «ИНФОРМАТИКА»
Калуга
1.1 Постановка задачи
1. Используя средства языка программирования создать файл, элементами которого являются записи, определенные таблицей вашего варианта.
2. Создать файл из 10 - 15 записей. Предусмотреть возможность редактирования файловой информации (добавление, удаление, замену всей записи и одного из полей записи).
3. Создать запросы, согласно вашему варианту.
4. Разработать интерфейс пользователя для реализации выше перечисленных функций.
5. Создать файл справочной службы и подключить его к интерфейсу.
6. Подготовить расчетно-пояснительную записку (см. методические указания).
7. Основные алгоритмы работы программы вынести на лист А1.
8. Создать заставку-презентацию данного программного продукта с использованием графических средств VB.
Запросы:
сколько лабораторных работ сдано студентом, фамилия которого указанна в запросе;
сколько лабораторных работ было сдано студентами выбранной группы за прошедший месяц;
получить список студентов (с указанием студента, названием курса, названием лабораторной работы, оценки), сдавших в один день более двух работ;
получить список студентов (с указанием студента, группы, названием лабораторной работы), сдавших лабораторные работы по указанному курсу с оценкой хорошо и отлично.
Добавляемый столбец «Дата выдачи лабораторной работы».
Дополнительные запросы:
получить список (с указанием студента, группы, названием курса, названием лабораторной работы) не сдавших работы, выданные в течение двух месяцев;
получить сведения о студенте и лабораторной работе, сдаваемой самое длительное время.
Диаграммы:
Построить круговую диаграмму, иллюстрирующую:
какую часть от всех сданных лабораторных работ, составляют работы по выбранному курсу?
Сведения о количестве сданных лабораторных работ по каждому курсу.
Изобразить в виде графика:
Данные о количестве студентов каждой группы, имеющих задолжность по сдаче лабораторных работ больше одного месяца;
Изобразить в виде столбчатой диаграммы:
- Данные о количестве студентов разных групп, получивших выбранную в запросе оценку.
1.2 Общие сведения
Visual Basic - достаточно мощный язык: с его помощью, вероятно, можно решить любую задачу программирования, какую только можно вообразить.Visual Basic- самая быстрая и самая легкая система создания приложений для Microsoft Windows. Являетесь ли вы опытным профессионалом или только начинающим программистом для Windows, Visual Basic предоставит полный набор инструментов для легкого и быстрого написания приложений.
Последняя версия языка Visual Basic 6 представляет собой интегрированную среду разработки -- IDE (Integrated Development Environment). Она включает в себя набор инструментов, облегчающих и значительно ускоряющих процесс разработки готового приложения.
IDE Visual Basic предоставляет удобный интерфейс для разработки программ. Она не только форматирует текст программы и исправляет некоторые ошибки, но также позволяет быстро получить информацию об используемых объектах и функциях - достаточно лишь ввести их имена. Существует также множество возможностей для отладки программы (диалоговые окна Watch, Immediate, пошаговое выполнение). Можно даже изменять код в процессе работы программы.
По сравнению с другими языками, Visual Basic намного легче для изучения. Наличие типа Variant позволяет создавать универсальные функции и процедуры, обрабатывающие разнотипные данные. Также очень удобно работать с динамическими строками и массивами. Программист может создавать собственные типы данных на основе существующих и объекты. Но возможности объектно-ориентированного программирования в Visual Basic ограничены по сравнению с C++, Delphi и некоторыми другими языками, что, несомненно, является одним из его недостатков.
Многие независимые разработчики, как, например известная своими программами в области бухгалтерского учета фирма “1С”, приобретают лицензии на использование языка Visual Basic в качестве внутреннего языка своих приложений. Поэтому в настоящее время Basic уже не считается учебным языком знание Visual Basic и его диалектов (VBA, VBScript) становится необходимостью для современного программиста любого уровня.
Простота и мощность языка Visual Basic 6 позволили сделать его встроенным языком для приложений Microsoft Office. Еще одна версия языка - VBScript - используется для написания скриптов и сценариев. Поэтому в настоящее время Basic уже не считается учебным языком -- знание Visual Basic и его диалектов (VBA, VBScript) становится необходимостью для современного программиста любого уровня.
1.3 Элементы языка
В данной курсовой работе использовались следующие элементы языка: переменные различных типов (Boolean, Integer, String, Long, Single), собственные типы данных, альтернативные операторы условия (одноальтернативные, двуальтернативные), операторы цикла (с предусловием, с постусловием, с параметром), процедуры и функции (встроенные и собственные).
Синтаксис операторов, процедур и функций:
1) Одноальтернативный оператор условия
If <условие> Then <оператор>
2) Двухальтернативный оператор условия
Однострочная форма:
If <условие> Then <оператор1> Else <оператор2>
Расширенная форма записи:
If <условие> Then
<операторы 1>
Else
<операторы 2>
End If
3) Цикл с параметром:
For <счётчик>=<начало> to <конец> [step <шаг>]
операторы
Next [<счётчик>]
4) Циклы с предусловием и постусловием:
1 вариант
Do [{while/until} <условие>]
операторы
Loop
2 вариант
Do
Операторы
Loop
[{while/until} <условие>]
5) процедуры, функции и модули
процедура:
[Private.][Public.] Sub <имя> ([список формальных параметров])
тело процедуры
End Sub
функция:
[Private.][Public.] Function <имя> ([список формальных параметров]) As<тип>
тело функции
End Function
Модуль:
В модуле описываются типы, переменные, процедуры и функции, которые могут быть доступны всем формам и другим модулям программы, а так же могут описываться процедуры и функции, которые используются только другими процедурами и функциями данного модуля.
1.4 Встроенные элементы управления
· Элемент управления Label (метка) создает на форме надпись, например название текстового поля.
· Элемент управления Picture Box используется как контейнер для других элементов, а также для вывода на экран изображений.
· Элемент управления Command Button (кнопка) вызывает событие Click при щелчке на нем левой кнопкой мыши. Они используются для выполнения каких-либо действий.
· Элемент управления CheckBox - создает ячейку, которая может быть помечена пользователем как имеющая значение истина или ложь. Этот элемент управления может иметь три состояния. Пользователь может установить неопределенное значение для объекта CheckBox: не ложь и не истина.
· Элемент управления Frame является контейнером и служит для объединения других элементов в группу. Это дает возможность управлять объектами как единым целым.
· Элемент управления Text Box (Текстовое поле) используется для отображения информации, вводимой пользователем во время выполнения, или присвоенной свойству Text элемента управления во время разработки или выполнения. Текстовое поле следует использовать для редактируемого текста, но его можно сделать и только читаемым (read-only), установив значение свойства Locked (Заблокирован) равным True. Текстовые поля также позволяют отображать несколько строк, переносить текст в размерах элемента управления и добавить базовое форматирование.
· Элемент управления Combo Box (раскрывающийся список) объединяет в себе список и текстовое поле. Пользователь может ввести данные в поле или выбрать их из списка. Combo Box занимает в форме меньше места, но в отличие от List Box, в нем нельзя выбрать несколько элементов сразу.
· Элемент управления Common Dialog (Общий диалог) предоставляет стандартный набор окон диалога для операций открытия и сохранения файлов, установки параметров принтера и выбора цветов и шрифтов.
· Элемент управления List Box (Список) отображает список, из которого пользователь может выбрать один или несколько элементов. Элементы управления List Box предоставляют пользователю список возможных вариантов выбора. По умолчанию варианты выбора отображаются вертикально в одном столбце, хотя можно задать и несколько столбцов отображения. Если число элементов в списке превышает число элементов, которые могут быть отображены в списке, на этом элементе управления автоматически появляются полосы прокрутки. Пользователь в дальнейшем может прокручивать список вверх-вниз, вправо-влево, а так же в обе стороны, если предусмотрены обе полосы прокрутки.
· Элемент управления Timer (Таймер) независимы от пользователя, и их можно использовать для программирования действий, которые должны выполняться периодически. Их типичное применение-определение времени выполнения некоторого действия.
· Элемент управления Tool Bar (Панель инструментов) используется для создания кнопок, обеспечивающих быстрый доступ к существующим пунктам меню, и для наглядности приложения.
· Элемент управления Calendar (Календарь) представляет собой календарь, с помощью которого можно выбирать дату. В его верхнем правом углу расположены раскрывающиеся списки, в которых можно выбрать год и месяц соответственно. В другой его части имеется возможность выбора числа и дня недели.
· Элемент управления Status Bar (Строка состояния) используется в приложении для информирования пользователя о текущем состоянии приложения.
· Элемент управления OptionButton представляет собой ячейку выбора. Из всех таких ячеек, размещенных на одном объекте, пользователь может выбрать только одну или не выбрать ни одной.
· Элемент WebBrowser используется для отображения web-страниц на форме. Для этого в данном проекте используется его метод navigate(<адрес файла>).
· Элемент управления Image. Прямоугольная область, в которую можно поместить изобажение. Так же может использоваться для хранения изображения внутри программы.
· Элемент управления ImageList используется как контейнер для изображений, которые потом могут применяться для оформления программы.
2.1 Общие сведения
Программный продукт представляет собой исполняемый файл MyDataBase.exe, созданный при компиляции проекта, написанного на языке Visual Basic 6.0 и файлы справки (web-страницы и изображения). Для систем, на которых не установлен пакет Visual Basic 6.0, может так же понадобиться библиотека MSVBVM60.DLL.
При создании программы использовалось следующее программное обеспечение:
1. Microsoft Visual Basic 6.0
2. Microsoft Word 2003
3. Графические редакторы MS Paint, Adobe Photoshop 7.0, Macromedia Dreamweaver 8.
2.2 Функциональное назначение
Программа представляет собой базу данных о студентах ВУЗа. Она позволяет добавлять, удалять и редактировать записи. Имеются средства для поиска и сортировки данных по любому полю, а также возможность поиска информации и построения диаграмм по текущим данным, содержащимся в базе данных.
2.3 Описание логической структуры программы
После запуска программы первой загружается форма frmStart (Приложение 2. с.61), так как она является объектом запуска. При ее загрузке запускается процедура Private Sub Form_Load() (Приложение 1. с.62), которая устанавливает начальное значение переменной х, используемой в таймере анимации, равным нулю. Далее происходит запуск заставки. Запускается процедура таймера: Private Sub tmrAni_Timer() (Приложение 1. с.33). Это таймер, управляющий анимацией. Он работает, используя переменную х. По значению переменной программа определяет какое изображение следует отобразить на экране. После завершения работы таймера, управление передается форме frmDatabase (главная форма программы. Приложение 2. с.62). При ее запуске, выполняется ее процедура Private Sub Form_Load() (Приложение 1. с.39)
При входе в базу данных выполняется процедура init из модуля modAbout (Приложение 1. с.58), которая используется в процедуре Form_Load главной формы программы. Она устанавливает начальные значения переменных, создает надписи с названиями полей и применяет дизайн форм программы. Форма загрузилась - база данных уже создана. Если в процессе работы потребуется создать новую базу данных, например, при помощи меню «Файл -> Создать (Ctrl+N)», то запускается процедура Create() (Приложение 1. с.33), которая запрашивает подтверждение создания базы, после чего очищает все поля таблицы и устанавливает занчение переменной OpenFile=””, что означает, что на данный момент нет активного файла, с которым производится работа. Его можно будет создать при сохранении базы, либо открыть.
Управление получит процедура Open_File() (Приложение 1. с.33). С помощью элемента ComonDialog будет создано окно открытия файла, в котором вам будет предложено выбрать файл расширения *.mdb (MyDataBase). Далее процедура из файла считывает информацию и размещает ее в listBox-элементах главной формы. OpenFile принимает значение, равное имени выбранного файла.
Управление получит процедура Save(intSave As Byte) (Приложение 1. с.34). Если переменная OpenFile пуста, то в процедуру будет передан параметр «1», обозначающий то, что необходимо сохранить базу в новый файл. С помощью элемента ComonDialog будет создано окно сохранения файла, в котором вам будет предложено ввести имя и выбрать путь для нового файла (можно без расширения, программа создаст его автоматически). Сразу же после выбора имени, информация считывается из listBox-элементов главной формы и помещается в указанный файл. Если же OpenFile не пуста, то старый файл будет удален, а на его место будет записан новый с тем же именем, но с новой информацией. В процедуру в этом случае передается «0».
При выборе меню «Файл -> Сохранить как (Ctrl+S)» в любом случае передается параметр «1».
Управление получит Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) (Приложение 1. с.39). События, описанные в этой процедуре, выполняются при попытке закрыть форму. Если параметр Cancel этой процедуры будет равен 1, то происходит отмена выхода и форма не закрывается. Это лежит в основе процесса выхода из программы. В случае отрицательного ответа на предложенное сообщение выход осуществлен не будет. Завершение работы программы происходит только при подтверждении выхода.
Если запись выделена, то управление получит Процедура Edit("Add", 0) (Приложение 1. с.35). Эти параметры обозначают, что необходимо добавить запись. Второй параметр для добавления записи не имеет значения. Он нужен при редактировании. Затем будет показана форма добавления записи frmAdd (Приложение 2. с.62), в которой необходимо заполнить правильно все поля. Ввод контролируется модулем modInspect (Приложение 1. с.60) и функцией Date_raz(date1 As String, date2 As String) As Long из модуля modData (Приложение 1. с.59), которая возвращает число, равное разности сумм произведений <число>+<месяц>*30+<год*365> двух дат, передаваемых в качестве параметров При нажатии кнопки «Добавить». В случае правильного ввода, запись появится в listbox-элементах главной формы.
Если запись выделена, управление получит Процедура Edit("Del", lstZapis(0).ListIndex). Эти параметры обозначают, что необходимо удалить запись с номером выделенной записи. После подтверждения удаления запись будет удалена из всех полей таблицы.
Если запись выделена, управление получит Процедура Edit("Edt", lstZapis(0).ListIndex). Эти параметры обозначают, что необходимо редактировать запись с номером выделенной записи. Затем будет показана форма редактирования записи frmEdit (Приложение 2. с.63) (она очень похожа на форму добавления записи, но в ней уже заполнены все поля), в которой вы можете изменить значение одного или нескольких полей данной записи (Ввод контролируется теми же модулями, что и при добавлении). Нажмите кнопку «Изменить». В случае правильного ввода, запись изменится в listbox-элементах главной формы.
Изменение формата текста производится в меню «Формат». Выбрав нужный подпункт, вы можете изменить шрифт и цвет текста. Шрифт изменяется в пределах тех значений, которые допускает операционная система, так как производится с помощью вызова стандартного диалога загрузки шрифта (вызов производит CommonDialog). Вся введенная информация изменит свой шрифт на выбранный. Для изменения цвета символов CommonDialog вызывает окно с палитрой, где можно выбрать цвет заливки символов, а затем нажать кнопку «ОК» или «Отмена» (в этом случае цвет будет выбран стандартный, то есть, черный).
Public Sub Search(strType As String) (Приложение 1. с.35) - это процедура поиска. Если strType=fst, то производится поиск по первой букве в выбранном поле, а результат помещается в таблицу формы результатов frmSearch (Приложение 2. с.64), после чего процедура выводит эту форму на экран. При загрузке формы поиска в строку состояния записывается количество записей в таблице.
Кроме того, возможен поиск по запросам. Для каждого запроса отведена своя процедура, выполняющая свою конкретную задачу. На той же форме результатов будет показан результат поиска по выбранному запросу, а внизу, на StatusBar - количество найденных записей. При двойном щелчке на записи в поле поиска, она выделяется в основной форме, а форма поиска выгружается.
Сначала загружается форма диаграмм frmDiagramms (Приложение 2. с.63), на которой с помощью кнопки выбирается тип диаграммы, а затем с помощью ComboBox или ListBox параметры, по которым необходимо построить диаграмму. Диаграммы строятся внути PictureBox-элементов, для каждого вида диаграмм отдельных. Для каждого вида диаграмм вызывается своя процедура: Graf() (Приложение 1. с.54) - для графика, Round(ob_kol As Long, kol1 As Long) (Приложение 1. с.53) - для круговых. Параметр ob_kol обозначает общее количество записей (100%), а kol1 - текущее количество, для построения сектора; Stolb(Групп As Integer) - для столбчатых, где Групп - это количество групп, которое нужно для определения ширины столбцов.
Для сортировки данных по определенному столбцу используется стандартное сравнение Visual Basic и функции больше (>) и меньше (<). Для сортировки по датам используется функция Date_raz(date1 As String, date2 As String) As Long из модуля modData, которая описана выше.
«Справка - О программе». Перейдя по этому меню, вы попадаете на форму frmAbout (Приложение 2. с.65), где написано о программе, версии, разработчике и авторских правах. Это стандартный About Dialog Visual Basic. Также с помощью стандартных средств Visual Basic реализована кнопка «О системе» на этой форме, собирающая информацию о вашем компьютере. Справка представляет собой «сайт» (HTML-страницы, соединенные ссылками и файлы с изображениями), который отображается в компоненте Web-browser на форме.
3.1 Руководство системного программиста
· Запустите файл MyDataBase.exe
· Выберите пункт «Открыть» в меню Файл или кнопку «Открыть» на панели инструментов. В появившемся диалоговом окне выберите имя открываемого файла. Таблица базы данных будет загружена из выбранного файла. Также вы можете сформировать свою базу данных путем добавления записей.
· Выберите пункт «Добавить запись» в меню «Редактировать». Появится окно Добавления записи. Заполните поля записи, например:
СтудентМасляев Евгений
ГруппаИТД-31
Название курсаИнформатика
Название работы Курсовая работа
Дата выдачи09.09.2006
Оценка5
Дата сдачи20.11.2006
· Нажмите кнопку «Добавить». В основном окне базы данных окне появится запись.
· Выберите пункт «Файл->Сохранить как» в меню или нажмите кнопку «Сохранить» на панели инструментов. В появившемся окне выберите имя нового файла. База данных сохранится в новом файле. Имя текущего файла, с которым в данный момент происходит работа, написано в заголовке окна.
· Выберите пункт «Создать» в меню для создания новой базы и очистки полей
· Снова откройте созданный вами файл по выше описанному алгоритму.
Если после выше перечисленных действий в открывшейся базе данных
будет находиться выше представленная запись, то создание, сохранение и открытие базы данных надо полагать успешным.
3.2 Руководство оператора
Если вам требуется создать новую базу данных, нет необходимости удалять записи одну за одной, а можно просто нажать на кнопку "Создать базу" на панели инструментов, перейти по меню "Файл -> Создать" (Рис.1)
Рис.1
И или нажать горячую комбинацию клавиш Ctrl+N. Если файл был сохранен до этого, то программа просто очистит таблицу, и ваши данные останутся в неизменном виде. Если же файл сохранен не был, то данные в предыдущей таблице вернутся в состояние предыдущего сохранения файла или будут удалены, если этот файл не существует. В любом случае, вы получите сообщение о том, что необходимо подтвердить действие (Рис.2), и, в случае отрицательного ответа, операция будет отменена.
Рис.2
Открыть уже сохраненный файл можно, используя кнопку на панели задач или меню "Файл -> Открыть". (Рис.3)
Рис.3
Ответьте положительно на следующее сообщение (Рис.4), если файл уже сохранен.
Рис.4
При нажатии на кнопку на экране появится диалоговое окно для
выбора файла.
Рис.5
Выберите нужный файл, нажмите кнопку "Открыть", и его содержимое появится в таблице на главной форме.
3.2.5 Сохранение базы данных
Сохранить данные в MyDataBase можно путем нажатия на кнопку с изображением дискеты на панели инструментов или перейдя в меню "Файл -> Сохранить" или "Файл -> Сохранить как". (Рис.6)
Рис.6
При нажатии кнопки на панели инструментов, программа выполняет пункт "Сохранить как", то есть, сохранить в новый файл, если база сохраняется в первый раз. При этом требуется в появившемся диалоге ввести имя и выбрать путь к новому файлу. Если текущая база уже была сохранена ранее, то нажатие на кнопку сохранения приведет к изменению текущего файла в соответствии с таблицей записей. Пункт меню "Файл -> Сохранить как" сохраняет базу в новый файл в любом случае. Сохранение файла - очень важный момент. Сохраняйте файлы чаще, чтобы не потерять важные данные, ведь в представленной программе есть все необходимые средства для того, чтобы сделать этот процесс как можно более быстрым и удобным.
Выделите запись, щелкнув на ней левой кнопкой мыши, и нажмите клавишу delete. Ответив "Да" на сообщение о подтверждении (Рис.7), вы удалите выбранную запись из базы.
Рис.7
Также можно удалить запись через контекстное меню, кнопку на панели инструментов или меню "Редактировать -> Удалить запись".
Меню "Редактировать -> Изменить запись" (Рис.8)
Рис.8
Аналогичная кнопка на панели инструментов, контекстное меню или двойной щелчок мышью на записи обеспечивает доступ к форме редактирования. (Приложение 2. с.63). Выглядит она так же, как и форма для добавления записи, но в ней изначально заполнены все поля. Изменив значения в одном или нескольких полях, вы пройдете аналогичный контроль ввода, как и при добавлении записи, и выбранная запись изменится в главной таблице.
Вы можете быстро найти интересующие вас данные по заданным критериям поиска. Выделите любое поле, щелкнув по его заголовку левой кнопкой мыши, а затем нажмите на кнопку с изображением лупы или перейдите в меню "Поиск -> По первой букве", (структура меню поиска показана на рисунке 9)
Рис.9
В появившееся окно введите букву (регистр не учитывается) и нажмите "Ок". На экране появится форма с результатами поиска по первой букве в выделенном поле. (Приложение 2. с.64). Внизу на этой форме, на строке состояния написано количество найденных записей. На каждую запись можно перейти в главной таблице, щелкнув дважды на ней на форме поиска.
Кроме поиска по первой букве, в программе предусмотрен поиск по часто используемым в сфере работы программы параметрам (запросам). Перейдите в меню "Поиск -> По запросу", и вы увидите список доступных запросов для поиска. Выбрав один из них, вы получите результат на той же форме, что и в первом случае. Замечание: Для данного вида поиска может потребоваться выделение записи.
Для осуществления сортировки необходимо выделить поле щелчком на его заголовке и нажать на кнопку "Сортировка" на панели инструментов или перейти в меню "Сортировка". (Рис.10)
Рис.10
Данные в таблице будут отсортированы по данному полю (по возрастанию или убыванию в зависимости от вашего выбора). Если поле содержит текст, он будет отсортирован в алфавитном порядке. Цифры - от меньшего к большему, а даты - в хронологическом порядке.
Перейдите в меню "Файл -> Выход" (Рис.11)
Рис.11
Нажмите на кнопку "Выход" на панели инструментов или закройте главную форму программы крестиком в правом верхнем углу, как обычное окно Windows и ответьте положительно на запрос подтверждения (Рис.12) для завершения работы с программой.
Рис.12
Несохраненные данные будут потеряны. В случае отрицательного ответа выход будет отменен.
1. Не задано поле для поиска.
Это означает, что вы обратились к поиску по первой букве, но не выделили поле. Поиск по первой букве не может быть осуществлен при не выбранном поле. Выбрать его можно, щелкнув по заголовку поля. При этом заголовок поля примет вид нажатой кнопки. Чтобы снять выделение поля, щелкните мышью на свободном месте главной формы. Заголовок вернется в нормальное состояние. Искать данные по первой букве можно только тогда, когда выделено одно из полей. 2. Введено нечисловое, дробное, слишком большое или слишком маленькое значение.
При добавлении или изменении записи может возникнуть эта ошибка. Она означает, что в поле "Оценка" введено не число. Оценка - это натуральное число в диапозоне от 0 (студент не явился) до 5 (отлично). Если оценка введена больше 5, то возникнет ошибка:
Границы ввода определяются контролем ввода. Правила ввода вы можете посмотреть на примере формы добавления записи. 3. Дата выдачи больше даты сдачи.
При добавлении или редактировании записей таблицы вы не можете указать дату выдачи работы более позднюю, чем дату сдачи. Студенты редко сдают работы раньше получения заданий.
ЛИТЕРАТУРА
1. С.В. Глушаков А.С. Сурядный программирование на VB6.0 «Фолио» 2002г.
2. С.И. Воронцов Microsoft Visual Basic 5.0 «Солон» 1998г.
Код программы
frmStart
Dim x As Byte
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then Call Terminate
End Sub
Private Sub Form_Load()
x = 0
End Sub
Private Sub tmrAni_Timer()
If x <= 18 Then imgAnim.Picture = img(x).Picture
x = x + 1
If x = 40 Then Me.Picture = img(19).Picture: imgAnim.Visible = False
If x = 60 Then Call Terminate
End Sub
Public Sub Terminate()
tmrAni.Enabled = False
frmDatabase.Show
Unload Me
End Sub
frmDatabase
Option Explicit
Public Sub Create()
If MsgBox("Несохраненные данные будут потеряны. Создать новую базу?", vbQuestion + vbYesNo, strName) = vbNo Then Exit Sub
For i = 0 To 6
lstZapis(i).Clear
Next
OpenFile = ""
Me.Caption = strName
End Sub
Public Sub Open_File()
Dim strФильтр As String
If MsgBox("Несохраненные данные будут потеряны. Открыть файл?", vbQuestion + vbYesNo, strName) = vbNo Then Exit Sub
For i = 0 To 6
lstZapis(i).Clear
Next
OpenFile = ""
strФильтр = "Файлы " + strName + " (*." + strРасширение + ")|*." + strРасширение + "|"
cdl1.Filter = strФильтр
cdl1.Action = 1
If cdl1.FileName <> "" Then
OpenFile = cdl1.FileName
Open OpenFile For Random As 1 Len = Len(Zapis)
For i = 1 To FileLen(OpenFile) / Len(Zapis)
Get #1, i, Zapis
lstZapis(0).AddItem Trim(Zapis.Студент)
lstZapis(1).AddItem Trim(Zapis.Группа)
lstZapis(2).AddItem Trim(Zapis.Курс)
lstZapis(3).AddItem Trim(Zapis.Работа)
lstZapis(4).AddItem Trim(Zapis.Дата_сдачи)
lstZapis(5).AddItem Trim(Zapis.Оценка)
lstZapis(6).AddItem Trim(Zapis.Дата_выдачи)
Next
Close #1
End If
If OpenFile <> "" Then Me.Caption = strName + " - " + OpenFile
End Sub
Public Sub Save(intSaveAs As Byte)
Dim strФильтр As String
If intSaveAs = 0 And OpenFile <> "" Then
If Dir(OpenFile) = Right$(OpenFile, Len(OpenFile) - Len(ОтрезИмя(OpenFile))) Then
Kill OpenFile
Else
OpenFile = ""
MsgBox "Сохраненный файл был удален или поврежден. Попробуйте сохранить еще раз", vbCritical + vbOKOnly, strName
Exit Sub
End If
Open OpenFile For Random As 1 Len = Len(Zapis)
For i = 0 To lstZapis(1).ListCount - 1
Zapis.Студент = lstZapis(0).List(i)
Zapis.Группа = lstZapis(1).List(i)
Zapis.Курс = lstZapis(2).List(i)
Zapis.Работа = lstZapis(3).List(i)
Zapis.Дата_сдачи = lstZapis(4).List(i)
Zapis.Оценка = lstZapis(5).List(i)
Zapis.Дата_выдачи = lstZapis(6).List(i)
Put #1, i + 1, Zapis
Next
Close #1
Else
strФильтр = "Файлы " + strName + " (*." + strРасширение + ")|*." + strРасширение + "|"
cdl1.Filter = strФильтр
cdl1.Action = 2
If cdl1.FileName <> "" Then
OpenFile = cdl1.FileName
If Dir(OpenFile) = Right$(OpenFile, Len(OpenFile) - Len(ОтрезИмя(OpenFile))) Then
If MsgBox("Файл уже существует. Перезаписать?", vbQuestion + vbYesNo, strName) = vbNo Then Exit Sub
End If
Open OpenFile For Random As 1 Len = Len(Zapis)
For i = 0 To lstZapis(1).ListCount - 1
Zapis.Студент = lstZapis(0).List(i)
Zapis.Группа = lstZapis(1).List(i)
Zapis.Курс = lstZapis(2).List(i)
Zapis.Работа = lstZapis(3).List(i)
Zapis.Дата_сдачи = lstZapis(4).List(i)
Zapis.Оценка = lstZapis(5).List(i)
Zapis.Дата_выдачи = lstZapis(6).List(i)
Put #1, i + 1, Zapis
Next
Close #1
End If
End If
If OpenFile <> "" Then Me.Caption = strName + " - " + OpenFile
End Sub
Public Sub Edit(strType As String, lngN As Long)
If strType = "Add" Then
frmAdd.Show 1
End If
If strType = "Del" Then
If MsgBox("Вы действительно хотите удалить эту запись?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
For i = 0 To 6
lstZapis(i).RemoveItem (lngN)
Next
End If
If strType = "Edt" Then
lngNumberOfEdit = lngN
frmEdit.txt1.Text = lstZapis(0).List(lngN)
frmEdit.txt2.Text = lstZapis(1).List(lngN)
frmEdit.txt3.Text = lstZapis(2).List(lngN)
frmEdit.txt4.Text = lstZapis(3).List(lngN)
frmEdit.txt5.Text = lstZapis(4).List(lngN)
frmEdit.txt6.Text = lstZapis(5).List(lngN)
frmEdit.txt7.Text = lstZapis(6).List(lngN)
frmEdit.Show 1
End If
End Sub
Public Sub Search(strType As String)
Dim strЗапрос As String
Dim m As Byte
Dim boolF As Boolean
For i = 0 To 6
frmSearch.lstZapis(i).Clear
frmSearch.lstNumbers.Clear
Next
strЗапрос = ""
intPole = -1
If strType = "Fst" Then
strSearch = InputBox("Введите первую букву записи выделенного поля (регистр не учитывается)", "Поиск по первой букве", "а")
For i = 0 To 6
If optPole(i).Value = True Then intPole = i
Next
If intPole = -1 Then MsgBox "Не задано поле для поиска", vbCritical + vbOKOnly, strName: Exit Sub
For i = 0 To lstZapis(intPole).ListCount - 1
If UCase(Left(lstZapis(intPole).List(i), 1)) = UCase(strSearch) Then
For j = 0 To 6
frmSearch.lstZapis(j).AddItem lstZapis(j).List(i)
Next
frmSearch.lstNumbers.AddItem i
End If
Next
If strSearch <> "" Then frmSearch.Show 1
End If
End Sub
Public Sub Help()
frmHelp.Show
End Sub
Public Sub Sort(strType As String, pole As Long)
Dim lng1 As Long
Dim lng2 As Long
If strType = "Up" Then
For lng1 = 0 To lstZapis(pole).ListCount - 1
For lng2 = lng1 To lstZapis(pole).ListCount - 1
If pole <> 4 And pole <> 6 Then
If lstZapis(pole).List(lng1) > lstZapis(pole).List(lng2) Then
Call Замена(lng1, lng2)
End If
Else
If Data_Sort(lstZapis(pole).List(lng1), lstZapis(pole).List(lng2)) = 1 Then
Call Замена(lng1, lng2)
End If
End If
! | Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ. |
! | Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу. |
! | Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться. |
! | План курсовой работы Нумерованным списком описывается порядок и структура будующей работы. |
! | Введение курсовой работы Что пишется в введении, какой объем вводной части? |
! | Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать. |
! | Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа. |
! | Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема. |
! | Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом. |
! | Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ. |
→ | Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия. |
→ | Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта. |
→ | Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты. |
→ | Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести. |
→ | Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя. |
→ | Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика. |
Курсовая работа | Деятельность Движения Харе Кришна в свете трансформационных процессов современности |
Курсовая работа | Маркетинговая деятельность предприятия (на примере ООО СФ "Контакт Плюс") |
Курсовая работа | Политический маркетинг |
Курсовая работа | Создание и внедрение мембранного аппарата |
Курсовая работа | Социальные услуги |
Курсовая работа | Педагогические условия нравственного воспитания младших школьников |
Курсовая работа | Деятельность социального педагога по решению проблемы злоупотребления алкоголем среди школьников |
Курсовая работа | Карибский кризис |
Курсовая работа | Сахарный диабет |
Курсовая работа | Разработка оптимизированных систем аспирации процессов переработки и дробления руд в цехе среднего и мелкого дробления Стойленского ГОКа |