Criar um formulário que contenha um subformulário (um formulário um-para-muitos)

Criar um formulário que contenha um subformulário (um formulário um-para-muitos)

Ao trabalhar com dados relacionais (dados relacionados que são armazenados em tabelas separadas), é frequentemente necessário ver múltiplas tabelas ou consultas dentro do mesmo formulário. Por exemplo, poderá querer ver os dados de um cliente numa tabela e, ao mesmo tempo, as informações sobre as encomendas desse cliente noutra tabela. Os subformulários são uma ferramenta útil para estas operações e o Access disponibiliza vários procedimentos para o ajudar a criar subformulários num instante.

O que pretende fazer?

Saiba mais sobre subformulários

Um subformulário é um formulário que é inserido noutro formulário. O formulário primário é designado por formulário principal e o formulário incluído nesse formulário é designado por subformulário. A combinação formulário/subformulário é por vezes denominada formulário hierárquico, mestre/detalhe ou principal/subordinado.

As subformações são especialmente eficazes quando se pretende mostrar dados de tabelas ou consultas que têm uma relação de um para muitos. Uma relação de um para muitos é uma associação entre duas tabelas em que o valor-chave primário de cada registo na tabela primária corresponde ao valor no campo ou campos correspondentes de muitos registos na tabela relacionada. Por exemplo, pode criar um formulário que exibe dados dos colaboradores e contém uma subforma que exibe as ordens de cada colaborador. Os dados na tabela dos Empregados são o lado "um" da relação. Os dados na tabela Encomendas são o lado "muitos" da relação — cada colaborador pode ter mais do que uma encomenda.

Um formulário que contém um subformulário

1. O formulário principal mostra os dados do lado "um" da relação.

2. O subformulário mostra os dados do lado "muitos" da relação.

O formulário principal e o subformulário neste tipo de formulário estão ligados de modo a que o subformulário apresente apenas os registos relacionados com o registo atualmente apresentado no formulário principal. Por exemplo, quando o formulário principal apresentar as informações da Emília Faria, o subformulário apresenta apenas as encomendas dessa colaboradora. Caso o formulário e o subformulário não estivessem ligados, o subformulário apresentaria as informações de todas as encomendas e não apenas as da Emília.

A tabela seguinte descreve alguma terminologia associada aos subformulários. O Access trata da maior parte dos detalhes se utilizar os procedimentos descritos neste artigo, mas, mesmo assim, é útil saber o que está a acontecer nos bastidores, caso precise de efetuar modificações mais tarde.

Termo

Definição

Controlo de subformulário

O controlo que incorpora um formulário dentro de outro formulário. É como uma "vista" de outro objeto na sua base de dados, quer seja outro formulário, tabela ou consulta. O controlo de subformulário possui propriedades que permitem ligar os dados apresentados no controlo aos dados do formulário principal.

Propriedade "Objeto de origem"

A propriedade do controlo de subformulário que determina o objeto a ser apresentado no controlo.

Folha de Dados

Uma simples apresentação dos dados em linhas e colunas, muito parecida com uma folha de cálculo. O controlo de subformulário apresenta uma folha de dados quando o seu objeto de origem for uma tabela, ou consulta, ou quando o seu objeto de origem for um formulário cuja propriedade Vista Predefinida esteja definida como Folha de Dados. Nesses casos, o subformulário é por vezes designado por folha de dados ou subfolha de dados, em vez de subformulário.

Propriedade "Ligar Campos Secundários"

Propriedade do controlo de subformulário que específica o campo ou campos no subformulário que ligam o subformulário ao formulário principal.

Propriedade "Ligar campos principais"

Propriedade do controlo de subformulário que específica o campo ou campos no formulário principal que ligam o formulário principal ao subformulário.

