Buderus-trade.ru

Теплотехника Будерус
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Определение ключевых полей

Определение ключевых полей

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

В Microsoft Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ. Рассмотрим каждый из этих типов.

Для создания ключевого поля типа Счетчик необходимо в режиме Конструктора таблиц:

  1. Включить в таблицу поле счетчика.
  2. Задать для него автоматическое увеличение на 1.
  3. Указать это поле в качестве ключевого путем нажатия на кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).

Если до сохранения созданной таблицы ключевые поля не были определены, то при сохранении будет выдано сообщение о создании ключевого поля. При нажатии кнопки Да (Yes) будет создано ключевое поле счетчика с именем Код (ID) и типом данных Счетчик (AutoNumber).

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

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

  1. Открыть таблицу в режиме Конструктора.
  2. Выделить поля, которые необходимо определить как ключевые.
  3. Нажать кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).

Для составного ключа существенным может оказаться порядок образующих ключ полей. Сортировка записей осуществляется в соответствии с порядком ключевых полей в окне Конструктора таблицы. Если необходимо указать другой порядок сортировки без изменения порядка ключевых полей, то сначала нужно определить ключ, а затем нажать кнопку Индексы (Indexes) на панели инструментов Конструктор таблиц (Table Design). Затем в появившемся окне Индексы (Indexes) нужно указать другой порядок полей для индекса с именем Ключевое поле (Primary Key).

Рассмотрим в качестве примера применения составного ключа таблицу "Заказано" (OrderDetails) базы данных (Northwind) (рис. 2.23).

В данном случае в качестве составного ключа используются поля "Код заказа" (OrderlD) и "КодТовара" (ProductID), т. к. ни одно из этих полей в отдельности не гарантирует уникальность записи. При этом в таблице выводится не код товара, а наименование товара, т. к. поле "КодТовара" (ProductID) данной таблицы содержит подстановку из таблицы "Товары" (Products), а значения полей "КодТовара" (ProductID) этих таблиц связаны отношением "один-ко-многим" (одной записи таблицы "Товары" (Products) может соответствовать несколько записей таблицы "Заказано" (OrderDetails)). Оба поля могут содержать повторяющиеся значения. Так, один заказ может включать в себя несколько товаров, а в разные заказы могут включаться одинаковые товары. В то же время сочетание полей "КодЗаказа" (OrderlD) и "КодТовара" (ProductID) однозначно определяет каждую запись таблицы "Заказы" (OrderDetails).

Сброс значения поля AutoNumber в Access

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Исходный номер КБ: 812718

Сводка

В этой пошаговой статье описывается, как сбросить значение поля AutoNumber в Access. Значение поля AutoNumber в Access автоматически не сбрасывается при удалении некоторых строк или всех строк в таблице. Чтобы сбросить значение поля AutoNumber и обновить значение AutoNumber в справочной таблице, необходимо вручную выполнить некоторые задачи.

Перед выполнением последующих действий необходимо выполнить базу данных.

Сброс поля AutoNumber в одной таблице

Если ваша таблица не имеет связей с другими таблицами, используйте метод 1 или метод 2 для сброса значения поля AutoNumber.

Метод 1. Перемещение данных в новую таблицу с помощью Make-Table запроса

Вы можете сбросить значение поля AutoNumber с помощью запроса Make-Table для создания новой таблицы с одинаковыми данными и добавления нового поля AutoNumber.

Доступ к версиям 2003 и более ранних версий

