Access

Одинарное с плавающей точкой access: Как сделать размер поля в access?

Электронный курс по информатике и ИКТ|Электронные таблицы

Электронный курс по информатике и ИКТ|Электронные таблицы

Тема 2.Общие сведения о СУБД MS Access. Основные объекты  MS Access. Примеры.


MS Access — это программа, с помощью которой можно быстро и довольно просто создавать базы данных, заполнять их и работать с ними. Access является СУБД реляционного типа, в которой реализованы все средства и возможности современных СУБД. Реляционная база упрощает поиск, анализ, поддержку и защиту данных, поскольку они сохраняются в одном файле. Access в переводе с английского означает «доступ». MS Access — это функционально полная реляционная СУБД, одна из самых мощных, гибких и простых в использовании. В ней можно решить большинство задач, не написав ни единой строки программы, но если нужно создать нечто очень сложное, то на этот случай MS Access предоставляет мощный язык программирования — Visual Basic for Application.

Access входит в состав пакета Microsoft Office

Популярность СУБД Microsoft Access обусловлена следующими причинами:

  •  доступность в изучении и понятность;

  • СУБД полностью русифицирована;

  •  возможность использования OLE технологии;

  •  интегрированность с пакетами Microsoft Office;

  •  поддержка web – технологий;

  •  удобная работа с конструкторами форм, таблиц, отчетов, страниц;

  •  широко и наглядно представлена справочная система;

  •  наличие большого набора «мастеров» по разработке объектов.

Через стартовое меню (Пуск – Поиск) найдите и откройте учебную базу «Борей». Выйдите на окно базы данных, закрыв все формы. Слева представлены все элементы Access. Ознакомьтесь с ними.

 Таблицы — это основные и самые необходимые объекты любой БД, предназначены только для хранения данных. Access может содержать целый набор взаимосвязанных таблиц.

 Запросы — это объекты, создаваемые для обработки базы данных: сортировки, фильтрации, объединения, отбора, изменение и вычисления по формулам.

 Формы — это объекты, позволяющие вводить в базу новые данные или просматривать уже существующие, в удобной для пользователя форме. Форма обычно отображает по одной записи таблицы.

 Отчеты — это объекты для вывода данных на принтер или другое устройство вывода в удобном и наглядном виде. Например, в виде бланка или счета.

 Макросы — это набор макрокоманд. Например: открыть форму, напечатать таблицу. Когда возникает необходимость частого выполнения одних и тех же операций с БД, имеется возможность сгруппировать набор команд в один макрос. Макрос закрепляют за определенной комбинацией клавиш клавиатуры или кнопкой, нажатие которой приводит к выполнению всей последовательности действий записанных в макросе.

 Модули — это программы созданные средствами языка Visual Basic. Позволяющие дополнить стандартные средства Access, если уже имеющихся не хватает для реализации всех требований к работе СУБД. Программист может расширить возможности системы, дописав необходимые модули и добавив их в БД.

Все данные в реляционной БД представлены в виде таблиц. Таблица — это основной объект любой базы данных, поэтому создание любой БД начинается с создания таблиц. Каждая строка таблицы содержит информацию  только об одном объекте и называется записью. Столбец таблицы содержит  однотипную   для всех записей  информацию и называется полем. Поля образуют структуру базы данных, а записи составляют информацию, которая в ней содержится.

Поля обладают определенными свойствами, от которых зависит какие данные можно в него вносить и какие операции можно выполнять. Самым главным и уникальным свойством любого поля является его

Имя. В одной и той же базе данных не может быть двух полей с одинаковым именем. В противном случае, компьютер просто запутается в их содержимом. Имя поля не может содержать знаки «.» и «!». Имя — это внутренняя информация базы данных, не видимая для использующего уже готовую базу. Пользователь видит Подпись. Подпись — это то, что отображается в заголовке поля. Разным полям, например, можно задать одинаковые подписи. Это вполне возможно и не вызовет ошибки, поскольку поля при этом по-прежнему сохраняют свои отличные друг от друга имена. Если подпись не указана, то в заголовок просто дублируется Имя поля. Каждому полю задается определенный тип данных в зависимости от информации, которая в нем хранится.

Типы данных MS Access:

