Рис. 7.3
Вам придется пройти по дереву файлов в поисках базы данных в формате DBF, которую вы получили в результате первого этапа работы (см. предыдущий раздел). Как и раньше, возьмем в качестве примера файл File1.dbf. Чтобы увидеть его либо другие файлы этой базы данных в формате DBF, надо в поле Тип файлаактивизировать или какую-либо модификацию dBase (например, dBaseIII), или опцию Все файлы.В противном случае файлы формата DBF будут невидимы. Найдя нужный файл и пометив его, щелкните по кнопке
Если все прошло нормально, то Access 2002 выдаст сообщение об успешном импортировании файла (рис. 7.4). Щелкните по кнопке ОК.
Рис. 7.4
Теперь надо закрыть окно Импорт,и тогда вы увидите, что в окне базы данных появилась новая таблица Fiie1(см. рис. 7.5).
Рис. 7.5
Поля даты и времени
Итак, второй этап импорта прошел успешно, и кажется, что с базой данных все в порядке. Однако приглядимся повнимательнее к импортированной таблице (см. рис. 7.6), особенно к полям даты и времени FIL_DATAY, FIL_TIMECH, FIL_DATAS, FIL_TIMESO.(Вы помните, как образовались эти имена? К исходным названиям полей файла File1.dat при преобразовании его в формат DBF слева добавляются префиксы FIL, а общее имя поля «обрезается» до 10 символов.)
Рис. 7.6
На рис. 7.6 эти поля сгруппированы вместе, чтобы их удобнее было просматривать. Значения перечисленных полей выглядят необычно, и вы поймете, в чем дело, перейдя в режим конструктора. Окно режима конструктора показано на рис. 7.7. Оказывается, эти поля, которые должны принадлежать к типу Дата/Время,после преобразования относятся к типам Текстили Числовой.
Рис. 7.7
Внесите необходимые исправления. Задайте для полей тип Дата/Время.В разделе для полей дат FIL_DATAYи FIL_DATASустановите значение свойства Краткий формат дат,что соответствует формату даты 09/12/1999, а для полей времени FIL_TIMECHи FIL_TIMESO– значение свойства Краткий формат времени,что соответствует изображению времени 12:36. Раз уж мы взялись наводить порядок, давайте зададим для свойства Заголовокперечисленных полей соответственно значения Дата ЧЭС, Дата сообщения о ЧЭС, Время ЧЭС, Время сообщения о ЧЭС.Путешествия во времени
Посмотрим, что у нас получилось. Перейдя в режим формы (см. рис. 7.7), вы обнаружите крайне любопытную картину. Поля времени теперь имеют привычные русскоязычные имена и выглядят нормально, если не считать того, что в большинстве случаев в них представлены нулевые значения. (Заметим, что это не ваша вина; информация о времени ЧЭС и уж тем более о времени передачи сообщения поступает далеко не всегда.) Но взгляните на поля дат. На календаре базы данных должен стоять 1995 год – год, указанный в запросе. А в таблице, которая представлена на рис. 7.8, вы видите 2093 год.
Рис. 7.8
Этот забавный факт имеет вполне рациональное объяснение, связанное с тем, что называется несовпадением в исходных установках различных СУБД. Если не задать заранее точное значение типа поля [8] – а для даты и времени это Дата/Время,то каждая введенная дата будет заноситься в память СУБД в виде числового выражения. Оно представляет собой количество дней, прошедших от даты, принятой за точку отсчета (ей присвоено значение 1). Это имеет определенный смысл: при необходимости вы сможете выполнять с датами арифметические действия. Если вы вводите значение времени, оно сохраняется в памяти в виде десятичной дроби, которая равна прошедшей на данный момент части дня. (За точку отсчета принимается 12 часов ночи.) А вот исходная дата в каждом семействе СУБД может быть разной. Например, в различных редакциях пакета Office, частью которого является Access, такой датой является 1 января 1900 года. В версиях языка dBase (одну из которых мы использовали) это 1 января 1800 года. Теперь вам понятны числа, которые появились в полях дат сразу после конвертации файла File1 в Access 2002 (см. рис. 7.6). А вот сутки во всех семействах СУБД начинаются в полночь, и тут при всем желании трудно придумать что-то оригинальное.
Возникает естественный вопрос: почему при конвертации данных в dBase нельзя установить для полей дат соответствующий формат, а не цифровой, который был использован в нашем примере? К сожалению, в dBase задано жесткое ограничение на длину поля Дата– 8 байт. Если вы считаете необходимым использовать четырехзначные символы для указания года (вспомните «проблему 2000 года»), то в отведенный лимит явно не укладываетесь: поля дат получатся просто пустыми, что вас, разумеется, не устроит.
Читать дальше
Конец ознакомительного отрывка
Купить книгу