Проектирование таблиц базы - процесс очень важный, даже скорее самый важный: За это дело нельзя браться без конкретного представления о том, что хотите получить: Если таблица будет хранит большое количество данных (тысяч двадцать), то тут надо максимально продумать структуру, по возможности максимально использовать поля подстановок, отказаться от строковых выражений, а использовать подстановку. Конечно, потом можно скорректировать таблицу, но лучше это сразу сделать на стадии разработки:, чтобы потом не было мучительно больно...
К разработке проекта присоединяется Alex, так что прошу любить и жаловать! Все брозды правления и ответственность за этот выпуск передаю ему. Поехали...
Вот так выглядит наша база после некоторых доработок: Sklad_2.zip. Открывайте ее и читайте дальше.
Так значит: Открывай базу... Открыл?
Думаю да... Смотри на закладке таблиц таблицу "Товары" (да не мучайся.. двойным щелчком она открывается... Ж)...)
Нашел поле КодГруппы? Щелкни в это поле... Что видишь? Если ничего не увидел, то обнови базу, иначе ты увидел значок слева, щелкнул его?, конечно... Иначе любознательности в тебе нет... (а может это и к лучшему). Вот это и есть поле подстановки...
Теперь надо открыть таблицу в режиме конструктора... Открыл?
Видишь поле КодГруппы? Щелкни в него мышью... и внизу в свойствах глянь на закладочку Общие:
Размер поля - Длинное целое: Т.к. Это поле у нас на Схеме данных связано с полем Код, которое имеет тип данных Счетчик, а это как раз длинное целое.
Формат поля - Нам пока все равно: Т.к. это поле мы все равно видеть не будем. (смотри ниже).
Число десятичных знаков - Нам побоку: У нас целое число.
Маска ввода - Трудно это кратко описать: Скажу одно: Тут можно задать формат вывода на экран: Для даты например, пенсионного номера: Потом догонишь.
Подпись - Это значение будет отображаться в заголовке столбца. Попробуй методом тыка пробежаться по клаве, сохрани таблицу, и перейди в режим таблицы: Понял? Думаю, что да:
Значение по умолчанию - Значение, которое автоматом будет добавляться в новую запись дефаултом.
Условие на значение - Ну если надо сделать ограничение на ввод значения например больше 100, то пишем <100: Так значит: Можно и поизвращаться побольше, например <0 And >100 будет разрешен ввод положительных чисел от 0 до 100.
Сообщение об ошибке - стандартная гавкалка: При ошибке ввода значения.
Обязательное поле - Т.е. это поле не может иметь значение NULL (пустое поле). Например вам надо будет сделать таблицу, в которой будут паспортные данные, так обязательно для уменьшения головной боли сделайте из обязательными.
Индексированное поле - Тут можно прописать индекс для поля, это ускоряет выборку, но и ускоряет скорость распухания базы: Если по этому полю происходит выборка, то индекс необходим.
А теперь на закладочку Подстановка.
Рассмотрим этот момент поподробнее...
Тип элемента управления: Поле со списком
Также там имеются значения:
Поле-это простое поле, в котором просто хранятся данные... Список - наглядно в таблице разницы никакой, разница между списком и поле со списком будет только на форме, когда ты будешь тянуть на форму это поле... Но разница огромна настолько, что я его описывать не буду... Сам догонишь. И Поле со списком - В общем это такая заморочка, которая будет облегчать тебе жизнь.
Оставим это значение и покапаем его:
Тип источника строк - это откуда в это поле будут выбираться значения: По умолчанию стоит Таблица/запрос, т.е. данные в поле можно закачать из запроса: Он предложит из какого запроса: Но этот метод может быть полезен редко: Мы будем использовать внутренний запрос. Рядышком с этой строчкой есть скрытое троеточие: При нажатии на него выскочит построитель запросов: В нем мы и будем ваять запрос, чтоб собрать нужные значения в поле:Так значит:
Добавляем таблицу "ГруппыТовара"
Кидаем (двойной клик по наименованию поля): Код, Наименование, Примечание.
Повесь галочке в Вид > Групповые операции. Должно появиться ниже полей Имя таблицы дополнительное поле, "Групповая операция", в котором будет по дефаултом "Группировка", оставим его в покое: Для столбца "Наименование" в поле "Сортировка" выберем значение "по возрастанию", это надо, чтобы значения сортировались в алфавитном порядке.
Все: Сохраняем запрос.
Присоединенный столбец - Дефаултом 1: Так и оставим: Мы же будем хранить не текстовое значение, а только код этого значения (допер зачем нам нужен УНИКАЛЬНЫЙ КОД, который формирует поле "счетчик"?). В запросе мы как раз и поставили первым поле Код, если он там не первый, то поставь номер этого поля: Все: Сделали.
Число столбцов - В данном случае 3. Поставишь больше будут пустые столбцы, меньше, соответственно отображаться будут меньше столбцов: Для этого случая оптимально 3.
Заглавия столбцов - ну думаю тут все ясно: Но поясню, что для заглавия он берет имена столбцов из запроса.
Ширина столбцов - Тут задаётся ширина столбцов при отображении: У нас три столбца: Код нам надо хранить, но отображать его не надо, поэтому ставим 0. Разделяются значения столбцов ";". Наименование - наверно длинное поле, ставим 4. И для поля "Примечание" ставим тоже 4. Так: Вроде разобрались: Все значения в сантиметрах, или в том, что у тебя стоит в национальных настройках.
Число строк списка - Сколько строк будет выпадать при выборе значения: Если значений меньше, чем ты тут нарисуешь, то количество значений.
Ширина списка - Скажу однозначно: Лучше посчитать общую ширину столбцов и прописать там её.
Ограничится списком - Да или нет: Если Да, то в поле невозможно будет ввести только те данные, которые он предлагает: Это нам и надо: Вообще для ввода данных надо делать формы: В таблицу напрямую их корячить категорически не разрешаю! Это плохой стиль: Да и для связанных таблиц это практически нереально: Мазохизм:
Так: со свойствами разобрались: Кратко надо отметить, что в построителе для таблицы отсутствует возможность обработки своими подпрограммами: Очень это жалко: Но это необходимо:
Проектирование таблиц базы - процесс очень важный, даже скорее самый важный: За это дело нельзя браться без конкретного представления о том, что хотите получить. Если таблица будет хранит большое количество данных (тысяч двадцать), то тут надо максимально продумать структуру, по возможности максимально использовать поля подстановок, отказаться от строковых выражений, а использовать подстановку. Конечно, потом можно скорректировать таблицу, но лучше это сразу сделать на стадии разработки:, чтобы потом не было мучительно больно.
Мы решили максимально ускорить процесс разработки базы, т.ч. не проспите:
Пока: Думаю, что вы поняли что я хочу, смотрите, если я где и ошибся, то напишите мне.
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
Alex/
Свои вопросы и пожелания присылайте на E-Mail:
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
или
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script