Notas: 

  • Para obter os melhores resultados, estabeleça as relações entre tabelas antes de seguir os procedimentos descritos neste artigo. Esta ação permite ao Access criar automaticamente as ligações entre subformulários e formulários principais. Para visualizar, adicionar ou modificar as relações entre tabelas da sua base de dados, no separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

  • Um controlo de subformulário que possua um formulário como objeto de origem contém os campos que colocar nesse formulário e pode ser visualizado como um formulário simples, um formulário contínuo ou uma folha de dados. Uma vantagem de basear um subformulário num objeto de formulário é que pode adicionar campos calculados ao subformulário, por exemplo [Quantidade] * [Preço Unitário].

  • Pode inserir uma folha de dados ou vista dinâmica num formulário criando um controlo de subformulário com uma tabela ou consulta como objeto de origem. Para obter mais informações, consulte a secção Adicionar dados relacionados a um formulário sem criar um subformulário.

Início da Página

Criar ou adicionar um subformulário

Consulte a tabela seguinte para determinar o procedimento mais adequado à sua situação.

Cenário

Procedimento recomendado

Pretende que o Access crie tanto um formulário principal como um subformulário e que ligue o subformulário ao formulário principal.

Criar um formulário que contenha um subformulário com o Assistente de Formulários

Pretende utilizar um formulário existente como formulário principal, mas pretende que o Access crie um novo subformulário e o adicione ao formulário principal.

Adicionar um ou mais subformulários a um formulário existente com o Assistente de Subformulários

Pretende utilizar um formulário existente como formulário principal e adicionar-lhe um ou mais formulários existentes como subformulários.

Criar um subformulário ao arrastar um formulário para dentro de outro

Criar um formulário que contenha um subformulário com o Assistente de Formulários

Este procedimento cria uma nova combinação de formulário e subformulário através do Assistente de Formulários. Esta é também a maneira rápida de começar caso ainda não tenha criado os formulários que pretende utilizar como formulário principal ou subformulário.

  1. No separador Criar, no grupo Formulários, clique em Assistente de Formulários

  2. Na primeira página do assistente, na lista pendente Tabelas/Consultas, selecione uma tabela ou consulta. Por exemplo, para criar um formulário Colaboradores que apresente as encomendas de cada colaborador num subformulário, selecionamos Tabela: Colaboradores (o lado "um" da relação um-para-muitos).

    Nota: Não importa que tabela ou consulta seleciona em primeiro lugar.

  3. Faça duplo clique nos campos que pretende incluir desta tabela ou consulta.

  4. Na mesma página do assistente, na lista pendente Tabelas/Consultas, selecione outra tabela ou consulta. Neste exemplo, utilizaremos a tabela Encomendas (o lado "muitos" da relação um-para-muitos).

  5. Faça duplo clique nos campos que pretende incluir desta tabela ou consulta.

  6. Partindo do princípio de que configurou corretamente as relações antes de iniciar o assistente, quando clicar em Seguinte, o assistente pergunta Como deseja ver os dados? – isto é, por que tabela ou consulta. Selecione a tabela no lado "um" da relação um-para-muitos. Neste exemplo, para criar o formulário Colaboradores, clicamos em por Colaboradores. O assistente apresenta um pequeno diagrama de um formulário. A página deverá assemelhar-se à seguinte ilustração:

    A página do subformulário no Assistente de Formulários

    A caixa na parte inferior do diagrama do formulário representa o subformulário.

    Nota: Se o assistente não perguntar Como deseja ver os dados?, significa que o Access não detetou uma relação um-para-muitos entre as tabelas ou consultas que selecionou. O assistente continua, mas o Access não adiciona um subformulário ao formulário. Poderá ser melhor clicar em Cancelar e examinar as relações de tabelas antes de continuar.

  7. Na parte inferior da página do assistente, Selecione Formulário com subformulário(s) e clique em Seguinte.

  8. Na página Qual o esquema que deseja para o subformulário?, clique no esquema pretendido e, em seguida, clique em Seguinte. Os dois estilos de esquemas dispõem os dados do subformulário em linhas e colunas, mas o esquema em tabela é mais personalizável. Pode adicionar cores, gráficos e outros elementos de formatação a um subformulário em tabela, enquanto que uma folha de dados é mais compacta, tal como a vista de folha de dados de uma tabela.

  9. Na página seguinte do assistente, selecione um estilo de formatação para o formulário e, em seguida, clique em Seguinte. Se selecionou Tabular na página anterior, o estilo de formatação que selecionar também será aplicado ao subformulário.

  10. Introduza os títulos que pretende dar aos formulários na última página do assistente. O Access atribui nomes aos formulários consoante os títulos que o utilizador introduzir e identifica o subformulário consoante o título que o utilizador introduzir para o subformulário.

  11. Especifique se quer abrir o formulário na vista Formulário (para poder ver ou introduzir informações) ou na vista Estrutura (para poder modificar a sua estrutura) e, em seguida, clique em Concluir.

    O Access cria dois formulários: um para o formulário principal que contém o controlo de subformulário e um para o próprio subformulário.

