Табличная форма с подтаблицей

Табличная форма с подтаблицей

Табличная форма в Меню
Привет всем! Появилась такая проблемка: создала новое меню, в котором можно открывать различные.

Табличная форма с кнопками
может у кавота есть пример файла Табличная форма с кнопками.. Поделитесь, пожалуйста

Табличная подчиненная форма
Здравствуйте, У меня есть форма с парой кнопкой и подчиненная форма в виде таблицы. Проблема в.

Табличная форма и свойство Column()
Доброго дня, уважаемые форумчане! Прошу вашей помощи. Есть форма Товар. В ней поле со списком.

Не смотря на то, что вопрос изначально был задан довольно давно, практика показывает что актуальность он не потерял. А так как полного детального ответа, по моему мнению, на него здесь пока не прозвучало, решил внести ясность в эту тему.

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

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

Если все сделано правильно. то при запуске основной формы в режиме таблицы (или ленточной формы) можно будет увидеть те самые долгожданные значки «+» которые и будут раскрывать подтаблицу !

Пункт «Развернутая подтаблица» в свойствах Основной формы указывает на то, как будет выглядеть подтаблица после открытия основной формы. Если стоит Нет (умолчание) — при загрузке подтаблица будет свернутой а если Да, то при открытии основной формы все поля подтаблицы будут раскрыты.

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

Добавлено через 16 минут
Небольшое дополнение.

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

Источник:
http://www.cyberforum.ru/ms-access/thread1468260.html

Добавление подтаблицы

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

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

В этой статье

Общие сведения о подтаблицах

Подтаблица полезна, если вы хотите просмотреть информацию из нескольких источников данных в одном режиме таблицы. Например, в образце базы данных «Борей» в таблице «заказы» есть отношение «один-ко-многим» с таблицей «сведения о заказах».

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

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

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

Таблица находится в отношение «один-к-одному».

Таблица — это сторона «один» отношения «один-ко-многим», в которой свойство «SubdatasheetName» таблицы имеет значение «Авто».

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

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

Открытие и закрытие подтаблицы

Чтобы определить, есть ли в таблице, запросе или форме подтаблица, откройте объект в режиме таблицы. Если индикатор развертывания (+ знак) присутствует, таблица, запрос или форма содержат подтаблицу. Когда подтаблица открыта, индикатор превращается в символ «a». Подтаблицы могут быть вложены в основную подтаблицу на 8 уровнях.

Чтобы открыть подтаблицу, щелкните знак «плюс» рядом со значением, для которого требуется просмотреть записи.

Чтобы закрыть подтаблицу, щелкните знак «минус».

Совет: Чтобы развернуть или свернуть все подтаблицы в таблице, на вкладке Главная в группе записи нажмите кнопку Дополнительно. Затем выберите подтаблицуи выберите нужный параметр.

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

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

Добавление подтаблицы

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

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

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

В поле связать ДочернИе поля выберите поле, которое вы хотите использовать в качестве внешний ключ или совпадающего поля, которое предоставит данные для подтаблицы.

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

Например, если вы хотите создать подтаблицу для просмотра связанных заказов для каждой записи клиента в таблице «клиенты», выберите таблицу «заказы», в поле «доЧерний список полей » выберите идентификатор заказчика, а затем в поле Основные поля выберите Идентификатор.

Примечание: Значения в полях » ссылка ДочернИй элемент » и » Образец ссылки » создают объединение для указанных полей.

Нажмите кнопку OK, чтобы сохранить изменения.

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

Примечание: Дочернее поле (внешний ключ) не отображается в качестве столбца в подтаблице. При добавлении новой записи в подтаблицу Access автоматически вставляет значение первичного ключа выбранной базовой таблицы.

Источник:
http://support.microsoft.com/ru-ru/office/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%B4%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B-900d1d30-5ea2-4e47-80a7-ddcb87a53d14

Изменение внешнего вида таблицы

В Microsoft Access существует понятие макета таблицы. Макет таблицы — это вид, в котором данные отображаются в окне в режиме Таблицы. По умолчанию формируется стандартный макет таблицы, который можно увидеть на экране, если открыть, например, таблицу «Типы» (Categories) базы данных «Борей» в режиме Таблицы. Асcess позволяет изменить макет таблицы. При этом можно изменить его как для всех таблиц данного приложения, так и только для одной таблицы. Для того чтобы изменить макет для всех таблиц, необходимо изменить параметры Access. Это выполняется с помощью команды Сервис, Параметры (Tools, Options) (см. гл. 14).

Читайте также  Как сделать форму поиска в access?