Чтобы сделать это в Access 2003 или в более ранней версии, выполните следующие действия:

  1. Удалите поле AutoNumber из основной таблицы и обратите внимание на имя поля AutoNumber.
  2. Щелкните Запросы на левой области, а затем дважды щелкните Создать запрос в представлении Design на правой области.
  3. В диалоговом окне Show Table выберите главную таблицу, нажмите кнопку Добавить и нажмите кнопку Закрыть.
  4. Дважды щелкните необходимые поля в представлении таблицы главной таблицы, чтобы выбрать поля.
  5. Выберите необходимый порядок сортировки.
  6. В меню Запрос щелкните Make-Table Query, введите новое имя таблицы в текстовом окне Имя таблицы, а затем нажмите кнопку ОК.
  7. В меню Запрос нажмите кнопку Выполнить.
  8. Когда вам будет предложено сообщение "Вы вот-вот вставьте #row(s) в новую таблицу", нажмите кнопку Да, чтобы вставить строки.
  9. В меню Файл нажмите кнопку Закрыть, а затем нажмите кнопку Нет, чтобы закрыть окно Make-Table Query.
  10. Щелкните Таблицы на левой области, щелкните правой кнопкой мыши новую таблицу, а затем щелкните Просмотр дизайна.
  11. В представлении Design для таблицы добавьте поле AutoNumber с тем же именем поля, которое удалено на шаге 1, добавьте это поле AutoNumber в новую таблицу и сохраните таблицу.
  12. Закрой окно представления Design.
  13. Переименуй главную таблицу, а затем переименуй новую таблицу в соответствие с именем главной таблицы.
Читайте так же:
Как сделать так чтобы счетчик назад крутил

Доступ к версиям 2007 и более поздних версий

Для этого в Microsoft Office Access 2007 или в более поздней версии выполните следующие действия:

  1. Удалите поле AutoNumber из основной таблицы и обратите внимание на имя поля AutoNumber.
  2. Щелкните вкладку Создать, а затем нажмите кнопку Дизайн запроса в другой группе.
  3. В диалоговом окне Show Table выберите главную таблицу. Нажмите Добавить, а затем — Закрыть.
  4. Дважды щелкните необходимые поля в представлении таблицы главной таблицы, чтобы выбрать поля.
  5. Выберите необходимый порядок сортировки.
  6. На вкладке Дизайн нажмите кнопку Make Table в группе Тип запроса.
  7. Введите новое имя таблицы в поле Имя таблицы и нажмите кнопку ОК.
  8. На вкладке Дизайн нажмите кнопку Выполнить в группе Результаты.
  9. Когда вам будет предложено сообщение "Вы вот-вот вставьте #row(s) в новую таблицу", нажмите кнопку Да, чтобы вставить строки.
  10. Закройте запрос.
  11. Щелкните правой кнопкой мыши новую таблицу и нажмите кнопку Просмотр дизайна.
  12. В представлении Design для таблицы добавьте поле AutoNumber с тем же именем поля, которое удалено в шаге 1. Добавьте это поле AutoNumber в новую таблицу и сохраните таблицу.
  13. Закрой окно представления Design.
  14. Переименуй главную таблицу, а затем переименуй новую таблицу в соответствие с именем главной таблицы.

Метод 2. Создание новой таблицы и перемещение данных в нее с помощью запроса приложения

Структуру существующей таблицы можно скопировать в виде новой таблицы. Затем можно добавить данные в новую таблицу и добавить новое поле AutoNumber.

Доступ к версиям 2003 и более ранних версий

Для этого в Microsoft Office Access 2003 и в более ранних версиях выполните следующие действия:

Удаление поля AutoNumber из основной таблицы.

Обратите внимание на имя поля AutoNumber.

Скопируйте структуру основной таблицы и создайте новую таблицу.

Щелкните Запросы на левой области. Щелкните Создать запрос в представлении Design на правой области.

В диалоговом окне Show Table выберите главную таблицу. Щелкните Добавить и нажмите кнопку Закрыть.

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

В меню Запрос нажмите кнопку Append Query.

Это меняет тип запроса.

В списке Имя таблицы выберите новую таблицу, созданную на шаге 2. Нажмите кнопку OK.

В меню Запрос нажмите кнопку Выполнить.

Когда вам будет предложено сообщение "Вы вот-вот вставьте #row(s) в новую таблицу", нажмите кнопку Да, чтобы вставить строки.

В меню Файл нажмите кнопку Закрыть. Нажмите кнопку Нет, чтобы закрыть окно AppendQuery.

Щелкните Таблицы на левой области. Щелкните правой кнопкой мыши новую таблицу и нажмите кнопку Просмотр дизайна.

В представлении Design для таблицы добавьте поле AutoNumber с тем же именем поля, которое удалено на шаге 1. Добавьте это поле AutoNumber в новую таблицу и сохраните таблицу.

Закрой окно представления Design.

Переименуй главную таблицу, а затем переименуй новую таблицу в соответствие с именем главной таблицы.