Текстовый —текст или комбинация любых символов, например: адрес, фамилия, а также числа, не требующие вычислений, например, номера телефонов, коды. Сохраняет до 255 знаков. Свойство Размер поля определяет максимальное количество знаков, которые можно ввести в поле.

 Поле МЕМО -длинный текст, например, примечания или описания. Сохраняет до 65 535 знаков.

 Числовой — данные, используемые для математических вычислений.  Конкретный тип числового поля определяется значением свойства Размер поля (байт – 1б. , целое – 2б., длинное целое – 4б., одинарное с плавающей точкой – 4б., двойное с плавающей точкой – 8б.).

 Дата/время — значения дат и времени. Сохраняет 8 байтов.

 Денежный — используется для денежных значений вместе с денежными единицами и для предотвращения округления во время вычислений. Сохраняет 8 байтов.

Счетчик — автоматическая нумерация. Сохраняет 4 байта.

 Логический — данные, принимающие только одно из двух возможных значений, таких как «Да/Нет», «Истина/Ложь», «Вкл/Выкл». Значения Null не допускаются. Сохраняет 1 бит.

 Поле объекта OLE —  внешние объекты (документы  Word, электронные таблицы Excel, рисунки, звукозапись или другие данные), созданные в других программах, использующих протокол OLE.

Сохраняет до 1 Гигабайта.

Гиперссылка — может иметь вид адреса сайта Интернет или электронной почты и путь к файлу. Сохраняет до 64 000 знаков.

 Мастер подстановок — создает поле с выпадающим  списком. При выборе данного параметра в списке типов данных запускается мастер для автоматического определения этого поля.

При выборе типа данных для поля необходимо учитывать следующее:

 Какие значения должны отображаться в поле. Например, нельзя хранить текст в поле, имеющем числовой тип данных.

 Сколько места необходимо для хранения значений в поле.

 Какие операции должны производиться со значениями в поле. Например, Microsoft Access позволяет суммировать значения в числовых полях и в денежных полях.

Однако не допускается суммирование значений полей с типом данных Текстовый или Поле объекта OLE.

 Нужна ли сортировка или индексирование поля.

Одним из основных свойств поля является его Длина. Обычно она выражается в символах или знаках. Определяя тем самым, сколько информации в поле может поместиться. При попытке ввести больше символов, чем максимально возможная длина — происходит ограничение длины, блокирующее дальнейший ввод.

Создание базы данных следует начинать с детальной разработки структуры ее таблиц. Эта структура должна быть такой, чтобы при работе с базой требовалось вводить в нее как можно меньше данных. Для надежной работы связей между всеми таблицами базы данных и быстрого поиска по данным из одной таблицы всех связанных с ними записей в других таблицах, необходимо предусмотреть так называемые уникальные (ключевые) поля, значения в которых не могут повторяться.

Например, поле Фамилия в таблице Автор вполне может содержать нескольких Ивановых, Петровых или Сидоровых. Это означает, что это поле не являются уникальным и поэтому их нельзя использовать для связи между таблицами. Поле Название — более удачный кандидат на почетное звание уникального поля, но не тут то было… Многие современные авторы очень любят называть свои произведения в точности так, как это делали Пушкин, Лермонтов или Толстой. Что же тогда остается делать? Выход всегда есть! Если ни одно поле в Вашей таблице не приемлемо как уникальное, то его можно создать искусственно. Например, введя в таблицу код записи. Это могут быть буквы, цифры или их комбинация, но самое главное — они не будут повторяться, а значит, станут уникальными для каждой записи в таблице.

Каждое поле таблицы может иметь ряд свойств:

 Формат поля – определяется для полей числового, денежного типа, полей типа Счетчик и  Дата\Время. Выбирается один из форматов представления данных.

 Число десятичных знаков — определяет количество разрядов в дробной части числа.

Маска ввода — определяет  шаблон для ввода данных. Например, можно установить разделители при вводе телефонного номера

Подпись поля — содержит надпись, которая может быть выведена рядом с полем в форме или отчете ( данная надпись может и не совпадать  с именем поля, а также может содержать поясняющие сведения).

Значение по умолчанию —  содержит значение, устанавливаемое по умолчанию в данном поле таблицы. Например, если в поле Город ввести значение по умолчанию Уфа, то  при вводе записей  о проживающих в Уфе, это поле можно пропускать, а соответствующее значение (Уфа) будет введено автоматически. Это облегчает ввод значений, повторяющихся чаще других.

Условие на значение — определяет множество значений, которые пользователь может вводить в это поле при заполнении таблицы. Это свойство позволяет избежать ввода недопустимых в  данном поле значений.   Например, если стипендия студента не может превышать 250 р., то для этого поля можно задать условие на значение: <=250.

Сообщение об ошибке — определяет сообщение, которое появляется на экране в случае ввода  недопустимого значения.

