База данных

0

Тема: База данных

Содержание

Задание

  1. ВведениеОглавление.

    1.Введение ____________________________________________________3

    2.Постановка задачи_____________________________________________6

    3.Основные понятия базы данных_________________________________7

    3.1.  Базы данных и системы управления базами данных____________7

    3.2. Язык описания данных ____________________________________8

    3.3.   Структура простейшей базы данных________________________8

    3.4. Свойства полей базы данных _______________________________9

    3.6.  Безопасность баз данных__________________________________11

    3.5. Типы данных____________________________________________12

    4.Проектирование базы данных__________________________________13

    4.1.  Режимы работы с базами данных___________________________13

    4.2.   Объекты базы данных____________________________________13

    4.2.1.  Таблицы____________________________________________13

    4.2.2. Запросы_____________________________________________14

    4.2.3. Формы______________________________________________14

    4.2.4.  Отчеты_____________________________________________14

    4.2.5.  Страницы___________________________________________14

    4.2.6. Макросы и модули____________________________________15

    4.3. Проектирование базы данных_______________________________15

    4.4. Разработка технического задания и структуры базы данных _____16

    1. Функциональное предназначение программы_____________________19

    6.Описание интерфейса, основных переменных и функций____________20

    7.Описание работы программы (краткое руководство пользователя)____24

    1. Блок-схема (Приложение 1)_______________________________26
    2. Приложение 2_____________________________________29
    3. Приложение 3____________________________________31
    4. Заключение________________________________________________45
    5. Список используемой литературы ____________________________47

    1.Введение.

    Подбирая краткое и емкое определение, можно сказать, что С++ — это язык С плюс средства поддержки классов и некоторые другие современные элементы.

    Язык С был разработан 1970 – х. годах Денисом Ричи, сотрудником корпорации АТ & Т ВеLL Laboratories.первый написанной на этом языке  большой программой стала операционная система UNIX ( эта операционная система существовала и до появления С, но ее первые версии были написаны либо на ассемблера, либо на языке В, разработанном Кеном Томсоном – создателем UNIX). Несмотря на то что с является языком общего назначения, подходящим  для написания любых программ, своим успехом и популярностью он во многом обязан операционной системе UNIX. Поскольку ее код открыт для модификации, администраторам и программистам, отвечающим за сопровождение этой системы, просто невозможно обойтись без языка С. UNIX и С связаны друг с другом так тесно, что в скором времени после создания этого языка уже не только системные программы, но и все коммерческие программы обеспечение, работавшие под управлением UNIX, писалось или было переписано на С. Данный язык стал настолько популярным, что появилась его версии и для других распространенных операционных систем, так что использование С уже не ограничивается компьютерами, на котором установлен UNIX. Однако, несмотря на широкую популярность, С, обладает определенными недостатками.

    Это довольно необычный язык в том отношении, что, будучи языков высокого уровня, С содержит много низкоуровневых элементов. Поэтому он скорее занимает среднюю позицию между языками очень высокого и очень низкого уровня, в том его сила и его слабость. Подобно низкоуровневому языку ассемблера,  С позволяет непосредственно обращаться к памяти компьютера. В тоже время, благодаря наличия в нем высокоуровневых элементов, значительно упрощены такие операции, как чтение и запись данных. Таким образом язык С идеально подходит для написания системных программ. Однако для разработки прикладных программ он менее удобен, поскольку со сложности превосходит языки самого высокого уровня. Код, написанной на С, получается менее читабельным, и его компилятор выполняет намного меньше автоматических проверок и других важных операции, облегчающих работу программиста.

    Для преодоления этих и других ограничении языка С в начале 1980 – х. годов Бьярн Страуструп из компании AT & BeLL Laboratoties разработал язык С++. В него вошла большая часть элементов С, и поэтому преобладающее количество программ, написанных на С, являются программами на С++. (Обратное не верно: программа на С++ в подавляющем большинстве не являются программами на С.) В отличие от С, язык С++ содержит средства для работы с классами, и поэтому может использоваться для объектно —  ориентированного программирования.

    С++ — это универсальный язык общего назначения, область применения которого — программирование систем в самом широком смысле.

    Название С++ придумал Рик Масситти ( ++ — операция приращения ).

    На протяжении своей сравнительно недолгой истории язык С++ постоянно совершенствовался. В структуру языка вводились новые понятия, расширялась его библиотека стандартных функций и классов, создавались все новые и новые системы программирования. Это привело к тому, что литература по С++ очень быстро устаревала. В подтверждение сказанного достаточно сравнить три издания книги Б. Страуструпа “Язык программирования С++”.

    В августе 1998 г. был принят стандарт языка (ISO/IES 14882 “Standard for the C++ Programming Language”). Однако до сих пор в нашем распоряжении нет среды программирования, которая бы полностью поддерживала стандарт.

    Изучение языка С++ позволит освоить базовые методы разработки и эксплуатации программного обеспечения, и более эффективно использовать вычислительную технику.

    В данной курсовой работе описана программа “ База данных автосалона ” написанное на языке высокого уровня С++. Которая  позволит ускорить, упорядочить и упростить  вывод анализируемой информации.

    1. Постановка задачи.

    Написать базу данных (БД) на языке высокого уровня С++ позволяющую хранить информацию об автосалоне ( марка автомобиля, модель автомобиля, тип кузова, год выпуска, средняя стоимость автомобиля, уникальный код записи (порядковый №)). База данных должна содержать основные функции: добавление записи, удаление записи, редактирование записи, поиск и сортировку по заданным параметрам.

    Программа должна выполнять следующие действия:

    — занесение данных в базу данных;

    — внесение изменений (добавление, исключение);

    • поиск данных по признаку, вывод их на экран.

    Выбор подлежащих выполнению действий должен быть реализован с помощью меню и подменю.

    Задача должна быть структурирована и отдельные части должны быть оформлены как функции.

    Исходные данные должны вводиться с клавиатуры.

    В процессе обработки картотека должна храниться в памяти ЭВМ в виде связанного списка.

    Необходимо предусмотреть возможность сохранения выбранных записей в файле, задаваемом пользователем.

    Программа должна иметь дружественный интерфейс и обеспечивать устойчивую работу при случайном нажатии на клавишу.

    3.Основные понятия базы данных.

     3.1.  Базы данных и системы управления базами данных.

    База данных – это организованная структура, предназначенная для хранения информации. В современных базах данных хранятся не только данные, но и информация.

    Это утверждение легко пояснить, если, например, рассмотреть базу данных крупного банка. В ней есть все необходимые сведения о клиентах, об их адресах, кредитной истории, состояние расчетных счетов, финансовых операциях и т.д. Доступ к этой базе данных имеется у достаточно большого количества сотрудников банка, но среди них вряд ли найдется такое лицо, которое имеет доступ ко всей базе полностью и при этом способно единолично вносить в нее произвольные изменения. Кроме данных, база содержит методы и средства, позволяющие каждому из сотрудников оперировать только с теми данными, которые входят в его компетенцию. В  результате взаимодействия данных, содержащихся в базе, с методами, доступными конкретным сотрудникам, образуется информация, которую они потребляют и на основании которой в пределах собственной компетенции производят ввод и редактирование данных.

    С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнение ее содержимым, редактирование содержимого и визуализации информации. Под визуализацией информации базы понимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройства вывода или передачи по каналам связи.

    В мире существует множество систем управления базами данных. Несмотря на то что они могут по-разному работать с разными объектами и предоставляют пользователю различные функции и средства, большинство СУБД опираются на единый устоявшийся комплекс основных понятий. Это дает нам возможность рассмотреть одну систему и обобщить ее понятия, приемы и методы на весь класс СУБД. В качестве такого учебного объекта мы выберем СУБД Microsoft Access, входящую в пакет Microsoft Office.

    3.2. Язык описания данных.

    Язык описания данных (ЯОД) – Средства описания данных в БД и связей между ними. Средствами этого языка описывается структура БД, форматы записей, пароли, защищающие данные.

    Язык манипулирования данными (ЯМД) – язык для выполнения операций над данными, позволяющий менять их строение.

    Для различных СУБД реализация этих уровней языков может быть различной. В одних случаях ЯОД и ЯМД требует составления пользователем программы полностью “вручную”, в других (что отражает современную тенденцию) в СУБД присутствует средства визуальной (зримой, наглядной) разработки программ. Для этого в современных  СУБД имеются редакторы экранных форм, отчетов. “Кирпичиками” (инструментами) таких редакторов являются поля различных видов (поля ввода, поля вывода, вычисляемые поля), процедуры обработки различных типов (формы ввода, таблицы, отчеты, запросы). На основании созданных пользователем объектов программы – генераторы формируют программный код на языке конкретной машины или на промежуточном языке.

    3.3.   Структура простейшей базы данных.

    Сразу поясним, что если в базе нет никаких данных (пустая база), то это все равно полноценная база данных. Этот факт имеет методическое значение. Хотя данных в базе и нет, но информация в ней все-таки есть – это структура базы. Она определяет методы занесения данных и хранения их в базе. Простейший “некомпьютерный” вариант базы данных – деловой ежедневник, в котором каждому календарному дню выделено по странице. Даже если в нем не записано ни строки, он не перестает быть ежедневником, поскольку имеет структуру, четко отличающую его от записных книжек, рабочих тетрадей и прочей писчебумажной продукции.

    Базы данных могут содержать различные объекты. Основными объектами любой базы данных являются ее таблицы. Простейшая база данных имеет хотя бы одну таблицу. Соответственно, структура простейшей базы данных тождественно равна структуре ее таблицы.

    Структуру двумерной таблицы образуют столбцы и строки. Их аналогами в простейшей базе данных являются поля и записи. Если записей в таблице пока нет, значит, ее структура образована только набором полей. Изменив состав полей базовой таблицы (или их свойства), мы изменяем структуру базы данных и, соответственно, получаем новую базу данных.

    3.4. Свойства полей базы данных.

    Поля базы данных не просто определяют структуру базы – они еще определяют групповые свойства данных, записываемых в ячейки, принадлежащие каждому из полей. Ниже перечислены основные свойства полей таблиц баз данных на примере СУБД Microsoft Access.

    Имя поля – определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).

    Тип поля – определяет тип данных, которые могут содержаться в данном поле.

    Размер поля – определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.

    Формат поля – определяет способ форматирования данных в ячейках, принадлежащих полю.

    Маска ввода – определяет форму, в которой вводятся данные а поле (средство автоматизации ввода данных).

    Подпись – определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).

    Значение по умолчанию – то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).

    Условие на значение – ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты).

    Сообщение об ошибке – текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных.

    Обязательное поле – свойство, определяющее обязательность заполнения данного поля при наполнении базы.

    Пустые строки – свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).

    Индексированное поле – если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значение в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.

    Поскольку в разных полях могут содержаться данные разного типа, то и свойства у полей могут различаться в зависимости от типа данных. Так, например, список вышеуказанных свойств полей относится в основном к полям текстового типа. Поля других типов могут иметь или не иметь эти свойства, но могут добавлять к ним и свои. Например, для данных, представляющих действительные числа, важным свойством является количество знаков после десятичной запятой. С другой стороны, для полей, используемых для хранения рисунков, звукозаписей, видео клипов и других объектов OLE, большинство вышеуказанных свойств не имеют смысла.

    3.5. Типы данных.

    Таблицы баз данных, как правило, допускают работу с гораздо большим количеством разных типов данных. Так, например, базы данных Microsoft Access работают со следующими типами данных.

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

    Числовой – тип данных для хранения действительных чисел.

    Поле Мемо – специальный тип данных для хранения больших объемов текста (до 65 535 символов). Физически текст не хранится в поле. Он храниться в другом месте базы данных, а в поле храниться указатель на него, но для пользователя такое разделение заметно не всегда.

    Дата/время – тип данных для хранения календарных дат и текущего времени.

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

    Счетчик – специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использование – для порядковой нумерации записей.

    Логический — тип для хранения логических данных (могут принимать только два значения, например Да или Нет).

    Гиперссылка – специальное поле для хранения адресов URL Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск браузера и воспроизведение объекта в его окне.

    Мастер подстановок – это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать их из раскрывающегося списка.

    3.6.  Безопасность баз данных.

    Базы данных – это тоже файлы, но работа с ними отличается от работы с файлами других типов, создаваемых прочими приложениями. Выше мы видели, что всю работу по обслуживанию файловой структуры берет на себя операционная система. Для базы данных предъявляются особые требования с точки зрения безопасности, поэтому в них реализован другой подход к сохранению данных.

    Базы данных – это особые структуры. Информация, которая в них содержится, очень часто имеет общественную ценность. Нередко с одной и той же базой работают тысячи людей по всей стране. От информации, которая содержится в некоторых базах, может зависеть благополучие множества людей. Поэтому целостность содержимого базы не может и не должна зависеть ни от конкретных действий некоего пользователя, забывшего сохранить файлы перед выключением компьютера, ни от перебоев в электросети.

    Проблема безопасности баз данных решается тем, что в СУБД  для сохранения информации используется двойной подход. В части операций, как обычно, участвует операционная система компьютера, но некоторые операции сохранения происходят в обход операционной системы.

     

     

     

     

     

     

    4.Проектирование базы данных.

    4.1.  Режимы работы с базами данных.

    Обычно с базами данных  работаю две категории пользователей. Первая категория – проектировщики. Их задача состоит в разработке структуры таблиц базы данных и согласование ее с заказчиком. Кроме таблиц проектировщики разрабатывают и другие объекты базы данных, предназначенные, с одной стороны, для автоматизации работы с базой, а с другой стороны – для ограничения функциональных возможностей работы с базой (если это необходимо из соображений безопасности). Проектировщики не наполняют базу конкретными данными, (заказчик может считать их конфиденциальными и не предоставлять посторонним лицам). Исключение составляет экспериментальное наполнение модельными данными на этапе отладки объектов базы.

    Вторая категория исполнителей, работающих с базами данных, — пользователи. Они получают исходную базу данных от проектировщиков и занимаются ее наполнением и обслуживанием. В общем случае пользователи не имеют средств доступа к управлению структурой базы – только к данным, да и то не ко всем, а к тем, работа с которыми предусмотрена на конкретном рабочем месте.

    Соответственно СУБД имеет два режима работы: проектировочный  и пользовательский. Первый режим предназначен для создания или изменения структуры базы и создание ее объектов. Во втором режиме происходит использование ранее подготовленных объектов для наполнения базы или получения данных из нее.

    4.2.  Объекты базы данных.

    4.2.1.  Таблицы.

    Таблицы – это основные объекты любой базы данных. Во-первых, в таблицах хранятся все данные, имеющиеся в базе, а во-вторых, таблицы хранят и структуру базы (поля, их типы и свойства).

    4.2.2. Запросы.

    Эти объекты служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С помощью запросов выполняют такие операции как отбор данных, их сортировку и фильтрацию. С помощью запросов можно выполнять преобразования данных по заданному алгоритму, создавать новые таблицы, выполнять автоматическое наполнения таблиц данными, импортированными из других источников, выполнять простейшие вычисления в таблицах и многое другое.

    4.2.3. Формы.

    Если запросы – это специальные средства для отбора и анализа данных, то формы – это средства для ввода данных. Смысл их тот же – предоставить пользователю средства для заполнения только тех полей, которые ему заполнять положено. Одновременно с этим в форме можно разместить специальные элементы управления (счетчики, раскрывающиеся списки, переключатели, флажки и прочее) для автоматизации ввода. Преимущества форм раскрываются особенно наглядно, когда происходит ввод данных с заполненных бланков. В этом случае форму делают графическими средствами так, чтобы она повторяла оформление бланка – это заметно упрощает работу наборщика, снижает его утомление и предотвращает появление печатных ошибок.

    4.2.4.  Отчеты.

    По своим свойствам и структуре отчеты во многом похожи на формы, но предназначены только для вывода данных, причем для вывода не на экран, а на принтер. В связи с этим отчеты отличаются тем, что в них приняты специальные меры для группирования выводимых данных и для вывода специальных элементов оформления, характерных для печатных документов.

    4.2.5.  Страницы.

    Это специальные объекты баз данных, реализованных в последней версии СУБД  Microsoft Access (Access 2000). Правда, более коректно их называть страницами доступа к данным. Физически это особый объект, выполненный в коде HTML, размещаемый на Web-странице и передаваемый клиенту вместе с ней. Сам по себе этот объект не является базой данной, но содержит компоненты, через которые осуществляется связь переданной Web-страницы с базой данных, остающейся на сервере. Пользуясь этими компонентами, посетитель Web-узла может просматривать записи базы в полях страницы доступа. Таким образом, страницы доступа к данным осуществляют интерфейс между клиентом, сервером и базой данных, размещенной на сервере. Эта база данных не обязательно должна быть базой данных Microsoft Access. Страницы доступа, созданные средствами Microsoft Access, посволяют работать также с базами данных Microsoft SQL Server.

    4.2.6. Макросы и модули.

    Эти категории объектов предназначены как для автоматизации повторяющихся операций при работе с СУБД, так и для создания новых функций путем программирования. В СУБД Microsoft Access макросы состоят из последовательности внутренних команд СУБД и являются одним из средств автоматизации работы с базой. Модули создаются средствами внешнего языка программирования, в данном случае языка Visual Basic for Applications. Это одно из средств, с помощью которых разработчик базы может заложить в нее нестандартные функциональные возможности, удовлетворить специфическое требование заказчика, повысить быстродействие системы управления, а также уровень ее защищенности.

    4.3. Проектирование базы данных.

    Методически правильно начинать работу с карандашом и листом бумаги в руках, не используя компьютер. На данном этапе он просто не нужен. Неоптимальные решения и прямые ошибки, заложенные на этапе проектирования, впоследствии очень трудно устраняются, поэтому этот этап является основополагающим.

     

    4.4. Разработка технического задания.

    Техническое задание на проектирование базы данных должен предоставить заказчик. Однако для этого он должен владеть соответствующей терминологией и знать, хотя бы в общих чертах, технические возможности основных СУБД. К сожалению, на практике такое положение встречается не всегда. Поэтому обычно используют следующие подходы:

    Демонстрируют заказчику работу аналогичной базы данных, после чего согласовывают спецификацию отличий;

    Если аналога нет, выясняют круг задач и потребностей заказчика, после чего помогают ему подготовить техническое задание.

    При подготовке технического задания составляют:

    Список исходных данных, с которыми работает заказчик;

    Список выходных данных, которые необходимы заказчику для управления структурой своего предприятия;

    Список выходных данных, которые не являются необходимыми для заказчика, но которые он должен предоставить в другие организации (в вышестоящие структуры, в органы статистического учета, прочие административные и контролирующие организации).

    При этом очень важно не ограничиваться взаимодействием с головным подразделением заказчика, а провести обсуждение со всеми службами и подразделениями, которые могут оказать оказаться поставщиками данных в базу или их потребителями.

    4.5. Разработка структуры базы данных.

    Выяснив основную часть данных, которые заказчик потребляет или поставляет, можно приступать к созданию структуры базы, то есть структуры ее основных таблиц.

    Работа начинается с составления генерального списка полей – он может насчитывать десятки и даже сотни позиций.

    В соответствии с типом данных, размещаемых в каждом поле, определяют наиболее подходящий тип для каждого поля.

    Далее распределяют поля генерального списка по базовым таблицам. На первом этапе распределение производят по функциональному признаку. Цель – обеспечить, чтобы ввод данных в одну таблицу производился, по возможности, в рамках одного подразделения, а еще лучше – на одном рабочем месте.

    В каждой из таблиц намечают ключевое поле. В качестве такого выбирают поле, данные в котором повторяться не могут. Например, для таблицы данных о студентах таким поле может служить индивидуальный шифр студента. Для таблицы, в которой содержаться расписание занятий, такого поля можно и не найти, но его можно создать искусственным комбинированием полей “Время занятия” и “Номер аудитории”. Эта комбинация неповторима, так как в одной аудитории в одно и то же время не принято проводить два различных занятия. Если в таблице, вообще нет ни каких полей, которые можно было бы использовать, как ключевые, всегда можно ввести дополнительное поле типа Счетчик – оно не может содержать повторяющихся данных по определению.

    С помощью карандаша и бумаги расчерчивают связи между таблицами. Такой чертеж называется схемой данных. Существует несколько типов возможных связей между таблицами. Наиболее распространенными являются связи “один ко многим” и “один к одному”. Связь между таблицами организуется на основе общего поля, причем в одной из таблиц оно обязательно должно быть ключевым, то есть на стороне “один” должно выступать ключевое поле, содержащее уникальные, неповторяющиеся значения. Значения на стороне “многие” могут повторяться.

    Разработкой схемы данных заканчивается “бумажный” этап работы над техническим предложением. Эту схему можно согласовать с заказчиком, после чего приступать к непосредственному созданию базы данных.

    Следует помнить, что по ходу разработки проекта заказчику непременно будут приходить в голову новые идеи. На всех этапах проектирования он стремится охватить единой системой все новые и новые подразделения и службы предприятия. Возможность гибкого использования его пожеланий во многом определяется квалификацией разработчика базы данных. Если схема данных составлена правильно, подключать к базе новые таблицы нетрудно. Если структура базы нерациональна, разработчик может испытать серьезные трудности и войти в противоречие с заказчиком. Противоречия исполнителя с заказчиком всегда свидетельствуют о недостаточной квалификации исполнителя. Именно по этому этап предварительного проектирования базы данных следует считать основным. От его успеха зависит, насколько база данных станет удобной, и будут ли с ней работать пользователи. Если отмечается, что пользователи базы “саботируют” ее эксплуатацию и предпочитают работать традиционными методами, это говорит не о низкой квалификации пользователей, а о недостаточной квалификации разработчика базы.

    На этом этапе завершается предварительное проектирование базы данных, и на следующем этапе начинается ее непосредственная разработка. С этого момента следует начать работу с СУБД.

     

     

     

     

     

     

     

     

     

     

    1. Функциональное предназначение программы.

    Данная программа представляет собой базу данных позволяющую хранить информацию об автосалоне. Программа позволяет использовать следующие возможности: создание новой БД, либо открытий уже созданной, добавление новых данных в файл БД, удаление записей, редактирование имеющихся записей, поиск существующих записей по их уникальному коду. Каждой новой записи присваивается свой индивидуальный номер (код). Также предусмотрена проверка вводимых данных на идентичность, при вводе идентичных данных пользователю будет выдано предупреждение и дана возможность ввести новые данные. Это программа  использует очень удобный и  понятный интерфейс, организована система меню и подменю, внизу окна специально создана горячая подсказка. Так же предусмотрен так называемый скроллинг (прокрутка) выводимой информации клавишами вверх-вниз,

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    1. Описание интерфейса, основных переменных и функций.

    Все данные вводятся с клавиатуры при помощи клавиш.

    Используемые клавиши:

    Enter (для выбора или подтверждения), стрелки вправо, влево (для перемещения по меню), вверх,  вниз (для скроллинга данных).

     

    Модуль состоит следующих функций,  которые вызываются из функции fail( ):

    1 – функция sozd();

    2 – функция dopolnen();

    3 – функция korr();

    4 – функция iskl();

    5 – функция pech();

    6 — при выборе пункта происходит выход из конструкции do{}while(), и выход в головную функцию.

    1. Создание файла и ввод информации по рабочему с клавиатуры (функция sozd())

    -функция типа void передает указатель на поток (fstream *q);

    Функция sozd() – создание нового файла.

    С клавиатуры вводится название файла, проверяется есть ли уже такой файл. Если файла с таким именем нет, то файл создается, и открывается в двоичном режиме на запись. Информация по автомашинам заносится с клавиатуры в функции vvod(), и хранится во временной переменной. Затем проверяется, существует ли автомашина с именем, указанным во временной переменной. Если уже есть, то запись не сохраняется, если нет, то сохраняется.

    После, этого запрашивается, продолжать ли ввод, по данным. Если нет, то происходит выход из функции, если да, то возвращаемся на функцию ввод.

    1. Дополнение записей в уже созданный файл (функция dopolnen())

    — функция типа void передает указатель на поток (fstream *q);

    Функция dopolnen() – дополнение записей в уже созданный файл. С клавиатуры вводится название файла, проверяется, есть ли  файл с таким названием. Если файл есть, то открывается в двоичном режиме на дополнение.

    Информация по автомашинам заносится с клавиатуры в функции vvod(), и хранится во временной переменной.

    Затем проверяется существует ли данные с именем, указанным во временной переменной. Если уже есть, то запись не сохраняется, если нет, то сохраняется.

    После, этого, запрашивается, продолжать ли ввод, по данным. Если нет, то происходит выход из функции, если да, то возвращаемся на функцию ввод.

    1. Корректировка уже созданных записей (функция korr())

    — функция типа void передает указатель на поток (fstream *q);

    Функция korr () – корректировка записей в уже созданном файле.

    С клавиатуры вводится название файла, проверяется, есть ли  файл с таким названием. Если файл есть, то открывается в двоичном режиме на чтение.

    Затем вводится название корректируемой фамилии.

    Поочередно просматриваются записи в файле, и сравниваются текущий файл, с введенным с клавиатуры. Если наименования совпадают, то запоминается номер позиции записи в файле.

    Новая информация по корректируемому файлу, заносится с клавиатуры в функции vvod(), записывается во временной переменной, и записывается на место корректируемой записи.

    После этого запрашивается продолжать ли корректировку. Если нет, то происходит выход из функции, если да то возвращаемся на ввод названия корректируемой файла.

    1. Удаление записей из файла (функция iskl());

    Функция iskl () – удаление записей из уже созданного файла.

    С клавиатуры вводится название файла, проверяется, есть ли файл с таким названием. Если файл есть, то открывается в двоичном режиме на чтение.

    Также организовывается вспомогательный поток данных на запись.

    Затем вводится название корректируемой файла.

    Поочередно просматриваются записи в файле, и сравниваются текущие данные с введенным с клавиатуры. Если наименования не совпадают, тогда  текущая запись записывается во вспомогательный файл, если совпадают то данная запись пропускается.

    Когда просмотрены все записи, и если запись с исходным наименованием существовала, то исходный файл удаляется, а вспомогательному файлу, присваивается имя исходного.

    Если записи с исходным наименованием не существовало, тогда удаляется вспомогательный файл.

    После этого заращивает, продолжить ли удаление файла. Если нет, то происходит выход из функции, если да, то возвращаемся на ввод названия корректируемой файла.

    — функция типа void передает указатель на поток (fstream *q);

    1. Вывод информации об автомашине из файла на экран, в форме таблицы (функция pech())

    Функция pech() – вывод на экран содержимое файла.

    С клавиатуры вводится название файла и открывается в двоичном режиме на чтение.

    Последовательно во временную переменную считывается информация по данным, выводится построчно на экран, цена закупки автомобиля, цена продажи автомобиля,  которые выводятся в конце таблицы строкой итого.

    — функция типа void передает указатель на поток (fstream *q);

    1. При выборе пункта 6 происходит выход из конструкции do{}while(), и выход в головную функцию.

    -функция типа void передает указатель на переменную (predpr *p).

    В головном модуле нам потребуется подключить такие стандартные библиотеки:

    -fstream.h

    В этой библиотеке находятся описания потоковых классов. Ее подключение необходимо для использования в программе тех или иных средств ввода – вывода при работе с файлами.

    -stdlib.h

    Стандартная библиотека

    -ctype.h

    В данной библиотеке описан ряд функций, которые удобно использовать при организации ввода — вывода с целью контроля вводимых значений;

    -conio.h                     -stdio.h                            -new.h

    В данной библиотеке описаны функции для работы с динамической памятью и динамическими переменными, для выделения и освобождения памяти;

    -string.h

    В данной библиотеке находятся cстандартные функции работы со строками;

    -iomanip.h

    В данной библиотеке находятся описания манипуляторов, которые используются для форматирования ввода-вывода.

    Эта функция вызывается в таких функциях как:

    -создание файла;

    -дополнение записей в файл;

    -корректировка записей.

     

     

     

     

    7.Описание работы программы (краткое руководство пользователя).

    При выборе работы с односвязным списком появится подменю:

    Примечание: Так как программа была разработана в среде Borland C++ версии 5.2. американская версия, которая не русифицирована и не принимает кодов ASCII, все руководства будут выводится на экран русскими словами, но латинскими буквами. Просим извинения за неудобства чтения.

    Для запуска программы надо найти и запустить файл с именем cursovoi.cpp. После запуска файла в окне MS DOS выведется сначала шапка курсового проекта:

     

    KURSOVAY RABOTA                                             [Курсовой работа]

    Na  temu: BAZA DANNIX ‘AVTO SALON’ [На тему “База данных автосалона”]

    VIPOLNIL STUDENT 2 KURSA GR. IP-04-6R [Выполнил студент 2курса гр. Ип-04-6р]

    BURANBAEV BERIK                  [Буранбаев Берик]

     

    После этого для продолжения работы надо нажать Enter. Далее появится главное меню:

    REGIM RABOTI:                                             [режим работы]

    1) NACHAT’ RABOTU                                   [ Работа с файлом]

    2)Exit                                                               [Выход]

    Vach vibor:                                                      [Ваш выбор]

     

    Для работы с файлом надо набрать цифру 1, для работы с односвязным списком – цифру 2, для выхода из программы – цифру 3. После этого надо нажать Enter.

     

     

    При выборе работы с файлом появится подменю:

    Vidy raboti s failom:                                [Виды работ с файлом]

    1)Sozdanie faila                                       [1) Создание файла]

    2)Dopolnenie zapisei v fail                      [2) Дополнение записи в файл]

    3)Korrektirovka zapisei                           [3) Корректировка записи]

    4)Udalenie zapisei iz faila                        [4) Удаление записи]

    5)Pechat faila                                           [5) Печать файла]

    6)Vozvrat v osnovnoe menu                   [6) Возврат в основное меню]

    Vash vibor:                                              [Ваш выбор]

     

    Для создания файла надо набрать цифру 1, для дополнения записей в файл – цифру 2, для корректировки записей – цифру 3, для удаления записей из файла – цифру 4, для вывода записей из файла не экран – цифру 5, для возврата в основное меню – цифру 6. После этого надо нажать Enter.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Приложение 1

    8.Блок схема.

     

    Рис.1. Блок схема главной функции main()

     

    если vibor ==2
    vibor ?
    Да
    Вызов функции

    fail( )

    Рис. 2. Блок схема функции создания файла sozd()

     

    Закрываем поток

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Открываем файл на запись

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    9.Приложение 2

    1. Для запуска программы надо найти и запустить файл с именем Курсовая работа.cpp. После запуска файла в окне MS DOS выведется сначала шапка курсового проекта:

     

    2.После этого для продолжения работы надо нажать Enter. Далее появится главное меню:

     

    Для того чтобы начать работу, надо набрать цифру 1, для выхода из программы – цифру 2. После этого надо нажать Enter.

     

    3.При выборе начать работу  появится подменю:

     

    4.И при необходимости нужная информация  отразится в виде таблицы:

     

     

     

     

     

     

     

    1. Приложение 3

    Главный модуль kurs.cpp:

     

    #include <fstream.h>

    #include <stdlib.h>

    #include <ctype.h>

    #include <conio.h>

    #include <stdio.h>

    #include <new.h>

    #include <string.h>

    #include <iomanip.h>

    #include <mylib1.h>

    main ( )

    {

    clrscr();

    textcolor(15);

    textbackground(17);

    cout   <<«n»

    << »                              KURSOVAY RABOTAn»

    << »                     NA  TEMU: BAZA DANNIX ‘AVTO SALON’n»

    << »                VIPOLNIL STUDENT 2 KURSA GR. IP-04-6Rn»

    << »                              BURANBAEV BERIKn»;

    cout   << » n»;

    pause();

    do

    {

    clrscr();

    cout << «REGIM RABOTI:n»;

    cout << » n»;

    cout << «1)NACHAT’ RABOTUn»;

    cout << «2)EXITn»;

    cout << «VACH VIBOR: «;

    cin >> vibor;

    clrscr();

    switch (vibor)

    {

    case ‘1’:

    clrscr();

    fail( );

    break;

    }

    }  while (vibor!=’2′);

     

    /*ochistka(nach);

    delete nach; */

    cout << «nThe End.»;

    return 0;

    }

     

     

     

    Заголовочный модуль mylib1.h :

    //  mylib1.H

     

    struct predpr

    {

    char nazva[25];

    float valprod;

    int kolrab;

    float proizv;

    };

     

    predpr ved;

    char otv;

    char vibor;

    fstream nab;

     

    void vvod(predpr *p);

    void sozd(fstream *q);

    void pech(fstream *q);

    void dopolnen(fstream *q);

    void korr(fstream *q);

    void iskl(fstream *q);

    void pause();

    /////////////////////////////////////////////////////////////////////////

    void fail()

    {

    do

    {

    clrscr();

    cout << «Avto salon:n»;

    cout << «1)ZAPOLNENIE FAILAn»;

    cout << «2)DOPOLNENIE DANNIX V FAILn»;

    cout << «3)IZMENENIE DANNIXn»;

    cout << «4)UDALENIE ZAPISEI IZ FAILAn»;

    cout << «5)PROSMOTR FAILAn»;

    cout << «6)VOZVRAT V MENUn»;

    cout << «Chto vi viberite?: «;

    cin >> vibor;

    clrscr();

     

    switch (vibor)

    {

    case ‘1’:

    clrscr();

    sozd(&nab);

    pause();

    break;

     

    case ‘2’:

    clrscr();

    dopolnen(&nab);

    pause();

    break;

     

    case ‘3’:

    clrscr();

    korr(&nab);

    pause();

    break;

     

    case ‘4’:

    clrscr();

    iskl(&nab);

    pause();

    break;

     

    case ‘5’:

    clrscr();

    pech(&nab);

    pause();

    break;

     

    }

    }

    while (vibor!=’6′);

    }

    ////////////////////////////////////////////////////////////////////////////

    void sozd(fstream *q)

    {

    predpr vedread;

    int kol,k=1;

    char fname[8],*name;

    clrscr();

    cout << «IMYA FAILA? : «;

    cin >> fname;

     

    q->open(fname, ios::out|ios::binary|ios::noreplace);

    if (!*q) {

    cout<<«FAIL S TAKIM IMENEN UZE EST’!n»;

    cout<<«VOSPOLZUYTES DRUGOI FUNKZIEY’!n»;

     

    return; }

    do {

    clrscr();

    vvod(&ved);

    k=1;

    name=ved.nazva;

    q->seekp(0, ios::end);

    kol=q->tellp()/sizeof(predpr);

    if (*q)

    {

    if (kol==0)

    q->write( (char*)&ved, sizeof(ved) );

    else

    {q->close();

    q->open(fname, ios::in|ios::binary);

    for (int i=0; i<kol; i++)

    {

    q->read( (char*)&vedread, sizeof(vedread) );

    if (strcmp(vedread.nazva,name))

    k++;

    }

    if (k!=kol)

    {

    q->close();

    q->open(fname, ios::app|ios::binary);

    q->write( (char*)&ved, sizeof(ved) );

    }

    else

    {

    cout<<«DANNIE NE MOGUT BIT SOHRANENIn»;

    cout<<«Tacaia familia uje sozdanan»;

    }

    }

    }

     

    cout << «PRODOLZIT VVOD?(Y/N)  «;

    cin >> otv;

    }

    while ((otv!=’N’)&&(otv!=’n’));

    q->close();

    }

    ////////////////////////////////////////////////////////////////////////////

    void vvod(predpr *p)

    {

    char name[15] ;

     

    cout<<«nVVEDITE Markun»;

    cout << «Marka: (NE BOLEE 25 SIMVOLOV)  — «;

    cin >> p->nazva;

    cout << «Chena prodagi          — «;

    cin >> p->valprod;

    cout << «Cena zakup.              — «;

    cin >> p->kolrab;

    p->proizv=p->valprod-p->kolrab;/*?????????*/

    cout << «Pribil’     —  «;

    cout << p->proizv<<endl;

    }

     

    ////////////////////////////////////////////////////////////////////////////

    void pech(fstream *q)

    {

    int kol;

    float svalprod=0;

    int skolrab=0;

    float sproizv=0;

     

    clrscr();

    cout << «VVEDITE IM’YA FAILA: «;

    char fname[8];

    cin >> fname;

    q->open(fname, ios::app|ios::binary|ios::nocreate);

    if (!*q) {

    cout << «NET FAILA S TAKIM IMENEMn»;

    return; }

     

    q->seekp(0, ios::end);

    kol=q->tellp()/sizeof(predpr);

    q->close();

     

    q->open(fname, ios::in|ios::binary);

    if (*q)

    { clrscr();

    cout<<«—————————————————————-n»;

    cout<<«| N |     Marka           |  Cena p.  |   Cena z. | Okup.pr  |n»;

    cout<<«|p/p|                     |           |           |          |n»;

    cout<<«—————————————————————-n»;

    for (int i=0; i<kol; i++)

    { q->read( (char*)&ved, sizeof(ved) );

    cout<<«|»;

    cout<<setw(3)<<(i+1)<<«|»;

    cout.setf(ios::left);

    cout<<setw(21)<<ved.nazva<<«|»;

    cout.setf(ios::fixed);

    cout.setf(ios::right);

    cout<<setprecision(2);

    cout<<setw(11)<<ved.valprod<<«|»;

    svalprod+=ved.valprod;

    cout<<setw(11)<<ved.kolrab<<«|»;

    skolrab+=ved.kolrab;

    cout<<setw(10)<<ved.proizv<<«|»<<endl;

    sproizv+=ved.proizv;

    }

    cout<<«—————————————————————n»;

    cout<<«|   |             VOBSHEM:|»;

    cout<<setw(11)<<svalprod<<«|»;

    cout<<setw(11)<<skolrab<<«|»;

    cout<<setw(10)<<sproizv<<«|»<<endl;

    cout<<«—————————————————————n»;

     

    }

    q->close();

    //    cout.unsetf();

    }

    ///////////////////////////////////////////////////////////////////////////

    void pause()

    {

    cout << «DLA PRODOLGENIA NAGMITE «Enter»n»;

    while ( getch() != 13) ;

    }

    ////////////////////////////////////////////////////////////////////////////

    void dopolnen(fstream *q)

    { char otv;

    predpr vedread;

    int kol,k=1;

    clrscr();

    cout << «VVEDITE IM’YA DOPOLN’AEMOGO FAILA: «;

    char fname[8],*name;

    cin>>fname;

    q->open(fname, ios::app|ios::binary|ios::nocreate);

    if (!*q) {

    cout<<«NET FAILA S TAKIM IMENEM!n»;

    return; }

    do

    {  vvod(&ved);

    k=1;

    name=ved.nazva;

    q->seekp(0, ios::end);

    kol=q->tellp()/sizeof(predpr);

    if (*q)

    {

    q->close();

    q->open(fname, ios::in|ios::binary);

    for (int i=0; i<kol; i++)

    {

    q->read( (char*)&vedread, sizeof(vedread) );

    if (strcmp(vedread.nazva,name))

    k++;

    }

    if (k!=kol)

    {

    q->close();

    q->open(fname, ios::app|ios::binary);

    q->write( (char*)&ved, sizeof(ved) );

    }

    else

    {

    cout<<«DANNAYA ZIPIS’ NE MOZET BIT SOHRANENAn»;

    cout<<«Tacaya Familia uze estn»;

    }

    }

     

    cout << «PRODOLGIT DOPOLNENIE?(Y/N)  «;

    cin >> otv;

    }  while ((otv!=’N’)&&(otv!=’n’));

    q->close();

    }

    ////////////////////////////////////////////////////////////////////////////

    void korr(fstream *q)

    {

    char n[15];

    clrscr();

    cout << «VVEDITE IM’YA KORREKTIRUEMOGO FAILA: «;

    char fname[8];

    cin >> fname;

    q->open(fname, ios::in|ios::out|ios::binary|ios::nocreate);

    if (!*q) {

    cout << «NEVOZMOGNO OTKRIT FAIL!n»

    << «TAKOGO FAILA NETn»;

    return; }

    do

    {clrscr();

    cout << «Vvedite redactiruumyu marki: «;

    cin>>n;

    do

    {

    q->read( (char*)&ved, sizeof(ved) );

    } while (*q && strcmp(ved.nazva,n) );

     

    if (!strcmp(ved.nazva,n))

    { vvod(&ved);

    q->seekp(-streamoff(sizeof(predpr)),ios::cur);

    q->write( (char*)&ved, sizeof(ved) );

    }

    else

    cout << «Marka » << n << » NE NAIDENA!n»;

     

    q->seekp(0);

    cout << «PRODOLGIT KORREKTIROVKU?(Y/N)  «;

    cin >> otv;

    } while ((otv!=’N’)&&(otv!=’n’));

    q->close();

    }

    ////////////////////////////////////////////////////////////////////////////

    void iskl(fstream *q)

    {

    ofstream vspom;

    char isk[15];

    int col=0;

    char fname[8];

    cout << «VVEDITE IM’YA TREBUEMOGO FAILA: «;

    cin >> fname;

    clrscr();

    do

    {

    q->open(fname, ios::in|ios::binary);

    vspom.open(«vsp»,ios::out|ios::binary);

    if ( *q && vspom )

    {

    cout << «Vvedite udaliaimuy Marki: «;

    cin >> isk;

    do

    {

    q->read( (char*)&ved, sizeof(ved) );

     

    if (q->eof()) break;

    if (!strcmp(ved.nazva,isk))

    col=1;

    else

    vspom.write( (char*)&ved, sizeof(ved) );

    } while ( *q );

     

    q->close();

    vspom.close();

     

    if (col)

    {

    remove(fname);

    rename(«vsp», fname);

    cout << «ZAPIS UDALENA «<<endl;

    }

    else

    {  cout << «Tacaia familia nenaidenan»;

    remove(«vsp»);                      }

    }

    else

    {

    cout << «NEVOZMOGNO OTKRIT FAIL!n»

    << «NAVERNO NEPRAVILNO VVELI IM’YA FAILA!n»;

    break;                         }

    cout << «PRODOLGIT UDALENIE?(Y/N) «;

    cin >> otv;

    } while ((otv!=’N’)&&(otv!=’n’));

    }

     

    ///////////////////////////////////////////////////////////////////////////

     

     

     

     

     

     

     

     

     

    10.Заключение.

    В процессе выполнения данной курсовой работы была разработана программа, чтобы упростить сотруднику автосалона быстрое и удобное нахождение данных об автомобиле, интересующая конкретного покупателя, при помаши алгоритмическом языке программирования Си ++. В ходе самостоятельной работы был изучен язык Си++, его три основные составляющие:

    В процессе работы над курсовым проектом была достигнута основная цель написания программы – закрепление и улучшение фундаментальных теоретических знаний в области структурно-модульного  программирования и получение навыков разработки  программ на языке высокого уровня – С++.

    Также изучили работу с динамическими структурами данных (односвязные, двухсвязные списки, стеки очереди) на примере работы с односвязным списком. Получили навыки по работе с файлами. Освоили методы структурно-модульного программирования, разбивая программу на модули.

    Столкнувшись впервые C++, я испытал массу трудностей, часть трудностей до сих пор не преодолена мной. Непривычность среды, да даже не среды, а  вообще незнания визуального языка, и привычка писать на стандартных языках программирования  Pascal, Basic сделали мою работу очень медленной и сложной, даже та подробная литература, которая была у меня, и которую, я использовал, практически неотрывно мало помогала. Имея некоторое знакомство с языком  Pascal, и проведя сравнение с C++ , я бы сказал, что среда  C++ значительно сложнее для восприятия, чем Pascal.

    Многим может показаться, что программировать на С++  это просто,  но на самом деле, как я понял в процессе разработки этой программы, это довольно сложно, хотя у меня под рукой был учебник Уолтера Савича “ С++ во всей полноте”, на которого  я опирался в процессе разработки курсовой работы,  я встретился со многими трудностями лицом к лицу. Очень хочется верить что я найду в себе силу воля и терпения, чтобы  более подробно для себя разобраться с языком С++, и  писать на нем профессиональные, много функциональные программы.  Первый шаг сделан, теперь нужно  развиваться и  совершенствоваться. Довести написание программ до профессионального уровня.

    11.Спипок используемой литературы.

    1. Уолтер Савич “ С++ во всей полноте” Москва 2005.
    2. Браткевич В.В., Лукашева Л.И.,Перколаб Ю.В., Основы программирования и алгоритмические языки (язык программирования С++). Часть 1. Конспект лекций. Харьков: Изд.ГГЭУ,2001 г.

    3..Страуструп. Язык программирования С++, 3-е изд.Пер. с англ. – СПб.; М.: “Невский диалект” – Издательство БИНОМ”, 1999 г

    4.Фридман А.Л. Основы объектно – ориентированного программирования на языке С++.—М.: Горячая линия – Телеком, Радио и связь, 1999 г

    5.Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++. – Харьков: “Фолио”, 2004

    6.Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: “Питер”, 2002.

    7.Хьюз Дж., Мичтом Дж. Структурный подход к программированию. М.: Мир, 1980.

    8.Шнейдерман Б. Психология программирования. — М.: «Радио и связь», 1984.

    9.Буч Г. Объектно-ориентированное проектирование с примерами применения: пер. с англ. — М.: Конкорд, 1992.

    10.Зелковец М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения. — М.: Мир, 1982.

    11.Зиглер К. Методы проектирования программных систем. — М.: Мир, 1985.

    12.Кауфман В.Ш. Языки программирования. Концепции и принципы. М.: Радио и связь, 1993.

    13.Кнут Дональд, Эрвин. Искусство программирования, том 1. Основные алгоритмы, 3-е издание. : Пер. с англ. : Уч. Пос. – М.: “Вильямс”, 2

  2. Основная часть
    • Создание макросов
    • Создание групп макросов
    • Создание макроса из окна Конструктора макроса
    • Запуск макроса из окна базы данных
    • Запуск макроса с помощью кнопки на панели инструментов
    • Запрос в режиме таблицы
    • Связывание макросов с событиями
    • Связывание макроса с кнопкой
    • Вызов приложений и управление ими
    • Запуск прикладных программ с параметрами
  3. Заключение
  4. Приложение
  5. Список литературы
  6. Введение