Доступ к версиям 2007 и более поздних версий

Читайте так же:
Общество с ограниченной ответственностью водоучет поверка счетчиков

Для этого в Microsoft Office Access 2007 или в более поздней версии выполните следующие действия:

Удаление поля AutoNumber из основной таблицы.

Обратите внимание на имя поля AutoNumber.

Скопируйте структуру основной таблицы и создайте новую таблицу.

Щелкните вкладку Создать, а затем нажмите кнопку Дизайн запроса в другой группе.

В диалоговом окне Show Table выберите главную таблицу. Нажмите Добавить, а затем — Закрыть.

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

На вкладке Дизайн щелкните Приложение в группе Тип запроса.

Это меняет тип запроса.

Я список имен таблицы, выберите новую таблицу, созданную на шаге 2, а затем нажмите кнопку ОК.

На вкладке Дизайн нажмите кнопку Выполнить в группе Результаты.

Когда вам будет предложено сообщение "Вы вот-вот вставьте #row(s) в новую таблицу", нажмите кнопку Да, чтобы вставить строки.

Щелкните правой кнопкой мыши новую таблицу и нажмите кнопку Просмотр дизайна.

В представлении Design для таблицы добавьте поле AutoNumber с тем же именем поля, которое удалено в шаге 1. Добавьте это поле AutoNumber в новую таблицу и сохраните таблицу.

Закрой окно представления Design.

Переименуй главную таблицу, а затем переименуй новую таблицу в соответствие с именем главной таблицы.

Сброс поля AutoNumber в таблице со ссылками на таблицы

Таблица со ссылками имеет отношение к одной или нескольких таблицам. Ниже описано, как сбросить поле AutoNumber для таблицы с одной ссылкой. Если в таблице имеется несколько ссылок, необходимо следовать этим шагам для каждой ссылаемой таблицы.

Удалите связь между таблицами.

Установите поле AutoNumber основной таблицы для типа данных Номер, а затем удалите основной ключ.

Создайте новое поле типа данных AutoNumber в главной таблице и сохраните таблицу.

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

Чтобы создать запрос обновления, обновляющий новое поле в таблице ссылок на новое поле AutoNumber основной таблицы, выполните следующие действия.

Доступ к версиям 2003 и более ранних версий

    Щелкните Запросы в левой области и нажмите кнопку Создать запрос в представлении Design в правой области.

Это создает новый запрос.

Это создает соединение между таблицами, основанными на исходных полях ссылок.

Доступ к версиям 2007 и более поздних версий

  1. Щелкните вкладку Создать, а затем нажмите кнопку Дизайн запроса в другой группе. Это создает новый запрос.
  2. В диалоговом окне Show Table выберите главную таблицу и таблицу ссылок. Щелкните Добавить, чтобы добавить главную таблицу и таблицу со ссылками. Нажмите кнопку Закрыть.
  3. Щелкните поле в главной таблице, которое ранее было привязано к ссылке, а затем перетащите поле в ранее связанное поле ссылаемой таблицы.

Это создает соединение между таблицами, основанными на исходных полях ссылок.

Это меняет тип запроса.

Удаление исходного поля ссылок из основной таблицы и со ссылкой.

Revert the name of the new AutoNumber field to the original name.

Повторно создайте основной ключ и связь между таблицами. Эта процедура сбрасывает поле AutoNumber и обновляет таблицу ссылок с помощью правильных ключевых значений.

Связывание таблиц и удаление связей в Microsoft Access

Работа с базами данных — процесс, требующий определённых навыков и понимания некоторых нюансов. Разработанная компанией Microsoft программа Access даёт пользователям возможность быстро создавать и редактировать БД. Один из важнейших моментов, с которым обязательно нужно разобраться, при создании БД — связывание её элементов. В этой статье разберёмся с тем, как создать или удалить связи между таблицами в Access. Давайте же начнём. Поехали!