Обязательное поле — установка, указывающая на то, что данное поле требует обязательного заполнения для каждой записи. Например, поле Домашний телефон  может быть пустым для некоторых записей ( значение Нет в данном свойстве). А поле Фамилия не может быть пустым ни для одной записи       (значение Да).

Пустые строки — установка, которая определяет, допускается ли ввод в данное поле пустых строк (“ “).

Индексированное поле — определяет простые индексы для ускорения поиска записей.

Верхняя панель окна базы данных.

Открыть — открывает выбранный объект для изменения и редактирования. В случае работы с таблицами, дает возможность добавить новые записи в базу, просмотреть и отредактировать уже имеющиеся.

Конструктор — открывает выбранный объект в режиме конструирования. Это означает, что отображается внутренняя структура объекта, дающая возможность редактировать не содержимое, а все построение объекта. Для таблицы — это возможность добавить необходимые поля или изменить свойства существующих. В форме — возможность создавать и изменять элементы управления и т.д. Это режим разработки, а не эксплуатации и поэтому должен быть доступен только разработчикам.

Создать — создает новый объект выбранного вида. Этот режим тоже предназначен для проектировщиков. Создание таблиц, запросов, форм и отчетов возможно несколькими способами. В автоматическом режиме, с помощью конструктора или мастера.

Для определения связей нужно перейти в окно базы данных и выполнить команду Сервис — Схема данных. После этого Access откроет  окно Схема данных   и окно Добавление таблицы. В окне Добавление таблицы нужно выделить имена таблиц, добавляемых в схему данных, и нажать на кнопку Добавить. После этого данное окно можно закрыть.

В окне Схема данных появятся имена всех указанных таблиц вместе со списками полей. Нужно  выделить ключевое поле ключевой таблицы и перетащить его на аналогичное поле в связываемой таблице. В результате появится диалоговое окно Связи. Чтобы в связанных таблицах не нарушалась целостность данных, нужно щелкнуть по флажку Обеспечение целостности данных.  После этого Access  сделает невозможным запись в подчиненную таблицу  такого значения общего поля, которого нет в таблице ключевой. После установления целостности данных Access  включает  две дополнительные опции: Каскадное обновление связанных полей и Каскадное удаление связанных полей. Если выбрать  первую опцию, то при изменении какого-либо значения ключевого поля в ключевой таблице Access автоматически обновит  значения этого поля для соответствующих записей во всех связанных таблицах. Например, если у одного из учащихся изменился номер читательского билета в таблице Список, то он автоматически должен поменяться и в таблице Регистрация. Выбор второй опции  при удалении одной из записей в ключевой таблице приведет к удалению тех записей  в подчиненных таблицах. Для завершения процесса создания связей, нужно щелкнуть по кнопке Создать. Access нарисует линию  между таблицами в окне Схема данных, указывающую на наличие связи между ними.  На конце линии у таблице со стороны «один» будет нарисована цифра 1, а  на другом  конце ,  у таблицы со стороны «много» — символ бесконечности ∞. После закрытия этого окна все установленные связи будут сохранены.

Контрольные вопросы:

  • Перечислите основные объекты БД и их назначение.

  • В каком режиме  можно создавать и изменять структуру таблицы?

  • Какая информация о поле указывается в структуре таблицы?

  • Типы данных в Access?

  • Как при определении структуры таблицы использовать свойства полей ?

  • Что такое ключевое поле и какие требования предъявляются к нему?

  • Какие типы связей реализуются в реляционных базах данных?

  • Как  установить связи между таблицами?


Copyright © 2005. Петрова Людмила Борисовна

 

Хостинг от uCoz

Проблема с дробными числами в Delphi Access

 
tolians   (2006-03-02 10:12) [0]

В Access тип поля ставлю «одинарное с плавающей точкой», количество знаков после запятой «2». Подключаю базу к делфи. При вводе дробного числа (например 3.6) из делфи, в базу оно записывается как 3.6000000011 или что-то в таком роде. Если вводить через Access то нормально, как ввел так и есть.  
В чем проблема подскажите.
Если чтото не ясно в вопросе напишите попробую как-нибудь переформулировать. Заранее благодарен.


 
Johnmen ©   (2006-03-02 10:19) [1]

http://www.delphikingdom.com/asp/viewitem. asp?UrlItem=/helloworld/reals.htm


 
tolians   (2006-03-02 10:22) [2]

Не понятно, там написано:
ADODB.Recordset error «800a0cc1»

Item cannot be found in the collection corresponding to the requested name or ordinal.

/asp/libview.asp, line 57

Объясни если не трудно.


 
msguns ©   (2006-03-02 10:23) [3]

