Изменение типа данных может привести к потере информации
Лучше всего выбирать типы данных для ваших полей во время первоначального создания таблицы. В этот момент наша таблица практически пуста, и вы не столкнетесь ни с какими проблемами.
Если вы введете несколько записей, а затем решите изменить тип данных в одном из полей, жизнь станет не такой простой. Вы и теперь можете воспользоваться Конструктором для изменения типа данных, но программе Access придется выполнить дополнительное действие и преобразовать имеющиеся данные в новый тип.
В большинстве случаев процесс преобразования проходит гладко. Если в поле хранятся только числа, вы без труда измените текстовый тип данных на числовой. Но в некоторых случаях преобразование не столь безболезненно. Далее перечислены примеры проблем, с которыми вы можете столкнуться.
• Вы изменяете текстовый тип данных на Дата/время, но программа Access не может интерпретировать некоторые значения как даты.
• Вы изменяете тип данных Текстовыйна Числовой,но у некоторых ваших записей есть текстовые значения в данном поле (даже если их не должно быть).
• Вы изменяете тип данных Текстовыйна Числовой.Но в вашем поле содержатся дробные числа (например, 4,234), а вы забыли изменить свойство Размер поля (Field Size) (см. табл. 2.2). В результате программа Access полагает, что вы используете только целые числа, и обрезает все дробные знаки.
Лучший способ справиться с этими проблемами — создать резервную копию (см. разд. "Создание резервных копий " в главе 1), прежде чем вносить любые радикальные изменения, и следить за корректировками, которые сбиваются с пути истинного. В первых двух случаях из приведенного перечня программа Access предупредит вас о необходимости удаления некоторых значений, поскольку они не соответствуют правилам типа данных (рис. 2.8). Третья проблема более коварна — Access выдаст предупреждение, но не сообщит вам, возникнет на самом деле проблема или нет. Если вы предполагаете сбой, перейдите в Режим таблицыи проверьте ваши данные, прежде чем двигаться дальше.
Рис. 2.8. He говорите о том, что вас не предупреждали. Программа Access дает вам знать (на свой слегка заумный манер), что не может внести заданное вами изменение — преобразование типа данных поля из текстового в дату — без уничтожения значений в четырех записях. Самый разумный план действий — щелкнуть мышью кнопку Нетдля отказа от изменения и повнимательнее посмотреть таблицу в Режиме таблицыдля проверки проблемных значений
Примечание
Поскольку текстовые поля столь покладисты, вы, очевидно, можете вводить в них числа, даты и все что угодно. Но текст следует использовать, только если вы сохраняете информацию, которая не может быть обработана с применением другого типа данных, поскольку Access всегда интерпретирует содержимое текстового поля как обычный заурядный текст. Другими словами, если вы сохраняете число 43.99 а текстовом поле, Access не поймет, что вы имеете дело с числами, и не разрешит использовать его в вычислении.
Иногда кажется, что текстовый тип данных уж слишком всеяден. К счастью, вы можете применить некоторые более строгие правила, запрещающие использование определенных символов или вынуждающие текст следовать заранее заданному образцу. Например, программа Access обычно воспринимает номера телефонов как текст, поскольку они представлены последовательностью символов, такой как 123-4444 (а не одним числом 1 234 444). Но вы хотите помешать вставлять в телефонные номера буквы, которые к ним не относятся. Для реализации этого требования можно использовать маски ввода (input masks) (см. разд. "Маски ввода" главы 4) и проверку корректности (validation) — две функциональные возможности, обсуждаемые в главе 4.
Длина текста
У каждого текстового поля есть максимальная длина. Эта особенность вызывает изумление у людей, не привыкших работать с БД. Кроме того, с сегодняшними жесткими дисками гигантских размеров стоит ли беспокоиться об объеме? Не может ли ваша БД расширяться для того, чтобы вмещать любые данные, которые вы хотите в нее затолкать?
Рис. 2.9. Для задания максимальной длины выберите ваше поле и щелкните кнопкой мыши поле Размер поляв списке Свойства поля(показанном на рисунке). {Все свойства поля, которые понадобятся вам в этой главе, находятся на вкладке Общие.)Когда вы щелкнете кнопкой мыши область свойства поля, справа появится его описание
Максимальная длина имеет важное значение, потому что она определяет, насколько плотно Access может упаковать все ваши записи. Из соображений эффективности программа Access должна быть уверена, что запись целиком хранится водном месте, поэтому она всегда отводит максимальный объем дискового пространства, который может потребоваться записи. Если в вашей таблице четыре поля, по 50 символов у каждого, Access может зарезервировать для каждой записи на вашем жестком диске объем, необходимый для хранения 200 символов. С другой стороны, если у каждого вашего поля максимальная длина 100 символов, Access хранит в два раза больший объем для каждой записи, даже если в действительности вы не используете его полностью. Дополнительное пространство — не главная проблема (возможно, у вас масса свободного пространства на компьютере), но чем больше места занимает БД, тем медленнее поиск в ней.
Стандартная максимальная длина — 50 — подходит в качестве отправной точки. В примечании "На профессиональном уровне. Нормативы максимальной длины " далее в этом разделе содержатся дополнительные рекомендации.
Для задания максимальной длины введите число в поле Размер поля (Field Size) в окне Свойства поля (рис. 2.9). Максимально допустимая величина равна 255 символам. Если нужно хранить большой абзац или целую статью, вам нужен тип данных Поле MEMO(см.следующий раздел).
Совет
Стоит быть достаточно щедрым, задавая максимальную длину, чтобы в дальнейшем избежать модификации БД.