Прежде чем мы перейдём к связыванию, необходимо создать так называемые ключевые поля. Что это такое? Ключевое поле — это поле, определяющее каждую запись. Теперь перейдём непосредственно к его созданию. Открыв нужную таблицу, щёлкните правой кнопкой мыши по вкладке и выберите пункт «Конструктор». Затем добавьте новое поле. Например, если у вас есть список сотрудников, то ключевым стоит сделать «код сотрудника», указав тип данных «счётчик» либо «числовой». Чтобы сделать его ключевым, нажмите кнопку «Ключевое поле», расположенную на панели инструментов Microsoft Access. Далее, необходимо проделать то же самое для всех остальных таблиц.

Переход в конструктор таблицы из выпадающего меню

Теперь уже можно связывать наши таблицы. Чтобы сделать это, откройте вкладку «Работа с базами данных» и в разделе «Отношения» ленты инструментов выберите пункт «Схема данных». Перед вами откроется окно, в котором понадобится выбрать все таблицы. Поочерёдно кликните по каждой из них. Закончив, выйдите из этого окна. Теперь нужно определиться с тем, как именно связывать. Например, есть две таблицы: «Бренд» и «Одежда», между которыми необходимо связать между собой. Поле «Код бренда» должно быть и там, и там. Если оно отсутствует — создайте его. При этом для записей категории «Бренд» оно будет ключевым (так называемый первичный ключ), а для «Одежда» — обычным (внешний ключ). Первичный ключ «Код бренда» перетащите на внешний ключ «Код бренда». После этого появится диалоговое окно, в котором нужно отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей». Отметив все пункты, нажмите кнопку «Создать». Появится чёрная линия, соединяющая указанные строки. Созданная связь имеет название «один ко многим». То есть в приведённом примере это будет означать, что один бренд может выпускать много разной одежды.

Пример связи один к одному между двумя базами данных

Далее, аналогичным образом свяжите все остальные, не забывая добавлять поля. Имея минимум три таблицы (среди которых две основных и одна промежуточная), вы можете создать тип связи «многие ко многим». Для заполнения полей, являющихся внешними ключами, можно использовать «Мастер подстановок». Чтобы сделать это, перейдите в режим конструктора и в разделе «Тип данных» выберите пункт «Мастер подстановок». В открывшемся окне выберите откуда будет взята информация для заполнения. Затем укажите нужные поля и нажмите кнопку «Далее». Следующие два окна можно пропустить. В конце кликните по кнопку «Готово». Прежде чем начать заполнение, программа предложит вам сохраниться, щёлкните «Да». Обратите внимание, что заполнение таким способом возможно только в случае, если связь ещё не установлена. Если у вас так не получилось, то вы можете удалить её и заполнить ячейки. После этого она автоматически появится, однако, вам понадобится кликнуть по ней два раза и отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей».

Связь многие ко многим через мастер подстановок Access

Чтобы удалить связь, кликните по кнопке «Схема данных» на панели инструментов, затем щёлкните по линии, показывающей её, и нажмите на клавиатуре клавишу delete.

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

Access счетчик при удалении

В созданную таблицу данные могут быть введены как непосредственно в табличной форме «по умолчанию», так и с использованием специально разработанной пользовательской экранной формы. Редактирование записей и исправление ошибок в данных таблицы возможно также в каждом из двух указанных режимов.

При любом из указанных способов ввода и корректировки данных таблицы Access сохраняет введенную или исправленную запись на диске (том, на котором создана таблица БД).

Ввод данных

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

Вдоль верхнего края окна расположены имена полей таблицы. Каждое поле соответствует определенному столбцу в таблице. Каждая запись занимает одну строку таблицы. Ввод в определенную ячейку таблицы (выделенную курсором) осуществляется путем набора информации на клавиатуре и последующим нажатием клавиши Enter или Таb . При окончании ввода данных в последнее поле записи Access сам переходит на первое поле новой записи и ожидает ввода данных.

Внимание! Заполнения с клавиатуры требуют все поля, кроме тех, тип которых определен как Счетчик .

Перемещение в таблице

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

Первая запись — щелчок мышью по кнопке Первая запись ;

Последняя запись — щелчок мышью по кнопке Последняя запись ;

Первый столбец таблицы — клавиша Но m е ;

Последний столбец таблицы — клавиша End ;

Следующий столбец справа — одна из клавиш Right , Enter или Tab ;

Следующий столбец слева — клавиша Right , или Shift + Tab ;