Início da Página

Adicionar um ou mais subformulários a um formulário existente com o Assistente de Subformulários

Siga este procedimento para adicionar um ou mais subformulários a um formulário já existente. Para cada subformulário, pode escolher se pretende que o Access crie um novo formulário ou utilize um já existente como subformulário.

  1. Clique com o botão direito do rato no formulário já existente no Painel de Navegação e, em seguida, clique em Vista Estrutura.

  2. No separador Estrutura, no grupo Controlos, clique na seta para baixo para apresentar a galeria Controlos e certifique-se de que a opção Utilizar Assistentes de Controlo está selecionada.

  3. No separador Estrutura, no grupo Controlos, clique no botão Subformulário/Subrelatório.

  4. Clique no formulário no qual pretende colocar o subformulário.

  5. Siga os passos indicados no assistente.

    Ao clicar em Concluir, o Access adiciona um controlo de subformulário ao seu formulário. Se definiu o Access para criar um novo formulário para o subformulário, em vez de utilizar um já existente, o Access cria o objeto do novo formulário e adiciona-o ao Painel de Navegação.

Criar um subformulário ao arrastar um formulário para dentro de outro

Siga este procedimento se pretender utilizar um formulário existente como formulário principal e adicionar-lhe um ou mais formulários existentes como subformulários.

  1. No Painel de Navegação, clique com o botão direito do rato no formulário que pretende utilizar como formulário principal e clique em Vista de Esquema.

  2. Arraste o formulário que pretende utilizar como subformulário do Painel de Navegação para o formulário principal.

    O Access adiciona um controlo de subformulário ao formulário principal e vincula o controlo ao formulário que arrastou. O Access tenta também ligar o subformulário ao formulário principal, consoante as relações definidas na base de dados.

  3. Repita este passo para adicionar outros subformulários ao formulário principal.

  4. Para confirmar que a ligação foi bem-sucedida, no separador Base, no grupo Vistas, clique em Vista, clique em Vista Formulário e, em seguida, percorra vários registos utilizando o seletor de registos do formulário principal. Se o subformulário efetuar a filtragem corretamente para cada colaborador, o procedimento está concluído.

Se o teste anterior falhar, significa que o Access não conseguiu determinar como ligar o subformulário ao formulário principal e que as propriedades Ligar Campos Secundários e Ligar Campos Principais do controlo de subformulário estão em branco. Deverá definir essas propriedades manualmente efetuando o seguinte:

  1. Clique com o botão direito do rato no formulário principal no Painel de Navegação e, em seguida, clique em Vista Estrutura.

  2. Clique uma vez no controlo de subformulário para o selecionar.

  3. Se o painel de tarefas Folha de Propriedades não estiver apresentado, prima F4 para o apresentar.

  4. Na Folha de Propriedades, clique no separador Dados.

  5. Clique no botão Construir Botão do Construtor ao lado da caixa de propriedade Link Child Fields.

    Aparece a caixa de diálogo Ligador de Campos do Subformulário.

  6. Nas listas pendentes Campos Principais e Campos Secundários, selecione os campos aos quais quer ligar os formulários e clique em OK. Se não tiver a certeza sobre que campos deve utilizar, clique em Sugerir para que o Access tente determinar os campos de ligação.

    Sugestão: Se não encontrar o campo que pretende utilizar para ligar os formulários, poderá ser necessário editar a origem de registos do formulário principal ou subordinado, de modo a garantir que o campo de ligação está nessa origem. Por exemplo, se o formulário for baseado numa consulta, certifique-se de que o campo de ligação está presente nos resultados da consulta.

  7. Guarde o formulário principal, mude para a vista Formulário e confirme que o formulário funciona conforme esperado.