Для изменения формата отображения конкретной таблицы служит панель инструментов Формат (режим таблицы) (Formatting (Datasheet)) (рис. 2.44), а также команда главного меню Формат (Format). Для отображения панели инструментов Формат (режим таблицы) (Formatting (Datasheet)) необходимо в меню Вид (View) выбрать команду Панели инструментов (Toolbars) и установить флажок Формат (режим таблицы) (Formatting (Datasheet)) (см. разд. «Навигация по таблице» выше в этой главе).

Описание элементов панели форматирования и соответствующих команд меню Формат (Format) приведено в табл. 2.15.

Таблица 2.15. Описание элементов панели инструментов Формат (режим таблицы)

На рис. 2.45 приведено диалоговое окно Формат таблицы (Datasheet Formatting), которое открывается при выполнении команды Формат, Режим таблицы (Format, Datasheet). Элементы этого окна (списки и переключатели) позволяют изменить вид таблицы. Списки в полях группы Вид границы и линий (Border and Line Styles) включают существенно больше вариантов оформления, чем выведено на кнопки панели форматирования. В поле Образец можно проверять результат выбора.

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

  1. В меню Формат (Format) выбрать команду Высота строки (Row Height).
  2. В окне Высота строки (Row Height) в поле Высота строки (Row Height) ввести высоту строки в пунктах (рис. 2.46).
  3. При необходимости вернуться к стандартной высоте строки установить флажок Стандартная (Standard Height).
  4. Нажать кнопку ОК.

Аналогично изменение ширины столбца возможно путем перетаскивания правой границы столбца в области выделения с помощью мыши или с помощью команды меню Формат, Ширина столбца (Format, Column Width).

Чтобы установить ширину столбца в соответствии с шириной данных (самая длинная строка), необходимо дважды щелкнуть левой кнопкой мыши на правой границе столбца в области выделения. Или открыть диалоговое окно Ширина столбца (Column Width) с помощью команды Формат, Ширина столбца (Format, Column Width) и нажать кнопку По ширине данных (Best Fit).

Чтобы скрыть столбцы таблицы с экрана, необходимо:

  1. Выделить столбцы, которые требуется скрыть.
  2. Выбрать в меню Формат (Format) команду Скрыть столбцы (Hide Columns) или нажать правую кнопку мыши на выделенном столбце и в контекстном меню выбрать команду Скрыть столбцы (Hide Columns) (рис. 2.47).

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

Чтобы отобразить скрытые столбцы, необходимо:

  1. Выбрать в меню Формат (Format) команду Отобразить столбцы (Unhide Columns).
  2. В окне Отобразить столбцы (Unhide Columns) установить флажки соответствующих полей для отображения столбцов или снять флажки для того, чтобы их скрыть (рис. 2.48).
  3. Нажать кнопку Закрыть (Close).

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

Как мы уже показали выше, в случае если таблица имеет подчиненную таблицу, по умолчанию в левой части окна появляется столбец отображения подчиненных таблиц. В меню Формат (Format) присутствуют три команды для управления этим столбцом.

Чтобы отобразить подчиненные записи для всех записей основной таблицы, необходимо в меню Формат (Format) выбрать команду Подтаблица (Subdatasheet) и в раскрывающемся меню выбрать команду Развернуть все (Expand All).

Чтобы скрыть все подчиненные записи, необходимо в меню Формат (Format) выбрать команду Подтаблица (Subdatasheet) и в раскрывающемся меню выбрать команду Свернуть все (Collapse All). При этом важно, чтобы курсор находился на одной из записей основной таблицы, но не подчиненной.

Чтобы убрать столбец отображения подчиненных таблиц, необходимо в меню Формат (Format) выбрать команду Подтаблица (Subdatasheet) и в раскрывающемся меню выбрать команду Удалить (Remove).

Чтобы вставить столбец отображения подчиненных таблиц, необходимо:

  1. В меню Вставка (Insert) выбрать команду Подтаблица (Subdatasheet).
  2. В окне Вставка подтаблицы (Insert Subdatasheet) (рис. 2.49) выбрать на вкладке Таблицы (Tables) таблицу, которую нужно вставить.

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

  1. Выделить закрепляемые столбцы.
  2. Выбрать в меню Формат (Format) команду Закрепить столбцы (Freeze Columns) или щелкнуть правой кнопкой мыши на выделенном столбце (столбцах) и в контекстном меню выбрать команду Закрепить столбцы (Freeze Columns). При этом выделенные столбцы будут перемещены в левую часть экрана.