На строку вверх – Up ;

На строку вниз — Down ;

Вверх на 26 строк — PgUp ;

Вниз на 26 строк — PgDn ;

В левый верхний угол таблицы — Ctrl + Home ;

В правый нижний угол таблицы — Ctrl + End .

Редактирование данных

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

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

Частичную замену данных можно осуществить двумя способами:

во-первых, щелкнуть в нужной ячейке, и она автоматически откроется для редактирования;

во-вторых, используя клавиши, переместиться в нужную ячейку, а затем нажать функциональную клавишу F 2 .

Удаление записи

Для удаления записи ее необходимо выделить (щелкнуть по области маркировки записи) и либо нажать клавишу Del , либо выполнить команду меню Правка , Удалить . В выводимом на экран запросе подтвердить удаление.

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

1. В каких сферах деятельности применяется система управления базами данных Access фирмы Microsoft .

Access счетчик при удалении

Важным элементом программ работы с базами данных является механизм «отчетов». Так как структура баз может быть достаточно сложной, для реализации таких программ недостаточно знать основные возможности «конструктора отчетов». Может потребоваться знание ряда слабо документированных функций и технологических приемов

Выходные документы в СУБД проектируются с помощью механизма отчетов. В MS Access этот механизм имеет массу возможностей, позволяющих создавать выходные документы без обращения к программированию на встроенном языке VBA. Однако не все задачи можно решить таким путем.

Рассмотрим пример. Допустим, есть таблица «TELEFKOD» телефонных кодов с 528-ю записями, начало которой имеет следующий вид:

NPPGORODKOD_TELOBLAST
1Авдеевка06236Донецкая
2Акимовка06131Запорожская
3Александрия05235Кировоградская
4Александровка06269Донецкая
5Александровка05269Кировоградская
6Алушта06560Крым

Рис. 1. Вид отчета в Конструкторе

Причем поле «NPP» имеет тип Счетчик (Длинное целое), особенность которого состоит в следующем: при удалении записи в этом поле удаляется и значение, которое больше повторяться не будет. В результате перечень порядковых номеров может не совпасть с перечнем значений в этом поле.

В качестве выходного документа для этой таблицы подготовлен несложный отчет, вид которого в Конструкторе представлен на рис. 1.

Рис. 2. Вид окна свойств Примечания отчета

В этом отчете названия колонок (шапка таблицы) размещены в верхнем колонтитуле, в качестве номера по порядку используется поле «NPP», в нижнем колонтитуле указывается номер страницы и добавлено Примечание отчета с количеством выводимых записей и примером подписей. Модуль класса пустой (то есть никаких программных кодов на языке VBA нет). Распечатывается такой отчет без проблем. Но могут возникнуть претензии к размещению Примечания. По умолчанию его свойство Не разрывать имеет значение «Да». (рис. 2).

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

Во-первых, здесь по ходу дела задействовано интересное свойство Report_NoData — обработка ситуации, когда в таблице-источнике данных нет записей. Текст процедуры почти стандартен, строка Cancel = True приводит к прекращению печати отчета.

Рис. 3. Размещение элемента управления Конец страницы в Области данных

Во-вторых, в Области данных установлен элемент управления Конец страницы (рис. 3), действие которого контролируется в модуле класса.

Рис. 4. Пример вывода Примечания отчета на новой странице вместе с несколькими (двумя) последними строками данных

При форматировании каждой новой страницы его «видимость» отключается (Me![EndStr1]. Visible = False). Включается же при форматировании Области данных — при наступлении определенного условия, которое состоит из двух частей. Первая контролирует область листа, на котором Примечание уже не может разместиться полностью. В данном отчете опытным путем определено, что такой момент возникает после печати 39-й строки (If I1 > 39 Then). Целочисленной переменной, в которой учитывается номер печатаемой строки, является I1. При форматировании верхнего колонтитула она обнуляется, а при форматировании каждой новой строки данных ее значение увеличивается на 1. Но этого мало — требуется еще определить, что выводятся последние строки. Это делается через две другие переменные: KolZ, в которую заносится номер текущей записи в печатаемой таблице (KolZ = Me. CurrentRecord) и KolZap, в которой хранится общее количество записей, рассчитываемое при открытии отчета (KolZap = zap. RecordCount). В конечном итоге, если возникает ситуация печати последних двух записей в зоне листа, где уже не может полностью разместиться Примечание, то они печатаются вместе с ним на следующей странице (рис. 4).