Использование макросов в базе данных             Microsoft Access

С помощью макросов можно выполнить практически все действия над объектами Access. Существенной особенностью Access по сравнению с такими компонентами Microsoft Office, как Word и Excel, является возможность с помощью макросов и модулей VBA Определять реакцию приложения на различные события в формах и отчетах, такие как нажатие кнопок, изменения данных, открытие и закрытие форм и отчетов, получение формой или элементом управления формы фокуса и т. д.

Макрос в Access представляет собой структуру, состоящую из одной или нескольких макрокоманд, которые выполняются либо последовательно, либо в порядке, заданном определенными условиями. Набор макрокоманд в Access очень широк, с помощью макросов можно реализовать многое из того, что позволяют сделать процедура на VBA. Каждая макрокоманда  имеет определенное имя и, возможно, один или несколько аргументов, которые задаются пользователем. Например, при использовании макрокоманды ОткрытьФорму в качестве аргументов необходимо задать, по крайней мере, имя открываемой формы и режим вывода ее на экран.

В Microsoft Access 2000 содержится список макрокоманд, сгруппированных по категориям: работа с данными в формах и отчетах; выполнение команд, макросов, процедур и запросов; работа с объектами; импорт/экспорт данных и объектов  и прочие. В категорию ” ” собранны все макрокоманды, которые позволяют влиять на интерфейс приложения.

Действия, которые могут быть выполнены с помощью макросов, очень разнообразны. Даже если вы не будете исполь­зовать макросы в своих приложениях, имеет смысл изучить эти макро­команды, поскольку их можно использовать и в процедурах VBA.

Использование макросов оправдано тем, что их легко создавать, и для этого не нужно изучать синтаксис языка программирования. Как будет показано в следующем разделе, для создания макроса требуется знать лишь основные приемы работы в Microsoft Access и Windows, такие как перетаскивание объектов из окна База данных в специальное окно – Конструктор макросов, выбор действия из списка и ввод выражений в ка­честве аргументов макрокоманды. Поэтому, если очень не хочется изучать синтаксис языка VBA или это представляется слишком трудным, смело применяйте макросы, и вы получите приложение с достаточно большими функциональными возможностями.

Основное назначение макросов — это создание удобного интерфейса приложения: чтобы формы и отчеты открывались при нажатии кнопок в форме или на панели инструментов или же привычным выбором команды меню; чтобы при открытии приложения пользователь видел на экране не окно База данных, наполненное множеством таблиц, запросов, форм и отчетов, а некую понятную форму, с помощью которой можно было бы сразу производить желаемые действия и т. д.

С помощью макросов можно создать удобные меню и панели инструментов для приложения.

Однако использование макросов имеет и некоторые недостатки:

  • Возможности макрокоманд ограничены по сравнению с возможностями языка VBA, поэтому в ряде случаев без программирования на VBA не обойтись, хотя сначала нужно быть уверенным, что эти дополнительные возможности действительно нужны. Язык VBA предоставляет более ши­рокие возможности для работы с данными, позволяет использовать меха­низм программирования объектов для связи с другими приложениями, вызывать функции из библиотек динамической загрузки (DLL) Windows и создавать собственные специализированные функции.
  • Макросы можно использовать практически везде, где используются про­цедуры VBA, однако процедуры VBA, как правило, выполняются быстрее.
  • Макросы являются объектами, существующими отдельно от форм и отче­тов, в которых они используются, поэтому, когда этих объектов стано­вится очень много, их поддержка становится достаточно затруднитель­ной. Процедуры обработки событий VBA, используемые в формах и от­четах, являются неотъемлемой частью этих форм и отчетов, и в этом есть свои преимущества. Например, при переносе форм и отчетов из одной базы данных в другую с ними автоматически переносятся связанные процедуры.

Тем не менее, во многих случаях использование макро­сов вполне оправдано, т. к. это существенно упрощает и ускоряет разработ­ку приложения. Их можно использовать при создании небольших однополь­зовательских приложений, хотя при создании многопользовательских или клиент-серверных приложений, где скорость работы приложения критична, лучше применять VBA.

2. Основная часть.

2.1. Создание макросов

В Microsoft Access существует специальное средство для создания макросов – Конструктор макросов. Рассмотрим процесс создания макроса с помощью Конструктора.

Конструктор макросов

Открыть окно Конструктор макросов для создания нового макроса можно двумя способами:

  1. Раскройте список макросов в окне База данных, щелкнув ле­вой кнопкой мыши по ярлыку Макросы, и нажмите кнопку Создать в верхней части окна.

Рис. 1.  Кнопка для создания макроса

  1. Щелкните по стрелке вниз на кнопке Новый объект на па­нели инструментов База данных и выберите элемент Макрос.

Рис. 2.  Новый объект на па­нели инструментов База данных

Окно Конструктора построено аналогично Конструктору таблиц, т. е. разде­лено по горизонтали на две части — панель описаний и панель аргументов.

Рис. 3.  Конструктор макросов и панель аргументов

Верхняя часть окна Конструктора — панель описаний — состоит из не­скольких столбцов. По умолчанию на этой панели выводится два столбца: Макрокоманда и Примечание. Панель описаний позво­ляет определить последовательность макрокоманд, из которых состоит макрос.

Строка в столбце Макрокоманда представляет собой поле со спи­ском, в котором можно выбрать нужную макрокоманду.