Для освобождения закрепленных столбцов необходимо выбрать в меню Формат (Format) команду Освободить все столбцы (Unfreeze All Columns).

Чтобы переместить столбцы внутри таблицы в режиме Таблицы, необходимо:

  1. Выделить нужный столбец (столбцы).
  2. Установить указатель мыши на область выделения над выбранными столбцами.
  3. Нажать левую кнопку мыши и «перетащить» столбцы на новое место.
  4. Отпустить левую кнопку мыши.

Чтобы переместить столбцы внутри таблицы в режиме Конструктора, необходимо:

  1. Открыть таблицу в режиме Конструктора.
  2. Выделить строку (строки), соответствующую перемещаемым столбцам.
  3. Установить указатель мыши в область выделения перемещаемых строк и нажать левую кнопку мыши.
  4. Переместить строки на новое место.
  5. Отпустить левую кнопку мыши.

После изменения макета таблицы в режиме Таблицы или в режиме Конструктора Microsoft Access потребует подтверждения изменения макета. В этом случае необходимо нажать кнопку Да (Yes), если нужно сохранить изменения, или кнопку Нет (No), если изменения сохранять не нужно.

Источник:
http://www.taurion.ru/access/2/24

Выпадающий список на форме Access 2003

Продолжаем осваивать Access, и сегодня мне бы хотелось поделиться с Вами одной маленькой, но иногда очень полезной хитрости при проектировании формы Access. А точнее данная хитрость касается выпадающего списка, поэтому сейчас мы займемся основами создания выпадающих списков на форме Access 2003.

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

Что такое выпадающий список в Access 2003

Если говорить точнее, то в access данный элемент управления называется «Поле со списком». И он необходим, для того чтобы пользователь мог, не набирая на клавиатуре все значение целиком, выбрать его простым кликом мышки. Здесь имеется в виду, что эти значения будут распространенные, т.е. эти значения будут вводить достаточно часто и чтобы упростить и ускорить ввод этих данных и придумали выпадающий список. И если под итожить, то

Поле со списком – это набор значений (список), которые могут отобразиться на экране, для выбора, путем клика мышки по данном элементу управления, т.е. выпадающему списку.

Как создать выпадающий список

Для этого необходимо сначала создать форму, если она у Вас уже есть то это даже лучше, но для начинающих я повторюсь.

Открываем Access в режиме конструктора, выбираем «Формы» на окне объекты, и жмем создать

Затем нам предложат выбрать источник данных, но нам этого не нужно мы просто жмем «ОК»

Затем на панели элементов выбираем элемент «Поле со списком» и перетащим его на нашу форму, и сразу же в это время запустится мастер создания полей со списком. На первом шаге нам предложат, выбрать способ получения данных, и для начала мы выберем «Фиксированный набор значений», в дальнейшем мы разберем, как можно использовать получения данных на основе запроса или таблицы. А пока жмем далее:

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

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

Вот в принципе и все, единственное на следующем шаге мы можем задать подпись нашего выпадающего списка и жмем «Готово»

В итоге у нас на форме будет отображено следующее

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

Теперь сохраняем форму, и запускам ее:

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

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

И теперь у нас все будет выглядеть как надо

Отображается второй столбец, а записывается в базу первый, т.е. идентификатор.

Ну и теперь вкратце, как и обещал, покажу, как задать список значений на основе запроса к базе данных. Не используя при этом ввод значений, так как все наши значения будут храниться в базе. Для этого давайте определимся с источником, пусть это будет таблица test_table, вот с таким данными, простой запрос select:

И теперь чтобы переделать наше поле со списком заходим в его свойства, переходим на вкладку «Данные» и меняем там «Тип источника строк» на «Таблица, представление, процедура» и «Источник строк» на запрос скажем вот такой

От себя я добавил условие where priz = 0 просто так чтобы Вы понимали, что эта таблица может использоваться для разных полей со списком.

Больше ничего не меняем, просто сохраняем и запускаем нашу форму

И теперь наш выпадающий список берет значения не из простого списка, а из базы данных.

С выпадающими списками Вы теперь знакомы, и знаете даже небольшие хитрости, которые помогут Вам в реализации Ваших задач. Удачи!

Источник:
http://info-comp.ru/obucheniest/365-drop-down-list-on-the-access.html

Как сделать подтаблицу в access?

Работа с таблицами ведется, понятное дело, через GetTableNames и TableName. Подскажите, пожалуйста, как работать с подтаблицами через ADO.


-=XP=- © ( 2005-06-15 18:17 ) [1]

как работать с подтаблицами через ADO


Магнум ( 2005-06-15 19:08 ) [2]