Abrir um subformulário numa nova janela na vista Estrutura

Se quiser fazer alterações de estrutura a um subformulário enquanto trabalha no respetivo formulário principal na vista Estrutura, pode abrir o subformulário na sua própria janela:

  1. Clique no subformulário para o selecionar.

  2. No separador Estrutura, no grupo Ferramentas, clique em Subformulário em Nova Janela.

Início da Página

Alterar a vista predefinida de um subformulário

Quando adicionar um subformulário a um formulário, o controlo de subformulário/subrelatório apresenta o subformulário de acordo com a propriedade Vista Predefinida do mesmo. Esta propriedade pode ser definida com os seguintes valores:

  • Formulário Simples

  • Formulários Contínuos

  • Folha de Dados

  • Formulário Dividido

Ao criar um subformulário pela primeira vez, esta propriedade poderá estar definida comoFormulários Contínuos ou talvez Formulário Simples. No entanto, se definir a propriedade Vista Predefinida de um subformulário como Folha de Dados, o subformulário será apresentado como uma folha de dados no formulário principal.

Para definir a propriedade Vista Predefinida de um subformulário:

  1. Feche os objetos abertos.

  2. No Painel de Navegação, clique com o botão direito do rato no formulário e, em seguida, clique em Vista Estrutura.

  3. Se a Folha de Propriedades ainda não estiver apresentada, prima F4 para a apresentar.

  4. Na lista pendente situada no topo da Folha de Propriedades, certifique-se de que a opção Formulário está selecionada.

  5. No separador Formato da Folha de Propriedades, defina a propriedade Vista Predefinida com a vista que pretende utilizar.

    Nota: Se a vista pretendida não constar da lista, certifique-se de que a propriedade "Permitir vista de..." da vista em causa está definida como Sim. Por exemplo, se pretende especificar Folha de Dados como a vista predefinida do formulário, certifique-se de que a propriedade Permitir Vista de Folha de Dados está definida como Sim.

  6. Guarde e feche o subformulário e, em seguida, abra o formulário principal para verificar os resultados.

Início da Página

Adicionar dados relacionados a um formulário sem criar um subformulário

Nem sempre é necessário criar um objeto de formulário em separado para apresentar os dados relacionados. Por exemplo, se estiver a trabalhar num formulário na vista de Esquema ou de Estrutura e arrastar uma tabela ou consulta desde o Painel de Navegação até ao formulário, o Access cria um controlo de subformulário/subrelatório que apresenta os dados nesse objeto. A propriedade Vista Predefinida do objeto determina de que modo são apresentados os dados. Normalmente, está definida como vista de folha de dados, mas também pode alterar a propriedade Vista Predefinida de uma tabela ou consulta para Formulário Simples, Formulário Dividido ou Formulários Contínuos, conferindo mais flexibilidade à apresentação de dados relacionados nos formulários.

Nota: A alteração da propriedade Vista Predefinida de uma tabela ou consulta determina a forma como esta é apresentada sempre que for aberta, independentemente de a abrir a partir do Painel de Navegação ou de a visualizar através de um controlo de subformulário/subrelatório. Dado que a alteração das definições de vista de uma tabela pode, por vezes, causar confusão quando abrir a tabela a partir do Painel de Navegação, recomendamos que utilize uma consulta em vez de uma tabela para este procedimento.

Início da Página

Precisa de mais ajuda?

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×