Рис. 5. Настройка в Рис. 6. Результат отображения

Но в этом примере есть и ошибка — итоговое поле для подсчета количества записей в Примечании отчета насчитало 528 записей. А последний Номер по порядку значится как «529». Такая ситуация возможна в случае, если в качестве номера по порядку выводится поле, имеющее тип Счетчик, а в процессе заполнения таблицы были выполнены удаления записей (в примере была удалена одна запись). Поэтому в качестве поля порядкового номера в отчете лучше использовать свободное поле, не связанное с исходной таблицей. В качестве данных для такого поля надо установить значение «=1» и указать вариант Для всего в параметре Сумма с накоплением (рис. 5 — вид в Конструкторе и рис. 6 — при предварительном просмотре).

Рис. 7. Добавление поля порядкового номера на странице (в Конструкторе)

Может возникнуть необходимость нумерации не только в границах всего отчета, но и постранично. Это также делается через свободное поле (рис. 7), но его заполнение выполняется в модуле класса. Под него объявляется новая переменная, например: Dim NStrP As Integer. Она должна обнуляться при форматировании верхнего колонтитула и заполняться при форматировании области данных, например:

Рис. 8. Вид диалогового окна Сортировка и группировка Рис. 9. Вид Отчета с группировкой по областям и с сортировкой по городам внутри

Последним вариантом учета строк рассмотрим нумерацию в группе. Access позволяет сортировать и группировать данные прямо при выводе. Эти настройки выполняются в Конструкторе через диалоговое окно Сортировка и группировка (вызывается по команде меню Вид) — рис. 8. Для создания группировки по какому-либо полю этого окна, его (поле) надо выбрать в списке (в примере — поле OBLAST) и указать «Да» в параметре Заголовок группы. Здесь же можно установить сортировку для других полей без группировки по ним (в примере — по полю GOROD). Вывод порядкового номера в группе производится в «свободном» поле, в параметре Данные которого указано «=1», но Сумма с накоплением установлена Для группы. Фрагмент результата показан на рис. 9.

Следующей проблемой может оказаться размещение в нижнем колонтитуле промежуточных сумм по какому-либо полю. Такая ситуация часто возникает в финансовых документах — например, при распечатке ведомости на зарплату. На первый взгляд, сделать это можно по технологии, рассмотренной ранее: объявляется переменная, обнуляется при форматировании верхнего колонтитула и заполняется при форматировании области данных. Но поскольку результат должен быть занесен в «свободное» поле, размещенное в другом разделе (в Нижнем колонтитуле), сумма окажется неправильной — ведь процесс форматирования некоторых разделов «отчетов» в Access может повторяться . Это является особенностью технологии подготовки «отчетов» — нужно помнить об этом при программировании. В частности, в рассматриваемом примере заполнение переменной для промежуточной суммы (SumStr) можно выполнять не при форматировании области данных, а при отработке свойства печати области данных (ОбластьДанных_Print), в которой можно проконтролировать ситуацию — будет печататься лист с этими данными или нет. И именно в зависимости от результатов контроля должно быть заполнено поле, расположенное в нижнем колонтитуле. Допустим, оно имеет имя SumS, а переменная, в которой накапливается значение на странице,- SumStr. Тогда текст кода подобной процедуры будет иметь следующий вид:

Рис. 10. Пример вывода Отчета с Подчиненным отчетом в разделе Примечания отчета (и с неправильным заполнением поля № строки на странице в Подчиненном отчете - значения

Подобная же ситуация может возникнуть при попытке использовать Подчиненный отчет, который чаще всего вставляется в Примечание отчета или в Примечание группы. Если в нем требуется указывать какое-то расчетное значение (например, тот же номер на странице), то оно может оказаться неправильным, так как такой отчет будет форматироваться несколько раз (рис. 10).

Для решения проблемы команду заполнения поля № строки на странице Подчиненного отчета надо переместить из обработки события Форматирования в обработку события Печать раздела Область данных, например:

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector