Десять шагов в microsoft_access (835787), страница 10
Текст из файла (страница 10)
Теперьоткроем новый запрос в режиме конструктора, нажмем правую клавишумышки в области таблиц запроса и выберем пункт меню «Добавить таблицу». В диалоговом окне перейдем на заставку «Запросы», добавим«расход_наличие» и закроем окно. Установим связь между запросамипо полю «товар» (рис. 110). Мы уже знаем, что параметры объединенияможно получить, щелкнув дважды левой клавишей по линии, связывающей таблицы или запросы. По умолчанию будут объединены толькоте записи, в которых связанные поля обеих таблиц совпадают.
Это значит, что если некоторый товар имеется в таблице «приход», но не фигурирует нигде в таблице «расход», то в запросе «наличие» он не будетотражен. Это нас совершенно не устраивает. Ведь товар в наличии имеется! Поэтому мы должны изменить параметры объединения, установивпереключатель в положение «Объединение всех записей из «приход_наличие» и только тех записей из «расход_наличие», в которыхсвязанные поля совпадают» (рис.
111). Теперь можете убедиться, чтолюбой товар, фигурирующий в приходе, но отсутствующий в расходе,будет отражен в запросе «наличие». В соответствующей ячейке Вы увидите «пробел». Однако фактически поле получит значение «Null», которое иначе называют «пустым значением». Это значение нельзя путать снулем или с пустой строкой.
Значение «Null» не равно никакому другому значению и поэтому не может участвовать в арифметических выражениях. Добавим в запрос «наличие» вычисляемое поле «наличие»:83наличие: [приход]-[расход].Рис. 111. Выбор параметров объединенияВ нашем случае это значит, что мы, вместо имеющегося в наличии количества товаров, получим опять поле со значением Null. Чтобы избежать подобных затруднений, воспользуемся функцией Nz().
Строка«Поле» в запросе примет вид:наличие: [приход]-Nz([расход]).Функция Nz() возвратит значение 0, если значение поля «расход» будетNull (рис. 112). Если мы хотим вместо нуля получать какое-либо другоезначение, мы введем это значение в качестве второго параметрафункции.Рис. 112. Запрос «наличие»Теперь осталось только создать отчет по наличию товаров. Вывод и печать отчетов по наличию товаров и средним ценам будет происходитьиз формы «Отчет о наличии товаров» (рис. 113).84Рис. 113.
Форма «Отчет о наличии товаров»9.4. Задание для самостоятельной работы. Теперь, когда создан запрос по расходу, содержащий среднее взвешенное значение цены каждого товара, Вам предлагается создать все отчеты по расходу, аналогичные соответствующим отчетам по приходу. Это большая, но крайне полезная работа.10. Шаг десятый. Диспетчер кнопочных формМы разработали набор отдельных объектов Microsoft Access. Но, пока,эти объекты существуют как бы сами по себе. Чтобы создать удобныйдля пользователя интерфейс с приложением, воспользуемся «Диспетчером кнопочных форм».10.1.
Создание кнопочной формы. В Access-97 диспетчер кнопочныхформ вызывается командой меню «Сервис Надстройки Диспетчеркнопочных форм». В версиях, начиная с 2000-й, – командой «СервисСлужебные программы Диспетчер кнопочных форм». При первомвызове «Диспетчера» на экране появится окно с сообщением: «Не удается найти кнопочную форму в этой базе данных. Создать кнопочнуюформу?» Подтвердим желание создать форму. На экране появится окнодиспетчера кнопочных форм с одной страницей. Нажмем кнопку «Из-85менить» и введем вместо предложенного системой новое имя страницыкнопочной формы – «Склад» (рис. 114) и приступим к созданиюкнопок.Рис. 114. Создание страницы кнопочной формыНажмем «Создать».
Первой кнопке поставим в соответствие текст«Приход», команду «Открытие формы в режиме редактирования» иформу «приход» (рис. 115).Рис. 115. Создание кнопокТочно так же создадим кнопки для открытия форм «расход», «отчет_приход», «отчет_расход», «отчет_наличие». Закроем страницу кнопочной формы, а затем и само окно диспетчера. Проверим форму в работе. В разделе «Формы» окна базы данных появилась новая форма. Мыимеем право переименовать ее. Дадим кнопочной форме имя «Главная».10.2.
Редактирование кнопочной формы. Прежде, чем вносить корректировки в кнопочной форме, войдем в раздел «Макросы», откроем«Макрос1» в режиме конструктора и создадим под именем «Выход изприложения» макрос, состоящий из одной-единственной макрокоманды«Выход». Еще раз откроем кнопочную форму и в первом диалоговомокне нажмем кнопку «Создать» и, таким образом, создадим новую страницу под именем «Справочники». С этой страницы в дальнейшем мыбудем вызывать формы для редактирования данных о поставщиках, потребителях и товарах.
Нажмем кнопку «Изменить» и создадим кнопки86для открытия в режиме редактирования форм «поставщики_лента»,«потребители_лента» и «товары», а затем кнопку «Главное меню» дляперехода к первой странице кнопочной формы «Склад».Рис. 116. Страница «Склад» кнопочной формыЗакроем страницу, выделим страницу «Склад» и откроем ее для изменения. На этой странице создадим кнопку с надписью «Справочники» ипоставим ей в соответствие команду «Переход к кнопочной форме»,ниже выберем в меню страницу кнопочной формы «Справочники».Также создадим кнопку «Выход», которая будет выполнять запуск макроса, созданного нами под именем «Макрос1.выход из приложения».При нажатии на эту кнопку будет осуществляться выход не только избазы данных, но и из Microsoft Access.
Если теперь Вы войдете в раздел«Таблицы», то обнаружите новую таблицу, которая содержит всю информацию о кнопочной форме. Эту таблицу переименовывать нельзя ивообще лучше не трогать! Кнопочную форму можно редактировать врежиме конструктора, как и любую другую.
В частности, Вы можетевставить рисунок, соответствующий назначению приложения. Проверьте форму «Главная» в работе (рис. 117). Теперь приложение готово кэксплуатации.10.3. Последние штрихи. Таким образом, мы завершили разработкуприложения. Многое можно было сделать лучше. И тем не менее при-87ложение справляется со своими задачами – а это главное! Напоследок –несколько советов.Рис. 117. Кнопочная формаВ процессе разработки приложения мы не раз редактировалитаблицы, запросы, формы и другие объекты базы. После корректировокфайл с базой может содержать много ненужной информации. В частности, записи, удаленные в таблице, физически продолжают храниться вфайле.
Для удаления ненужной информации достаточно выбрать пунктменю «Сервис Служебные программы Сжать базу данных».Если Вы хотите, чтобы Ваше приложение работало не только наВашем компьютере, то не следует создавать его в последней версии Access. Так, приложение, разработанное на Access-97, можно всегда преобразовать для работы с Access-2000 и выше, но обратное преобразование выполняется далеко не всегда. Для преобразования базы используют команду меню «Сервис Служебные программы Преобразоватьбазу данных».
Прежде, чем перенести приложение на другой компьютер, следует войти в раздел «Модули» и откомпилировать все входящиев приложение модули.88Окно базы данных необходимо для разработки приложения, нопользователю вовсе не обязательно его видеть. Кроме того, хотелось бысразу после запуска приложения видеть главную кнопочную форму. Дляэтого выберем пункт меню «Сервис Параметры запуска» и в открывшемся окне в поле под заголовком «Форма» установим имя «Главная». Кроме того, погасим все флажки, отвечающие за вывод на экранменю, панелей и прочих объектов. Теперь двойным щелчком по значкуприложения будет запускаться нужная кнопочная (или другая заданная)форма. Если же Вы снова захотите войти в созданное приложение какразработчик, Вам достаточно войти в приложение, не отрывая левой руки от клавиши «Shift».Для защиты содержащейся в базе данных информации можноиспользовать пароль.
Для этого надо открыть приложение в монопольном режиме и командой меню «Сервис Защита Задать пароль базыданных» вызвать соответствующее диалоговое окно. Пароль решаетпроблему несанкционированного доступа, но не мешает пользователюпросматривать и изменять созданные Вами формы и другие объекты врежиме конструктора. Если Вы хотите лишить пользователя этого удовольствия, Вам придется в разделе «Служебные программы» создатьMDE-файл.Если Вы разрабатываете приложение, предназначенное для эксплуатации другими пользователями, есть резон хранить все таблицы вотдельной базе данных.
Для установки связей с таблицами, хранящимися в другой базе, используют команду меню «Файл Внешние данные Связь с таблицами». Это позволит Вам создавать новые версии приложения, не трогая таблиц с данными. Кроме того, такой подход удобенпри организации доступа к данным с нескольких компьютеров.Теперь Вы имеете все необходимые начальные навыки по созданиюприложений Microsoft Access. Остальное – дело опыта. Автору остаетсятолько пожелать Вам дальнейших успехов!89Список литературы1.2.3.4.5.6.Вейскас Дж. Эффективная работа с Microsoft Access 97.