РАБОТАЕМ С ДАННЫМИ | КОМПЬЮТЕРНАЯ ГАЗЕТА
Инструкции для визажистов Как и в любом другом деле, при конструировании таблиц соблюдается старая как мир последовательность операций: сначала проектирование, потом возведение каркаса, после чего наполнение данными, а затем, так сказать, отделочные работы. Широко распространенное мнение о необходимости форм для общения с данными не совсем верно, точнее - верно далеко не всегда. Обычно, если таблица простая, то есть имеет немного полей, все из которых легко умещаются на видимой области экрана монитора, и если вместе с данными из этой таблицы не нужно вводить или просматривать какие-то другие данные (что также не догма), то совершенно незачем тратить время на разработку специальных форм. В конце концов, таблица позволяет вводить данные, а значит вполне соответствует "задаче текущего момента". (c) Компьютерная газета | Одно плохо, сама по себе таблица имеет не слишком приглядный вид. Все столбцы, независимо от типа и размерности данных, имеют одинаковую ширину. Таким образом, на экран стандартного 14-и дюймового монитора влазит не более восьми столбцов, к тому же "длинные" данные (например, длинные слова) в них не умещаются, если их длина превосходит ширину столбца. Конечно, можно и маркер клавишами по строке "погонять", только вряд ли кто-нибудь назовет это удобным. Так что, конструктору СУБД не остается ничего иного, как заняться внешним видом таблицы, то есть стать, так сказать, визажистом, только виртуальным. В стандартной таблице, по умолчанию, есть следующие параметры. Каждый ее столбец имеет ширину 15,411 пункта, а их ровно столько, сколько полей вы задали в режиме конструктора. Количество строк определяется числом записей, уже введенных пользователем. Итог выглядит, вообще говоря, не слишком хорошо (см. рис. 1). Совершенно очевидно, что столбец " Код книги" чрезвычайно широк, в то время как наименования книг и наименование издательства в отведенные места однозначно не умещаются. Вот с этого и начнем. Форматирование таблицы СУБД Microsoft Access 97 весьма похоже на аналогичную операцию в электронных таблицах Excel той же фирмы, и это хорошо, ибо последовательность действий в некоторой степени стандартна. Перед тем как приступить к конкретным настройкам, нужно подсказать программе, к чему конкретно они будут относиться. То есть сначала следует выделить, например, форматируемый столбец, щелкнув маркером мыши по его заголовку, то есть той ячейке, в которой написано его название. Microsoft Access 97 тут же произведет выделение всего столбца, что и продемонстрирует, изменив цвет его фона на более темный. С этого момента все отдаваемые команды касаются только выделенного объекта и ничего более. Теперь можно открыть системное меню ФОРМАТ и выбрать в нем режим ШИРИНА СТОЛБЦА. На экране появится диалоговое окно "Ширина столбца", в котором допускается ручная настройка данного параметра (см. рис. 2). Не забывайте, в данном случае применяются не миллиметры, а "пункты" или "точки", что может показаться не совсем удобным, но является самым рациональным выбором. С клавиатуры вы можете ввести любое необходимое значение и по окончании нажать экранную клавишу " ОК". Естественно, не зная точного размера находящихся в ячейке слов, трудно с первого раза без наличия определенного наработанного навыка подобрать правильное значение. Это не беда, так как операцию можно повторять до бесконечности, постепенно приближаясь к желаемому результату. Однако конструкторы СУБД Microsoft Access 97 предусмотрели более простой способ. На окне диалога "Ширина столбца" есть кнопка " По ширине данных", которая может сэкономить вам уйму рабочего времени. При ее нажатии Access автоматически сдвигает правую границу выделенного столбца еще вправо до тех пор, пока не станет полностью видимой самая длинная запись, какая только есть в данный момент в этом столбце. В нашем примере это "Руководство пользователя СУБД ОРАКЛ" в первой строке столбца " Наименование". Правда, с выравниванием "По ширине данных" следует быть поосторожнее. Может случиться так, что в одном из полей столбца находится ну очень длинная запись и, равняясь на нее, СУБД вообще отведет весь экран на одно это поле, чем заметно усложнит общение с таблицей. В общем, правило тут простое: если вы совершенно уверены, что не столкнетесь с подобной коллизией, то выравнивайте по ширине данных, в противном случае рациональнее задавать фиксированный числовой размер, ориентируясь на "среднюю" длину записей. В конце концов, если кому-то понадобятся подробности, пусть потрудится над клавиатурой... Правда, в Microsoft Access 97 предусмотрен и вовсе уж простой способ подгонки ширины столбца, что называется "на глаз". Как правило, в большинстве случаев конкретное значение ширины видимой области поля таблицы принципиального значения не имеет. Внутренний максимальный размер указывается при конструировании, а то, о чем речь идет в данный момент, есть всего лишь способ отображения информации на экране монитора, поэтому можно не умничать с мастерами настройки, а просто "взять" мышью (как это обычно делается в Microsoft Windows 95/98, то есть навести маркер на объект, нажать левую кнопку и удерживать ее нажатой до окончания манипуляции) правую границу столбца, то есть соответствующую черную вертикальную линию, и перетащить ее вправо или влево на желаемое расстояние. В качестве примера можете поэкспериментировать на столбцах " Код книги" и " Рубрика". Как известно, в них расположены данные типа Счетчик и Длинное целое, то есть обычное целое число достаточно компактного начертания. Следовательно, можно смело "заузить" эти столбцы, перетаскивая их правые границы влево. Аналогичным образом смело сужайте столбец " Стоимость", так как по маске ввода видно, сколько места этим данным требуется на самом деле. За счет "выкроенного" таким образом свободного пространства можно раздвинуть столбцы " Автор" и " Издательство" уже описанными выше способами, а можно и обычным двойным кликом по правой границе соответствующего столбца. Реакция на этот клик будет аналогичной нажатию кнопки " По размеру данных". Ну, что же, наша таблица приобрела относительно неплохой вид. Во всяком случае, если ее теперь сохранить, закрыть, а потом снова открыть, то она предстанет уже в созданном вами виде и будет оставаться таковой до тех пор, пока вы не измените ее (см. рис. 3). Кстати, раз уж речь зашла о столбцах, есть в Microsoft Access 97 очень удобный инструмент для просмотра широких таблиц, которые в имеющийся экран "не лезут". Предположим, попалась вам именно такая таблица и вы должны быстро просмотреть ее данные, но не абы как, а в привязке к какой-то конкретной информации. Например, в нашем случае, хочется иметь возможность просматривать любые данные таблицы, но чтобы содержимое столбца " Наименование" всегда оставалось перед глазами. Как вы, несомненно, понимаете, при текущем расположении столбцов такое невозможно, как не является решением проблемы и простое перетаскивание этого столбца на первое место. Все равно, как только вы воспользуетесь лифтом горизонтальной прокрутки, этот столбец "уползет" за край экрана. Чтобы подобного не произошло, столбец, который должен оставаться на экране, нужно "закрепить", то есть "сказать" Microsoft Access 97, что "вот это трогать не надо". Делается сие просто. Выделите столбец " Наименование" и в системном меню ФОРМАТ выберите режим ЗАКРЕПИТЬ СТОЛБЦЫ. Внешне, программа "перекинет" выделенный столбец на первое место и вроде как ограничится этим. Однако если обратить внимание на горизонтальный лифт, то можно увидеть, что с этого момента его перемещение относится уже не ко всем столбцам таблицы, а лишь к тем, которые "не закреплены". При работе с широкими таблицами такое очень и очень удобно. Особенно если учесть, что закреплять можно не один, а несколько столбцов сразу. Позднее закрепление можно снять, воспользовавшись режимом ОСВОБОДИТЬ ВСЕ СТОЛБЦЫ из того же меню ФОРМАТ. Только помните об одной особенности: закрепляемые столбцы НА САМОМ ДЕЛЕ перемещаются в начало таблицы. То есть после снятия закрепления они так и останутся первыми, разве что теперь будут подчиняться лифту прокрутки. И если вы не хотите потом вручную перетаскивать их на свои места, то, побаловавшись с закреплением, не сохраняйте внесенные в таблицу изменения, как это предложит вам сделать СУБД Microsoft Access 97. После столбцов можно перейти к строкам. Обычно, стандартный алгоритм, при котором СУБД самостоятельно определяет тип, размер и начертание шрифта, которым отображается на экране информация, вполне удовлетворяет большинство пользователей. Но... как всегда, существует множество "но". Что делать, если, предположим, у вас не очень хорошее зрение или, к примеру, ваш монитор работает в режиме 1280 на 1024 и "десятый" кегль смотрится на нем совершенно мелким бисером? В общем, порою возникает необходимость поколдовать не только с шириной полей, но и с их высотой и видом используемого шрифта. Начинать я бы рекомендовал с последнего. Как обычно, сначала нужно выделить форматируемые объекты, хотя формально, в данном случае, этого можно и не делать, так как настройка шрифта относится строго ко всей таблице целиком. В меню ФОРМАТ есть режим ШРИФТ, который выводит на экран соответствующий настроечный мастер (см. рис. 4). Пользуясь возможностями этого мастера, вы можете установить для данной таблицы любой вид шрифта из всего многообразия инсталлированных на данном компьютере, выбрать любое его начертание и размер. После нажатия кнопки " ОК" изменения вступают в силу. Аналогичным образом, единообразно для всей таблицы сразу, устанавливается высота строки. По умолчанию, она принимается равной высоте символа использованного шрифта, но это вовсе не означает, что параметр нельзя изменить. Выберите в меню ФОРМАТ режим ВЫСОТА СТРОКИ (см. рис. 5) и наберите в окне ввода желаемое значение, но помните, что если оно будет меньше текущего размера шрифта, то результат не понравится не только окружающим, но и вам самим. Ну, и заключительные "мелочи", чисто рабочего характера. Как я говорил ранее, в каждой таблице существует первичный ключ, под который отводится отдельное поле или столбец. Все здорово, только этот ключ определяется не пользователем (упаси Боже!), а самой СУБД Microsoft Access 97 самостоятельно. Вы наверняка заметили, что как только в остальных полях (пусть даже всего в одном) появляются фактические данные, поле счетчика тут же заполняется конкретным значением. Я это упомянул к тому, что подобные счетчики являются идеальным примером скрытого поля, которое пользователь не заполняет, а значит, было бы неплохо сделать таким образом, чтобы он его вообще даже не видел. Причем подобных полей в таблице может быть очень много. Предположим, в таблице принятия заказа можно ввести поле, в котором программа будет автоматически фиксировать время, когда делается данная запись. Потом подобной информации цены не будет. На ее основании вы сможете чрезвычайно точно планировать не только график работы персонала вообще, но даже и его рабочую нагрузку, а значит и размеры оплаты труда. Но самому оператору вовсе незачем видеть это поле: во-первых, он его все равно не заполняет, а во-вторых, видимая область экрана монитора ведь не резиновая и использовать ее следует рационально. Таким образом, вовсе не лишним будет скрыть ненужные столбцы с глаз долой. На самом деле они никуда не исчезнут, просто Microsoft Access 97 не будет отражать их содержимое на экране. Делается это просто. Сначала такой столбец (или группа рядом расположенных столбцов) выделяется при помощи мыши, а потом выбирается режим СКРЫТЬ СТОЛБЦЫ в меню ФОРМАТ. Выделенные столбцы мгновенно исчезают (см. рис. 6). Вернуть их "на Родину" можно обратным действием. В том же меню ФОРМАТ есть режим ОТОБРАЗИТЬ СТОЛБЦЫ, выбор которого активизирует соответствующее диалоговое окно (см. рис. 7), где, наподобие меню, указаны все столбцы данной таблицы. Проставьте галочки против тех полей, которые желаете "вернуть из подполья", и они тут же появятся на экране. Вот таким вот образом, достаточно быстро и уж точно без особых затруднений, вы можете раскрашивать свою таблицу, как истинный визажист. Причем, говоря о раскрашивании, я вовсе не погрешил против истины. В меню ФОРМАТ есть режим ЯЧЕЙКИ, средствами которого (см. рис. 8) разработчик может менять цвет фона, манипулировать линиями сетки (хоть вообще их убрать) и применять несколько видов специальных зрительных эффектов, например "приподнять" ячейку над фоном. Словом - в полном соответствии со своими способностями, вкусами и желаниями. Александр Запольскис E-mail: leshy@nestor.minsk.by