Строка в столбце Примечание — это обычное текстовое поле, в которое можно ввести комментарий, описывающий выполняемое действие.

Когда поле Макрокоманда заполнено, в нижней части окна Конст­руктора макроса появляется панель аргументов, которая служит для ввода значений аргументов соответствующей макрокоманды. Список полей на этой панели зависит от выбранной макрокоманды и может отсутствовать, если макрокоманда не имеет аргументов. Таким образом, при создании мак­росов не нужно запоминать список аргументов для каждой макрокоманды.

На панели аргументов имеются два поля, которые позволя­ют задать имя фильтра и условие отбора записей. Для того чтобы задать условие отбора записей, можно воспользоваться построителем выражений.

Такой макрос можно использовать в форме или отчете для того, чтобы ограничить число отображаемых записей.

Существует еще один очень простой способ ввода макрокоманды. Допус­тим, нужно создать макрос, который должен открывать форму “Вычисление” в приложении “db1”. Для этого в окне База данных нужно щелкнуть по Форме, затем, используя панель инструментов (способ 2), открыть Конструктор макросов и перетащить с помощью мыши Форму “Вычисление” в поле Макрокоманда окна Конструктора макроса.

Тогда в поле Макрокоманда автоматически появится макрокоманда ОткрытьФорму, а на панель аргументов автоматически заполняются поля: в поле Имя формы появляется имя формы “Вычисление”, в поле Режим – значение по умолчанию Форма, в поле Режим окна – значение Обычное. Остальные поля останется пустыми.

Кроме того, можно сделать записи в этой форме недоступными для изменений, для этого в поле Режим данных нужно ввести значение Только чтение.

Рис. 4.  Автоматическое создание макрокоманд  путем перетаскивания объектов

Аналогично можно создавать макрокоманда, перетаскивая из окна База данных таблицы, запросы, отчеты и другие макросы. При этом будут создаваться соответствующие макрокоманды: ОткрытьТаблицу, ОткрытьЗапрос, ОткрытьОтчет, ЗапускМакроса.

Для ввода аргументов макрокоманды чаще всего требуется выбрать значения из списков или вводить выражения. Для ввода выражений можно воспользоваться построителем выражений, кнопка которого находится справа от поля аргумента. Еще одна кнопка построителя выражений находится на панели инструментов. Как и в других случаях, перед выражением нужно ставить знак равенства (=). Исключения составляют аргумент Выражение  макрокоманды задать Значение и аргумент Число повторений макрокоманды ЗапускМакроса. Если ввести знак равенства перед выражением, задающим значение этих аргументов, то оно будет вычисляться дважды, что может привести к нежелательным результатам.

Если в качестве аргумента макрокоманды необходимо задать имя объекта базы данных, то его можно либо ввести с помощью клавиатуры, либо выбрать из раскрывающегося списка, либо указать название объекта, перетащив его из окна базы данных.

Итак, созданная нами макрокоманда будет открывать форму “Вычисление” в режиме Только чтение и показывать в ней только менеджеров по продажам. Как уже было сказано ранее, макрос может содержать последовательность из нескольких макрокоманд. Поэтому в этом же макросе в следующей строке мы выберем макрокоманду Сообщение, которая после открытия формы будет отображать диалоговое окно с сооб­щением о том, какие клиенты представлены в форме. Для этого введем в поле Сообщение на панели аргументов текст сообщения, например

Установлен фильтр по Фамилиям, остальные поля можем оставить без изменения. Аргумент Сигнал определяет, будет ли вывод сообще­ния сопровождаться звуковым сигналом. Аргумент Тип определяет вид диалогового окна сообщения. Аргумент Заголовок позволяет за­дать текст, который будет выведен в заголовке окна сообщения.

Если база данных большая, отбор записей в форме может занять некоторое время, поэтому рекомендуется вывести на экран курсор в форме песочных часов, который будет показывать, что идет обработка данных. Чтобы сде­лать это, воспользуемся макрокомандой ПесочныеЧасы. Макро­команды в макросе выполняются в той последовательности, в которой они записаны в столбце Макрокоманда, т. е. сверху вниз. Макрокоманду ПесочныеЧасы нужно поставить первой, т. к. курсор должен из­мениться перед выводом формы. Таким образом, нам нужно вставить новую строку на панели описаний. Для этого установим курсор в первую строку панели и нажмем кнопку Добавить строки на панели инстру­ментов или просто клавишу <Insert>. Появляется пустая строка. В этой строке в поле Макрокоманда выберем макрокоманду ПесочныеЧасы. В поле Включить панели аргументов появится значение Да, установленное по умолчанию, что нам и нужно. Чтобы вернуть первоначальный вид указателю мыши, в конце созданного макроса нужно ввести такую же макрокоманду ПесочныеЧасы, но со зна­чением Нет аргумента Включить.

Строго говоря, эту макрокоманду лучше поставить перед макрокомандой вывода сообщения на экран. Это легко исправить, поскольку макрокоманды легко меняются местами с помощью мыши. Чтобы поменять две последние макрокоманды местами, выделите последнюю строку, щелкнув левой кноп­кой мыши по области выделения строк (слева в окне Конструктора) и пере­тащите строку вверх. Горизонтальная линия показывает место нового поло­жения строки. Отпустите кнопку мыши, когда эта линия окажется над предпоследней строкой.

Теперь остается только сохранить созданный макрос. Для этого можно вы­брать в меню Файл команду Сохранить как или нажать кла­вишу <F12>. Появится окно сохранения макроса. Введите в поле ввода имя макроса, соблюдая правила именования объектов Access, например, менеджеры по продажам.

2.2. Создание групп макросов

При разработке приложения с использованием макросов количество макро­сов может оказаться очень большим. Поэтому важно хорошо организовать доступ к нужным макросам. Для этого в одном объекте Макрос можно объединить несколько макросов. Например, рекомендуется все мак­росы, связанные с событиями в форме или отчете, объединить в отдельный объект, соответствующий данной форме или отчету. Для того чтобы можно было это сделать, каждый макрос группы должен иметь свое имя, а имя объекта Макрос будет являться именем группы макросов.

Чтобы создать группу макросов:

  • Откройте Конструктора макросов.

Рис 5. Открытие Конструктора макросов

  • Нажмите кнопку Имена макросов на панели инструментов. На панели описаний в окне Конструктора макросов появится еще один столбец Имя макроса.

Рис 6. Дополнительный столбец “Имя Макроса”

  • В этот столбец введите имя первого макроса. Остальные поля данной строки лучше оставить пустыми — это облегчит перемещение и копиро­вание макрокоманд.

Рис 7. Ввод в столбец первого имени макроса

  • Начиная со следующей строки, введите все макрокоманды макроса и со­ответствующие аргументы для каждой макрокоманды.

Рис 8. Ввод всех макрокоманд и  аргументы для каждой макрокоманды в макро

Для указания конца макроса не требуется отдельной макрокоманды. Access продолжает выполнение мак­роса, входящего в группу, пока не обнаружит строку, которая содержит имя в столбце Имя макроса, либо пока не дойдет до последней строки окна макросов.

При обработке макроса пустые строки игнорируются, поэтому их удобно использовать для разделения макросов в группе. Этот прием, а также ввод комментариев для сложных макросов, состоящих из большого числа макрокоманд, позволяет улучшить читаемость макросов.

Для запуска одного из макросов группы используется полное имя для ссылки на макрос. Полное имя макроса формируется таким образом: имяГрупы.имяМакроса.

2.3.  Запуск макроса из окна Конструктора макроса

Этот способ применения для тестирования только что созданного или исправленного макроса. Если макрос в окне Конструктора макроса один, то для его запуска нужно просто нажать на кнопку Запуск  на панели инструментов или выбрать команду Запуск, По шагам (последний способ позволяет отладить макрос). Однако если макросов не­сколько, то с помощью этой кнопки или команды можно запустить только первый макрос в группе. Чтобы запустить любой другой макрос из группы, придется воспользоваться командой меню Сервис, Марко, Выполнить мак­рос.

Если вы часто используете этот способ запуска макроса, имеет смысл застроить панель инструментов, добавив на нее стандартную кнопку Запуск макроса. Она эквивалентна выполнению команды меню.

2.4.  Запуск макроса из окна базы данных

Чтобы запустить макрос из окна База данных  щелкните по ярлы­ку Макросы на панели объектов, найдите в списке нужный макрос и дважды щелкните по нему кнопкой мыши или нажмите кнопку Запуск на панели инструментов окна базы данных. Последний способ подхо­дит, только если в выбранном объекте содержится один макрос. В против­ном случае нужно воспользоваться универсальным способом выполнения макроса, описанным выше.

2.5.  Запуск макроса

с помощью кнопки на панели инструментов

Прямые способы запуска макросов являются простыми, но не самыми бы­стрыми. Существуют более удобные и быстрые способы. Наиболее удобный с нашей точки зрения способ запуска макроса — это создание специальной кнопки на панели инструментов. Правда, панелей инструментов очень много, причем в разных режимах работы с Access на экране появляются разные панели. Поэтому наиболее разумным является создание специальной панели инструментов, на которую вы можете поместить все нужные кнопки. Тем не менее, операция добавления специальной кнопки на стандартную панель инструментов чрезвычайно проста.

Чтобы добавить кнопку на стандартную панель инструментов Access:

  • Щелкните правой кнопкой мыши по панели инструментов и выберите в контекстном меню команду Настройка.
  • В появившемся диалоговом окне Настройка раскройте вкладку Панели инструментов.
  • Установите флажок для одной из стандартных панелей инструментов, например, Запрос в режиме таблицы, чтобы она отобра­зилась на экране.
  • Щелкните по ярлыку Макросы на панели объектов в окне База данных и найдите нужный макрос.
  • Перетащите макрос с помощью мыши на панель инструментов

2.6. Запрос в режиме таблицы.

На панели инструментов появится кнопка с характерным значком макроса. Если вы подержите несколько секунд курсор на этой кнопке, то увидите подсказку Запуск макроса <имя макроса>. Вы можете таким образом переместить на панель инструментов созданный нами макрос «Open». Теперь всякий раз, когда эта панель инструментов будет отображаться на экране, вам будет дос­тупна кнопка запуска этого макроса.

Рис 9. Кнопка запуска макроса на панели инструментов

Теперь рассмотрим создание специальной панели инструментов и размеще­ние на ней кнопки вызова макроса.

  • Щелкните по ярлыку Макросы на панели объектов в окне База данных и выделите нужный макрос.
  • Выберите команду Сервис, Макрос, Создать панель инструментов из мак­роса. На экране появляется пустая панель инструментов.

Рис 10. Пустая панель инструментов

  • Перетащите с помощью мыши нужный макрос на эту панель.

На панели появляется кнопка с уже знакомым значком макроса.

Рис 11. Значок макроса

Кнопка получает такое же название, как имя макроса, для которого она создана.

Тот же самый результат можно получить другим способом:

  • Откройте окно Настройка, щелкнув правой кнопкой мыши по панели инструментов.
  • В появившемся диалоговом окне раскройте вкладку Панели инструментов и нажмите кнопку Создать.

Рис 12. Диалоговое окно “Настройка” с вкладкой “Панель Инструментов”, кнопка “Создать”

  • В появившемся диалоговом окне введите имя новой панели инструмен­тов мои макросы и нажмите кнопку ОК. Появится пустая панель инстру­ментов.

Рис 13. Ввод имени новой Панели Инструментов

  • Выберите вкладку Команды.
  • Выберите в списке Категории значение Все макросы, а в списке Команды найдите макрос «Open».
    • Перетащите этот макрос с помощью мыши на пустую панель инструмен­тов.

Рис 14. Помещение макроса на пустую Панель Инструментов

Теперь посмотрим, как можно изменить внешний вид этой кнопки.

В диалоговом окне Настройка нажмите кнопку Изменить выде­ленный объект или щелкните правой кнопкой мыши по только что созданной кнопке. Отобразится контекстное меню.

Рис 15. Контекстное меню только что созданной кнопки

Видим, что данный режим отображения кнопки помечен, как Основной стиль. Вообще говоря, на кнопке можно помес­тить не только значок, но и текст или текст и значок вместе. Если вы хотите поместить на кнопке текст (название кнопки), введите этот текст в поле Имя. По умолчанию в этом поле отображается имя макроса.

Вы можете поместить на кнопку другой значок, выбрав понравившуюся картинку на специальной панели. Для отображения набора стандартных значков выберите в контекстном меню команду Выбрать значок для кнопки. Если же ни одна из картинок не подходит, можно выбрать наиболее близкий по оформлению значок, а потом исправить его в специальном редакторе. Чтобы открыть окно Редактор кнопок выберите в контекстном меню команду Изменить значок на кнопке.

Рис 16. Редактор кнопок

Наконец, можно просто скопировать понравившийся вам значок с другой кнопки.

Чтобы скопировать значок с одной кнопки на другую:

  • Откройте диалоговое окно Настройка и выделите ту кнопку на панели инструментов, с которой нужно скопировать значок.
  • Нажмите кнопку Изменить выделенный объект в диа­логовом окне Настройка.
  • Выберите в контекстном меню команду Копировать значок на кнопке.
  • Выделите кнопку, значок которой нужно изменить.

Рис 17. Выбранный рисунок на кнопке для изменения

  • Нажмите кнопку Изменить выделенный объект в диа­логовом окне Настройка.
  • Выберите в контекстном меню команду Вставить значок для кнопки.

Рис 18. Контекстное меню

С помощью диалогового окна свойств кнопки можно изменить текст всплы­вающей подсказки и задать клавиши быстрого вызова.

Чтобы изменить текст всплывающей подсказки для кнопки на панели ин­струментов:

  • В режиме настройки выделите кнопку на панели инструментов. В диа­логовом окне Настройка нажмите кнопку Изменить выделен­ный объект.
  • Выберите в контекстном меню команду Свойства. Появится диалоговое окно свойств кнопки.

Рис 19. Свойство кнопки “Open”

  • Введите желаемый текст в поле Всплывающая подсказка.

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

Если нужно создать панель инструментов для вызова нескольких макросов, мы рекомендуем объединить эти макросы в одну группу (создание группы макросов было описано в предыдущем разделе). Создание такой панели ин­струментов можно осуществить с помощью одной команды Сервис, Макрос, Создать панель инструментов из макроса. Попробуйте сделать это для одной из групп макросов в базе данных «db1», например, «Open». С помощью указан­ной команды создается панель инструментов с кнопками для вызова каж­дого макроса из группы, причем на кнопках отображаются имена соответст­вующих макросов. Новая панель инструментов получает такое же имя, как имя группы макросов. При желании можно заменить текст на кнопках значками, как это было описано выше.

2.7.  Связывание макросов с событиями.

В базе данных хранится информация о состоянии её объектов. Любое изменение состояния формы или отчета называется событием. Каждый из этих объектов имеет свой набор событий.

С событиями удобно связывать макросы. Попробуем связать созданный нами макрос Сообщение с открытием базы данных:

  • Маркируйте макрос Размещение на экране в окне базы данных.
  • Выберите в меню Павка команду Переименовать и присвойте макросу Сообщение новое имя AutoExec (макрос с таким именем автоматически выполняется при загрузке базы данных). Вы можете произвольным образом использовать строчные и прописные литеры.

Теперь макрос связан с открытием базы данных. Таким образом автоматизируются операции, которые должны всегда выполняться в момент загрузки базы. При каждом открытии базы данных Accesss 2000 поверяет присутствует ли макрос с именем AutoExec, и, если находит, выполняет его. В противном случае открытие базы не сопровождается дополнительными действиями. Внутри одной базы данных может использоваться только один макрос AutoExec.

  • Чтобы проверить работоспособность макроса, закройте, а затем откройте базу данных.

Если имя AutoExec присвоено макрогруппе, то при открытии базы данных будет выполнен только первый макрос этой группы! Чтобы при загрузке базы последовательно приводились  в исполнение несколько макросов, введите в макрос AutoExec макрокоманду ЗапускМакроса, что позволит выполнить макрос с произвольным именем (имя задается аргументом) и вернуться к следующей за ЗапускМакроса макрокоманде в макросе AutoExec.

Макрос AutoExec не выполняется, если перед открытием базы данных нажать и удерживать клавишу [Shift].

2.8. Связывание макроса с кнопкой

Целесообразно создавать элементы управления (например, кнопки) для вызова макросов. Это значительно упрощает и ускоряет доступ к ним. Удобным местом для размещения таких элементов является заголовок или примечание формы.

В качестве упражнения попробуем связать с кнопкой макрос, который маркирует активную запись формы и копирует ее в буфер обмена:

  • Создайте макрос Копировать, состоящий из следующих макрокоманд

Макрокоманда                                                          Аргумент

ВыполнитьКоманду                                                   Select Record

ВыполнитьКоманду                                                    Copy

  • Сохраните макрос и закройте его окно.
  • Откройте форму Переключатель и активизируйте режим конструктора.
  • Вызовите команду Слева направо меню Окно.
  • Маркируйте макрос Копирование записи в окне базы данных и перетащите его в область заголовка проекта формы.

Рис 20. Перетаскивание макроса из окна базы данных в область заголовка проекта формы

Как только вы отпустите кнопку мыши, позиция кнопки для макроса зафиксируется. При необходимости ее размер можно изменить с помощью специальных манипуляторов. Перемещение кнопки осуществляется с помо­щью манипулятора, расположенного в левом верхнем углу маркировочной рамки.

Имя макроса автоматически появляется внутри кнопки. Если оно слиш­ком длинное, размер кнопки следует увеличить. Чтобы на кнопке была видна вся надпись, можно уменьшить размер шрифта или создать надпись, отли­чающуюся от имени макрокоманды. Редактирование надписи выполняется после щелчка на кнопке. Для выхода из режима редактирования достаточно щелкнуть вне кнопки.

Для изменения параметров управляющего элемента Кнопка надлежит выполнить на нем двойной щелчок мышью, вследствие чего откроется окно свойств, если до этого оно отсутствовало на экране.

Рис 21. Окно свойств кнопки

У каждого элемента управления свой список доступных событий. Однако действия при связывании всегда одинаковы. Например, чтобы связать неко­торый макрос с перемещением мыши по форме, следует в режиме конструк­тора выполнить двойной щелчок в свободной области вне примечания формы и задать для события Перемещение указателя имя связываемого макроса.

2.9. Вызов приложений и управление ими

С помощью макроса можно запустить из Access 2000 приложения Microsoft Office 2000, а также программы, работающие под управлением Windows 98, Windows NT или DOS (например, чтобы выполнить некоторые вычисления с помощью Excel 2000 или сделать небольшие заметки посредством редакторов Notepad и Word 2000). Вызов выполняется одинаково во всех случаях и заключается главным образом в указании имени запускаемой программы. Макрос для вызова прикладной программы можно связать с кнопкой формы, ускорив таким образом доступ к нужному приложению:

  • Создайте новый макрос. В первой строке введите макрокоманду ЗапускПриложения.
    • Рис 22. Создание макрокоманды “ЗапускПриложения”
  • В качестве значения аргумента Командная строка введите имя запускае­мой программы, например WinWord.
    • Рис 23. Командная строка с аргументом запускаемой программы WinWord
  • Сохраните макрос под именем Заметки.
    • Рис 24. Ввод имени макроса
  • Откройте форму Переключатель в режиме конструктора и перетащите макрос из окна базы данных в область заголовка формы.

Рис 25. Режим конструктора формы “Переключатель”

  • Активизируйте режим формы и щелкните мышью на кнопке Заметки. После запуска этого макроса (щелчком на кнопке Заметки в форме Переключатель) на экране появится окно текстового редактора Word 2000 пакета Microsoft Office Теперь пользователь может ввести свои заметки, распечатать или сохранить их.
    • Рис 26. Окно текстового редактора Word

При вызове программы всегда приводится полная спецификация ее файла. При этом вводить расширение не следует. Каталог, в котором хранится файл, необходимо указывать только в том случае, если он не задан командой PATH в файле AUTOEXEC.BAT. Например:

C:Program FilesNCnc

Как правило, при вызове прикладных программ, входящих в комплект поставки Windows 98, папка Windows указывается в команде PATH. Поэтому имя редактора в данном макросе приведено без указания каталога.

Следите за тем, чтобы после окончания сеанса работы редактор был закрыт корректно.

2.10. Запуск прикладных программ с параметрами

Запуская прикладные программы с помощью макрокоманды ЗапускПриложения, можно указывать ключи, которые обычно вводятся в командной строке после имени программы при запуске с уровня DOS. Эти ключи служат для задания режима работы прикладной программы. Если, к примеру, из макроса запускается редактор Word 2000, то параметр /t имя документа приме­няется для загрузки документа с указанным именем, который используется в качестве шаблона. Ключ /n указывается при запуске Word 2000 без открытия нового документа. Способ указания ключей в аргументе Командная строка такой же, как в командной строке DOS:

C:Program FilesMicrosoft Officefficewinword.exe /n

Использование ключей допускается при запуске большинства приклад­ных программ.

Вернемся к макросу, разработанному для вызова редактора Word 2000, и несколько модифицируем его. При каждом вызове редактора целесообразно использовать для заметок один и тот же документ (по умолчанию каждый вызов Word 2000 сопровождается открытием нового документа).

  • Перейдите в окно Word 2000 и вставьте в первую строку документа поля Date и Time.
    • Рис 27. Ввод даты и времени в текстовый редактор Word
  • Сохраните документ Word 2000 под именем Заметки в папке Мои доку­менты, не указывая расширение doc, и закройте окно Word
  • Маркируйте макрос Заметки в окне базы данных и активизируйте режим конструктора.
    • Рис 28. Режим Конструктора для макроса “Заметки”
  • Присвойте аргументу Командная строка значение WinWord Заметки и сохраните макрос.

Рис 29.  Ввод аргумента в Командную строку WinWord Заметки

При каждом новом вызове редактора в документ заметок вводятся

системная дата и системное время — таким образом, содержимое автомати­чески протоколируется.

Заключение

В своей дипломной работе, я, исследовал возможности СУБД Access 2000 по созданию макросов. Макрос в Access представляет собой структуру, состоящую из одной или нескольких макрокоманд, которые выполняются либо последовательно, либо в порядке, заданном определенными условиями. Набор макрокоманд в Access очень широк, с помощью макросов можно реализовать многое из того, что позволяют сделать процедура на VBA. Каждая макрокоманда  имеет определенное имя и, возможно, один или несколько аргументов, которые задаются пользователем.

Список литературы

  1. И. Харитонова, В. Михеева, Microsoft Access 2000 в подлиннике.
  2. В. Пасько, Для пользователей ПК русифицированная версия Access