Я и работаю через ADO.


Zacho © ( 2005-06-15 19:22 ) [3]

Магнум (15.06.05 17:14)

А что такое «подтаблицы» ? Нарушение 1НФ ?


Магнум ( 2005-06-15 20:08 ) [4]

О подтаблицах
В подтаблице можно просматривать и редактировать связанные или объединенные данные таблицы, запроса, формы или подчиненной формы. Например, в базе данных «Борей» таблица «Поставщики» имеет отношение «один-ко-многим» с таблицей «Товары»; поэтому для каждой строки таблицы «Поставщики» в режиме таблицы можно просматривать и редактировать в подтаблице связанную строку таблицы «Товары».

Щелкните индикатор развертывания, чтобы развернуть или свернуть подтаблицу

Microsoft Access автоматически создает подтаблицу в таблице, имеющей отношение «один-к-одному» или являющейся стороной «один» в отношении «один-ко-многим», если свойство таблицы Имя подтаблицы (SubdatasheetName) имеет значение Авто. Отношение определяется по совпадению полей первичного ключа и внешнего ключа в связанных таблицах.

Тем не менее, подтаблицу можно добавить в любую таблицу, запрос или форму. Подтаблица может использовать в качестве источника данных таблицу или запрос (указанный в свойстве Имя подтаблицы (SubdatasheetName)). Подтаблица, относящаяся к подчиненной форме, может использовать в качестве источника данных таблицу, запрос или форму (указанную в свойстве подчиненной формы Объект-источник (SourceObject)).

В пределах таблицы можно вложить до восьми уровней подтаблиц. Однако каждая таблица или подтаблица может иметь только одну вложенную подтаблицу. Например, таблица «Клиенты» может содержать одну подтаблицу таблицы «Заказы», а подтаблица таблицы «Заказы» может содержать одну подтаблицу «Заказано». Но содержать подтаблицу таблицы «Заказы» и подтаблицу запроса «Продавцы» одновременно таблица «Клиенты» не может.

Формы, подчиненные формы и подтаблицы

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

В форму подтаблица вставляется путем добавления подчиненной формы с последующим определением объекта-источника путем указания таблицы, запроса или формы в свойстве Объект-источник (SourceObject) подчиненной формы. При просмотре формы в режиме таблицы, подчиненная форма отображается в виде подтаблицы. Если в качестве объекта-источника подчиненной формы используется форма, то для свойства Режим по умолчанию (DefaultView) может быть задано значение Таблица, Простая форма или Ленточная форма. Таким образом, в форме в режиме таблицы можно также просматривать подтаблицу в виде простой или ленточной формы.
Хотя форма может иметь более одной подчиненной формы, каждая из которых может иметь до двух уровней вложения, в режиме таблицы для формы отображается только одна подтаблица. Microsoft Access выводит подтаблицу, соответствующую первой подчиненной форме в порядке перехода по форме.
При первом открытии таблицы, запроса или формы в режиме таблицы подтаблица не развертывается; однако при первом открытии формы в режиме формы подтаблица, соответствующая подчиненной форме, развертывается.
Если объектом-источником для подчиненной формы является форма, то в подтаблице, соответствующей этой подчиненной форме, можно постоянно отображать внешний ключ или связанные поля.

Магнум (15.06.05 20:08) [4]

Читай лучше другую документацию, в которой используется общепринятая для СУБД терминология, а не какие-то загадочные «подтаблицы», которые на деле оказываются стандартной связкой Master-Detail.
И изучи любой учебник по работе с БД в Дельфи.

А вот ответ на твой вопрос: посмотри в хелпе, например, раздел Making the table a detail of another dataset И не забудь нажать на ссылку «See Also» 🙂


Магнум ( 2005-06-16 07:13 ) [6]

Где sniknik?
Нужна ваша квалифицированная помощь.


sniknik © ( 2005-06-16 08:30 ) [7]

да здесь я, только не понимаю вопроса вот и не вмешиваюсь. ;о))

не в принципе понятно что ты имееш ввиду (достаточно открыть аксес) но то что там видим это скорее такой оригинальный DBGrid а не свойства таблиц (подтаблицы ;о))). он просто так отображает внешние ключи (FOREIGN KEY). если хочеш у себя также, придется делать визуальный контрол аналогичный аксесовскому. (муторно и долго, хотя и возможно)
если же хочеш делать таблицы которые в при открытии базы в аксессе дадут тот же эффект, то это просто достаточно сделать связь. открываем справку jet-а, «срисовываем» пример запросов, выполняем через ADO,

CREATE TABLE Клиенты (ИндексКлиента INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

CREATE TABLE Заказы (КодЗаказа INTEGER PRIMARY KEY, ИндексКлиента INTEGER, ПримечанияЗаказа NCHAR VARYING (255),
CONSTRAINT ВнКлЗаказыИндексКлиента FOREIGN KEY (ИндексКлиента) REFERENCES Клиенты ON UPDATE CASCADE ON DELETE CASCADE)

осталось наполнить данными, получиш тоже самое (в аксессе, как ты будеш показывать это в дельфях, твое личное дело. ).

> Making the table a detail of another dataset
это тоже связь, аналогичная, мастер детайл, но обеспеченая на уровне клиента (программа на дельфи), foreign key на уровне сервера (базы).


sniknik © ( 2005-06-16 08:41 ) [8]

в > Магнум (15.06.05 20:08) [4] ты все в принципе описал (значит понимаеш что такое внешний ключ), и как работает. но что хочеш сделать непонятно. вопрос «как работать с «. любой несуществующий термин. » через «. неважно что. «» как вопрос не воспринимается.
если чегото нет, то как с ним работать? ;о))

Источник:
http://delphimaster.net/view/3-1118841262

Работаем с подтаблицами

В этом уроке мы научимся работать с подтаблицами и узнаем, как создать новую подтаблицу и привязать существующую напрямую из любой таблицы в СРМ системе «Клиентская база».

Что такое подтаблица?

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

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

Добавление подтаблицы

Давайте попробуем привязать, созданную нами на прошлом уроке таблицу «Заказы» к таблице «Контрагенты», для того чтобы переходя в карточку клиента иметь возможность сразу же просмотреть его заказы.

Для начала перейдем в «Настройки» — «Конфигурация» и выберем нужную нам категорию, в нашем примере это — “Компании” и таблица «Контрагенты», далее перейдем в настройки таблицы, кликнув по её названию.

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

Давайте нажмем на кнопку «Добавить подтаблицу».

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

При этом таблица уже может выступать как подчиненная относительно другой таблицы. Таким образом, одна таблица может быть подчинена многим таблицам. При подчинении таблица в состав её полей добавляется поле типа связь с названием «Связь с «Имя таблицы»», где «Имя таблицы» — название таблицы, которой текущая таблица подчинена. Если в данной таблице уже есть поля связи с нужной нам таблицей, то данное поле будет выбрано в разделе «Связь по полю».

Давайте перейдем в таблицу «Контрагенты», выберем одного из них и посмотрим на отображение подчиненных таблиц.

Настройки подтаблиц

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

Для того чтобы изменить отображаемое имя вкладки внизу записи, нужно сделать следующее: нажать на название подтаблицы, а затем в открывшемся окне отредактировать текст в графе «Имя подтаблицы». На имя таблицы в программе это не повлияет. Здесь же располагается ссылка на привязанную таблицу, указано по какому полю происходит связь.

Если нажать на кнопку «Дополнительно», то в поле «Фильтр» можно из существующих в этой таблице фильтров выбрать один, по которому будут отображаться записи в подтаблице.

Например, если мы в подтаблице хотим видеть только завершенные заказы, то нам необходимо будет создать соответствующий фильтр в таблице «Заказы» и выбрать его здесь в соответствующей графе. Подробнее о фильтрах, их назначении и настройке мы поговорим в одном из следующих уроков.

Использование подтаблиц

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

Перейдем в категорию «Компании», таблицу «Контрагенты» и откроем запись о каком-нибудь контрагенте на просмотр. Затем перейдем вниз страницы и откроем вкладку «Заказы».

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

Удалять записи можно также напрямую из подтаблицы, нажав на «красный крестик».

Слева от строки располагается иконка «Лупа», которая позволяет перейти в просмотр записи.

Как вы помните у таблицы «Заказы» есть собственная подтаблица «Позиции заказа», а значит для внесения полноценного заказа, нам нужно перейти в запись о заказе. При нажатии на знак «лупы», мы перейдем в запись в так называемый режим просмотра и нам будут доступны все обычные действия с записью:

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

Справа над панелью с именем подтаблицы отображаются еще две иконки — это «шестеренка» и значок для перехода в таблицу. «Шестеренка» здесь обозначает то же самое, что и в обычных таблицах и позволяет переходить в настройки таблицы.

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

Если после перехода мы хотим посмотреть все заказы, а не только по конкретному клиенту, но нужно закрыть панель, описывающий запрос по которому мы перешли, нажав на «крестик» в углу панели.

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

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

Источник:
http://clientbase.ru/support/first_steps/subtable/