Пора уже в кладовочке такую статеечку завести. Вместе с поиском и получением id до вставки ;))

Дельфи тут не при чем. Разве что компоненты датасетные, которых почему-то не «научили» по собственной инициативе округлять числа с плавающей точкой, вместо этого предложив таинственный DisplayFormat.
В базу «ОНО» записывается так потому, что тип поля, предусмотренный Вами в этой самой «базе», предполагает хранение числа в плававющем виде.
Надеюсь, у Вас не возникнет вопроса почему плавающий формат «уродует» числа ?


 
msguns ©   (2006-03-02 10:29) [4]

Еще пояснение по поводу
«В Access тип поля ставлю «одинарное с плавающей точкой», количество знаков после запятой «2». «

Это самое «количество знаков» играет в акцесе роль своеобразного триггера, срабатывающего каждый раз, когда поле принимает новое значение. К числу просто применяется округление, — при этом, естественно, иррациональная дробь, если она имеется, никуда из самого числа не девается. Это во-первых.
Во-вторых, акцесс использует эту Вашу двоечку еще и для обрезания лишних дробных разрядов при отображении в своих гридах или формах (когда Вы в самом акцесе просматриваете содержимое таблицы).


 
tolians   (2006-03-02 10:30) [5]


> Да, такой вопрос у меня возник, но я побаиваюсь даже спрашивать. Так что же мне делать.


 
tolians   (2006-03-02 10:33) [6]

Ну с двоечкой понятно, так и предпологал.


 
msguns ©   (2006-03-02 10:36) [7]

Почитать о формате представления чисел в процессорах семейcтва PC. А именно тот раздел, где подробно описывается способ хранения позиции десятичной точки. В частности, понятия мантиссы, порядка, знака порядка и знака мантиссы. Желательно с примерами.
Где-то с год назад здесь были великолепные уроки Ю.Зотова,- поищите их, там очень хорошо об этом.


 
tolians   (2006-03-02 10:41) [8]

Почитаю обязательно. Но все таки что мне сейчас делать, как это исправить.


 
msguns ©   (2006-03-02 11:11) [9]

Исправлять ничего не надо. Это нормально.
Для чисел, предусматривающих дробную часть, разумеется.

При записи в таблицу можно программно округлять их до нужной разрядности, уменьшая таким образом погрешность при последующих операциях с этими числами (например, при «вертикальном» суммировании)
А при отображении пользоваться упомянутым DisplayFormat, явно задавая кол-во отображаемых дес.знаков. Например TADODataSet.FieldByName(«Quontity»).DisplayFormat := «0.00»


 
sniknik ©   (2006-03-02 11:12) [10]

сначала читать, исправлять после понимания…

исправленная ссылка из [1]:
http://www. delphikingdom.com/asp/viewitem.asp?catalogid=374


 
msguns ©   (2006-03-02 11:23) [11]

И еще один совет, применительно именно к БД.
Часто, проектируя складские системы, не очень опытные программисты предусматривают для цен товара «живые» 2 знака после запятой, т.е. собственно копейки. И делают грубую ошибку. Т.к. сплошь и рядом цена закупки товара (себестоимость) не может быть округлена до копеек без существенной погрешности. Поэтому рекомендуемая точность для большинства видов товаров (товарных групп) и не только товаров, но и материалов, малоценки, одним словом — Товаро-Материальных-Ценностей (ТМЦ), — это 4 знака после точки или сотые копейки.
То же самое касается и кол-ва, если, конечно, «товар» подразумевает возможность весовых характеристик.
А вот для суммовых полей в документах (накладных) суммы должны быть «живыми», т. к. попадвют в бухгалтерию, где нет понятия долей копеек.


 
Anatoly Podgoretsky ©   (2006-03-03 07:43) [12]

tolians   (02.03.06 10:12)  
Если плавающее, то откуда 2
А если два, то откуда плавающее?


 
msguns ©   (2006-03-03 09:23) [13]

>Anatoly Podgoretsky ©   (03.03.06 07:43) [12]
>Если плавающее, то откуда 2

В акцесе: [Тип данных->Числовой].[Число десятичных знаков] -> 2


 
sniknik ©   (2006-03-03 10:55) [14]

> В акцесе: [Тип данных->Числовой].[Число десятичных знаков] -> 2
это тот же DisplayFormat для самого access-а, на саму базу/формат(тип) числа не влияет (в общем это не аналогия numeric-а в фоксе, где сколько укажеш знаков столько и будет).


 
msguns ©   (2006-03-03 11:08) [15]

