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

Как сделать подтаблицу в 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 выводит подтаблицу, соответствующую первой подчиненной форме в порядке перехода по форме.
При первом открытии таблицы, запроса или формы в режиме таблицы подтаблица не развертывается; однако при первом открытии формы в режиме формы подтаблица, соответствующая подчиненной форме, развертывается.
Если объектом-источником для подчиненной формы является форма, то в подтаблице, соответствующей этой подчиненной форме, можно постоянно отображать внешний ключ или связанные поля.


Zacho © ( 2005-06-15 21:38 ) [5]

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

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

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

Читать еще:  Как сделать вычисляемое поле в таблице access 2007?


Магнум ( 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] ты все в принципе описал (значит понимаеш что такое внешний ключ), и как работает. но что хочеш сделать непонятно. вопрос «как работать с «. любой несуществующий термин. » через «. неважно что. «» как вопрос не воспринимается.
если чегото нет, то как с ним работать? ;о))

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

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

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

В этой статье

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

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

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

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

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

Читать еще:  Как сделать нумерацию строк в access?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Многотабличная форма access как сделать

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

Вообще говоря, подтаблицы автоматически создаются сразу после определения связей между таблицами. При этом рядом с каждой записью в таблице появляется изображение крестика, при нажатии на который будет развернута структура подтаблицы. Например, для таблицы Студенты такая структура будет создана на основе таблицы Успеваемость (рис. 1). Необходимо отметить, что данные в подтаблицах можно редактировать так же, как и в обычных таблицах (например, изменить студенту оценку по какому-либо предмету).


Рис. 1. Таблица Студенты с подтаблицей Успеваемость

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

С другой стороны, чтобы свернуть все раскрытые подтаблицы, следует выполнить команду Формат | Подтаблица | Свернуть все.

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

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

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

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


Рис. 2. Диалоговое окно Вставка подтаблицы

Для таблицы Студенты в качестве подтаблицы необходимо на вкладке Таблицы выбрать Успеваемость. Затем нужно в качестве параметров Подчиненные поля и Основные поля указать поля, по которым выполняется связь (в данном случае это КодСтудента), и нажать кнопку ОК.

В результате будет сформирована подтаблица, которая была ранее создана автоматически (рис. 1).

Эти действия можно увидеть здесь, а взять клип здесь.

Можно также создать сложную структуру, состоящую из нескольких подтаблиц.

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

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

Можно создать подтаблицу третьего уровня, в которой для каждого предмета будет отображаться фамилия преподавателя.

Для этого следует в таблице Студенты развернуть подтаблицу Успеваемость, в которой для какой-либо записи отобразить подтаблицу Предметы. Затем установить в последнюю подтаблицу курсор, снова выполнить команду Вставка | Подтаблица. После этого выбрать таблицу Преподаватели и указать поле для связывания КодПреподавателя. В результате получится структура, состоящая из четырех уровней: основная таблица Студенты и три вложенные подтаблицы Успеваемость => Предметы => Преподаватели (рис. 3).


Рис. 3. Таблица Студенты с несколькими подтаблицами

Реализацию этих действий можно увидеть здесь, а взять клип здесь.

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

Предыдущий шаг Содержание Следующий шаг

Ссылка на основную публикацию
Adblock
detector