>sniknik ©   (03.03.06 10:55) [14]

А я об чем ?
Анатолий спросил, где в акцесе указывается это ограничение,- я указал


 
tolians   (2006-03-05 11:11) [16]

Огромное вам всем спасибо.


 
Anatoly Podgoretsky ©   (2006-03-05 11:28) [17]

msguns ©   (03.03.06 11:08) [15]
Я не это спрашивал!
Я спрашивал откуда у числа с плавающей запятой два фиксированых знака после запятой
Это нонсенс


Одиночный тип данных — Visual Basic

Редактировать

Твиттер LinkedIn Фейсбук Электронная почта

  • Статья
  • 2 минуты на чтение

Содержит подписанные IEEE 32-битные (4-байтовые) числа одинарной точности с плавающей запятой в диапазоне значений от -3,4028235E+38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,4028235E+38 для положительных значений. Числа одинарной точности хранят приближение действительного числа.

Используйте тип данных Single для содержания значений с плавающей запятой, для которых не требуется полная ширина данных Double . В некоторых случаях общеязыковая среда выполнения может упаковывать ваши переменные Single близко друг к другу и экономить потребление памяти.

Значение по умолчанию Одиночный равно 0.

Советы по программированию

  • Точность. При работе с числами с плавающей запятой помните, что они не всегда имеют точное представление в памяти. Это может привести к неожиданным результатам некоторых операций, таких как сравнение значений и оператор Mod . Дополнительные сведения см. в разделе Устранение неполадок с типами данных.

  • Расширение. Тип данных Single расширяется до Double . Это означает, что вы можете преобразовать Single в Double , не сталкиваясь с ошибкой System.OverflowException.

  • Нули в конце. Типы данных с плавающей запятой не имеют внутреннего представления завершающих нулевых символов. Например, они не различают 4.2000 и 4.2. Следовательно, конечные символы 0 не отображаются при отображении или печати значений с плавающей запятой.

  • Тип символов. Добавление символа литерального типа F к литералу переводит его в тип данных Single . Добавление символа типа идентификатора ! для любого идентификатора заставляет его использовать Single .

  • Тип каркаса. Соответствующим типом в . NET Framework является структура System.Single.

См. также

  • Система. Одинарная
  • Типы данных
  • Десятичный тип данных
  • Двойной тип данных
  • Функции преобразования типов
  • Сводка преобразования
  • Эффективное использование типов данных
  • Устранение неполадок типов данных

Обратная связь

Просмотреть все отзывы о странице

Разница между одинарной точностью и двойной точностью

Улучшить статью

Сохранить статью

Нравится Статья

  • Уровень сложности: Средний
  • Последнее обновление: 03 Авг, 2022

  • Читать
  • Обсудить
  • Улучшить статью

    Сохранить статью

    Нравится Статья

    В соответствии со стандартом IEEE число с плавающей запятой представляется двумя способами:

    0139 Exponent
    Точность Основание Знак88
    Significand
    Single precision 2 1 8 23+1
    Double precision 2 1 11 52+1

    1. Single Precision: Single Precision — это формат, предложенный IEEE для представления чисел с плавающей запятой. Он занимает 32 бита в памяти компьютера.

     

    2. Двойная точность: Двойная точность также является форматом, установленным IEEE для представления числа с плавающей запятой. Он занимает 64 бита в памяти компьютера.

    Разница между одиночной и двойной точностью:

    ОДНОЙ ПРОТИФИКАЯ Двойная точность
    в односменной точке 32 Bits используется. В двойной точности 64 бита используются для представления числа с плавающей запятой.
    Этот формат, также известный как FP32, подходит для расчетов, на которые не повлияет некоторая аппроксимация. Этот формат, часто известный как FP64, подходит для представления значений, которые требуют более широкого диапазона или более точных вычислений.
    Он использует 8 бит для экспоненты. Он использует 11 бит для экспоненты.
    В одинарной точности для мантиссы используются 23 бита. В двойной точности для мантиссы используются 52 бита. 9(+1023)
    Используется там, где точность не имеет значения. Используется там, где важна точность.
    Используется для широкой представленности. Используется для минимизации аппроксимации.
    Используется в простых программах, таких как игры. Используется в сложных программах, таких как научный калькулятор.
    Это называется binary32. Это называется binary64.
    Требует меньше ресурсов по сравнению с двойной точностью. Он обеспечивает более точные результаты, но за счет большей вычислительной мощности, объема памяти и передачи данных.
    Это дешевле. Стоимость использования этого формата не всегда оправдывает его использование для каждого вычисления.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *