Criar e usar sub-relatórios

Ao trabalhar com dados relacionais (onde dados relacionados são armazenados em tabelas diferentes), você frequentemente precisa visualizar informações de mais de uma tabela ou consulta no mesmo relatório. Por exemplo, você quer ver dados de clientes, mas também quer ver informações sobre pedidos de clientes ao mesmo tempo. Um sub-relatório é uma ferramenta útil do Access para fazer isso, pois ela permite exibir as informações de pedidos no relatório com as informações do cliente, de forma lógica e legível. O Access fornece várias maneiras para criar sub-relatórios com rapidez.

O que você deseja fazer?

Entender o que são sub-relatórios

Criar um sub-relatório

Fazer alterações de design em um sub-relatório

Entender o que são sub-relatórios

Um sub-relatório é um relatório que é inserido em outro relatório. Ao combinar relatórios, um deles deve servir como relatório principal que contém o outro relatório. Um relatório principal é vinculado ou não vinculado. Um relatório vinculado é aquele que pode exibir dados e tem uma tabela, consulta, ou instrução SQL especificado na sua propriedade Origem de Registro. Um relatório não vinculado é aquele que não é baseado em uma tabela, consulta ou instrução SQL (ou seja, a propriedade Origem de Registro do relatório está vazia).

Exemplo de um relatório principal não vinculado com dois sub-relatórios não relacionados    

Um relatório principal não vinculado não pode exibir dados próprios, mas ainda pode funcionar como um relatório principal para sub-relatórios relacionados que você queira combinar.

Relatório principal desacoplado com dois sub-relatórios exibindo dados não relacionados

1. O relatório principal não vinculado contém dois sub-relatórios.

2. Uma sub-relatório resume as vendas por funcionário.

3. O outro sub-relatório resume as vendas por categoria.

Exemplo de um relatório principal e um sub-relatório vinculados à mesma origem de registro    

Você pode usar o relatório principal para mostrar registros detalhados, por exemplo, todas as vendas realizadas em um ano e usar um sub-relatório para mostrar informações de resumo, como o total de vendas para cada trimestre.

Relatório principal e sub-relatório acoplados à mesma fonte de registro

1. O sub-relatório resume as vendas do ano por trimestre.

2. O relatório principal lista as vendas diárias.

Exemplo de um relatório principal e um sub-relatório vinculados à origens de registro relacionadas    

Um relatório principal pode conter dados comuns a um ou mais sub-relatórios. Nesse caso, um sub-relatório contém dados relacionados aos dados no relatório principal.

Relatório principal com dois sub-relatórios exibindo dados relacionados

1. O relatório principal lista o nome e a cidade de cada feira.

2. O sub-relatório lista os representantes que participarão de cada feira.

Subformulários em um relatório

Um relatório principal pode incluir subformulários além de sub-relatórios, podendo também incluir quantos subformulários e sub-relatórios você desejar. Além disso, um relatório principal pode conter até sete níveis de subformulários e sub-relatórios. Por exemplo, um relatório pode conter um sub-relatório e esse sub-relatório pode conter um subformulário ou um sub-relatório e assim por diante, com até sete níveis de profundidade.

Se você adicionar um subformulário a um relatório e abrir o relatório no modo de exibição Relatório, você pode usar o subformulário para filtrar e navegar pelos registros. O código e as macros embutidas do Visual Basic for Applications (VBA) inseridos no formulário e seus controles ainda funcionarão, mas alguns eventos estarão desabilitados nesse contexto. Não é possível adicionar, editar ou excluir registros usando um subformulário em um relatório.

Vincular a um relatório a um subformulário ou sub-relatório

Quando você insere um subformulário ou sub-relatório que contém informações relacionadas a dados no relatório principal, o controle do sub-relatório deve ser vinculado ao relatório principal. O vínculo garante que os registros exibidos no subformulário ou sub-relatório correspondam aos registros impressos no relatório principal.

Quando você cria um subformulário ou sub-relatório usando um assistente ou arrastando um objeto do Painel de Navegação para um relatório, o Access vincula automaticamente subformulário ou sub-relatório ao relatório principal se qualquer uma das seguintes condições for atendida.

  • Você definir relações para as tabelas selecionadas ou definir relações para as tabelas subjacentes às consultas selecionadas.

  • O relatório principal é baseado em uma tabela com um chave primária, e o subformulário ou sub-relatório é baseado em uma tabela que contém um campo com o mesmo nome que a chave primária e que tem o mesmo tipo de dados ou um que seja compatível. Por exemplo, se a chave primária da tabela subjacente ao relatório principal for um campo de Numeração Automática e sua propriedade FieldSize estiver definida como Inteiro Longo, o campo correspondente na tabela subjacente ao subformulário ou sub-relatório deverá ser um campo Número com sua propriedade FieldSize definida como Inteiro Longo. Se você selecionar uma ou mais consultas como origem de registro de um subformulário ou sub-relatório, as tabelas subjacentes na consulta ou consultas devem atender às mesmas condições.

Início da página

Criar um sub-relatório

Se o sub-relatório for vinculado ao relatório principal, certifique-se de que as fontes de registro subjacentes sejam relacionadas antes de usar o procedimento a seguir.

Usar o Assistente de Sub-relatório para criar um sub-relatório

Esse procedimento pressupõe que você já tem um relatório ao qual deseja adicionar um sub-relatório. Para saber mais sobre como criar um relatório, confira os artigos Criar um relatório simples ou Criar um relatório agrupado ou de resumo.

  1. No Painel de Navegação, clique com o botão direito no relatório ao qual você deseja adicionar um sub-relatório e clique no Modo de Exibição Design.

  2. Na guia Design, no grupo Controles, abra a Galeria Controles clicando na seta para baixo localizada no canto inferior direito:

    imagem da faixa de opções

  3. No menu exibido, certifique-se de que a opção Usar Assistentes de Controle esteja selecionada.

  4. Abra a Galeria de Controles novamente e clique em Subformulário/Sub-relatório.

  5. No relatório, clique no local onde deseja inserir o sub-relatório.

  6. Se uma caixa de diálogo de aviso de segurança for exibida, clique em Abrir para iniciar o assistente.

  7. Na primeira página do Assistente de Sub-relatório, se você quiser criar um novo subformulário ou sub-relatório e baseá-lo em uma tabela ou consulta, clique em Usar tabelas e consultas existentes. Se houver um relatório ou formulário existente que você deseje usar como sub-relatório, clique em Usar um relatório ou formulário existente, selecione o relatório ou formulário na lista e, em seguida, clique em Avançar.

    Escolhendo fonte de dados no Assistente de Sub-relatório

    Observação:  Se não houver outros formulários ou relatórios no banco de dados, a lista estará em branco e a opção Usar um relatório ou formulário existente não estará disponível.

  8. Se você escolheu Usar um relatório ou formulário existente na página anterior do assistente, pule esta etapa e vá diretamente para a etapa 9. Caso contrário, na lista Tabelas/Consultas, selecione a tabela ou consulta que contém os campos que você deseja incluir no sub-relatório e, em seguida, clique duas vezes nos campos que você deseja na lista Campos Disponíveis para adicioná-los ao sub-relatório.

    Escolhendo campos no Assistente de Sub-relatório

    Se você planeja vincular o sub-relatório ao relatório principal, inclua um ou mais campos que serão usados para criar o vínculo, mesmo que você não queira exibi-los. Normalmente, o campo de vinculação é um campo de ID. Na ilustração anterior, a tabela Pedidos é a origem de registro do sub-relatório e a tabela Clientes é a origem de registro do relatório principal. Como a tabela Pedidos está relacionada à tabela Clientes pelo campo ID do Cliente, esse campo é adicionado à lista Campos Selecionados.

    Observação: Você pode incluir campos de várias tabelas e consultas no seu sub-relatório. Quando terminar de adicionar campos de uma tabela, selecione a próxima tabela ou consulta na lista Tabelas/Consultas e, em seguida, adicione os campos desejados.

    Clique em Avançar para continuar.

  9. Nesta página do assistente, você determina como vincular o sub-relatório ao relatório principal. Se o Access encontrar campos que pareçam ser adequados para vincular o sub-relatório ao relatório principal, o assistente exibirá uma lista de possíveis sugestões de vinculação.

    O Acesso sugere campos a serem vinculados no Assistente de Sub-relatório

    Você pode selecionar a sugestão de vinculação mais apropriada para sua situação ou, se não quiser que o sub-relatório seja vinculado ao relatório principal, selecione Nenhum. Se quiser vincular o sub-relatório ao relatório principal, mas nenhuma das sugestões parecer apropriada, clique em Definir o meu próprio.

    Observação: Se o assistente não conseguir encontrar campos adequados para a vinculação, ele não fornecerá uma lista de sugestões de vinculação e selecionará automaticamente a opção Definir o meu próprio.

    Definindo seus próprios links no Assistente de Sub-relatório

    Quando a opção Definir o meu próprio for selecionada, o assistente exibirá dois conjuntos de listas.

    • Em Campos de formulário/relatório, selecione um ou mais campos do relatório principal que você queira usar para vincular o relatório principal ao subformulário ou sub-relatório. É possível selecionar até três campos e cada campo selecionado deve coincidir com um campo na origem de dados do subformulário ou sub-relatório relacionado.

    • Em Campos de subformulário/sub-relatório, selecione o campo ou campos correspondentes do subformulário ou sub-relatório que estão vinculados aos campos do relatório principal que você selecionou.

    • Para deixar o subformulário ou sub-relatório desvinculado do relatório principal, certifique-se de que todas as listas estejam vazias.

      Clique em Avançar para continuar.

  10. Na última página do assistente, digite um nome para o subformulário ou sub-relatório ou clique em Terminar para aceitar aceite o nome padrão.

    Adicionando nome no Assistente de Sub-relatório

O Access adiciona um controle de sub-relatório ao seu relatório e vincula o controle (ou seja, ele define a propriedade Source Object do controle) da seguinte maneira:

  • Se você tiver selecionado Usar um relatório ou formulário existente na primeira página do assistente, o Access vinculará o controle do sub-relatório ao relatório ou formulário que você especificou.

  • Se você tiver selecionado Usar tabelas e consultas existentes na primeira página do assistente, o Access criará um novo objeto de relatório no Painel de Navegação e vinculará o controle do sub-relatório a ele. O nome do novo objeto de relatório é o mesmo que você digitou na última página do assistente.

Adicionar uma tabela, consulta, formulário ou relatório a um relatório como uma sub-relatório

Uma maneira rápida de adicionar um sub-relatório a um relatório é abrir o relatório principal no modo de exibição Layout ou Design e arrastar um objeto no Painel de Navegação. Se você quiser que o sub-relatório seja vinculado ao relatório principal, certifique-se de que as origens de registro subjacentes estejam relacionadas e que as origens de registro incluam os campos que serão usados para vincular o subformulário ou sub-relatório ao relatório principal.

  1. No Painel de Navegação, clique com o botão direito do mouse no relatório que você deseja usar como relatório principal e clique em Modo de Exibição Layout ou no Modo de Exibição Design no menu de atalho.

  2. Arraste uma tabela, uma consulta, um formulário ou outro relatório do Painel de Navegação para a seção do relatório principal onde você deseja que o sub-relatório seja exibido.

O Access segue um destes procedimentos:

  • Se o Access puder determinar como vincular os dois objetos, ele adicionará um controle de sub-relatório no relatório. Se você adicionar um formulário ou relatório, o Access vinculará o controle de sub-relatório a esse objeto. Se você adicionar uma tabela ou consulta, o Access primeiro criará um objeto de relatório e então vinculará o controle de sub-relatório a esse novo objeto.

  • Se o Access não conseguir determinar como vincular os dois objetos, o Assistente de Sub-relatório será exibido. Para continuar, siga o procedimento na seção Usar o Assistente de Sub-relatório para criar um sub-relatório, começando pela etapa 9.

    Depois de concluir o assistente, o Access adicionará p sub-relatório ao relatório.

Use o procedimento a seguir para verificar se o subformulário ou sub-relatório está corretamente vinculado ao relatório principal.

  1. Clique no controle de sub-relatório para selecioná-lo.

  2. Se a folha de propriedades não estiver exibida, pressione F4 para exibi-la.

  3. Na guia Dados da folha de propriedades, examine as propriedades Vincular campos mestres e Vincular campos filho.

    • Para um subformulário ou sub-relatório não vinculado, essas duas propriedades devem estar em branco.

    • Para um subformulário ou sub-relatório vinculado, as propriedades Vincular campos mestre e Vincular campos filho deverão exibir o campo ou campos que associam dois objetos. Por exemplo, se o relatório principal exibir informações da tabela Funcionários e o subformulário ou sub-relatório exibir informações da tabela Pedidos, a propriedade Vincular campos mestre deverá exibir o campo de ID da tabela Funcionários a propriedade Vincular campos filho deverá exibir o campo ID de funcionário da tabela Pedidos.

Você pode descobrir que essas propriedades precisam ser editadas para que o subformulário ou sub-relatório funcione corretamente. Use o seguinte procedimento:

  1. Na guia Dados da folha de propriedades, clique na caixa de propriedade Vincular campos mestres e clique no botão Compilar Imagem do botão .

    A caixa de diálogo Vinculador de Campo de Sub-relatório será exibida.

    Caixa de diálogo Vinculador de Campo de Sub-relatório

  2. Nas listas Campos Mestre e Campos Filho, selecione os campos com os quais deseja vincular os relatórios. Se não tiver certeza de quais campos usar, clique em Sugerir para que o Access tente determinar os campos responsáveis pelo vínculo. Quando terminar, clique em OK.

    Caso você não veja o campo que deseja usar para vincular o relatório, talvez tenha que editar a origem de registro do relatório principal ou do sub-relatório para garantir que ele contenha o campo de vinculação. Por exemplo, se o relatório for baseado em uma consulta, verifique se o campo responsável pelo vínculo está presente nos resultados da consulta.

  3. Salve o relatório principal, alterne para o modo de exibição Relatório e verifique se o relatório funciona como esperado.

Adicionar uma tabela ou consulta em um relatório como uma folha de dados

Uma folha de dados é uma representação visual simples de dados semelhantes em uma planilha. Cada coluna em uma folha de dados representa um campo na tabela ou consulta de origem e cada linha representa um registro. Você pode usar o controle de Subformulário/Sub-relatório para exibir uma folha de dados em um relatório. Essa é uma boa técnica para usar em situações em que você deseja uma exibição compacta de dados, mas não precisa dos recursos de formatação de um objeto de formulário ou relatório. Para adicionar uma folha de dados a um relatório:

  1. No Painel de Navegação, clique com o botão direito do mouse no relatório que você deseja usar como relatório principal e clique em Modo de Exibição Design no menu de atalho.

  2. Na guia Design, no grupo Controles, abra a galeria Controles clicando na seta para baixo localizada no canto inferior direito:

    imagem da faixa de opções

  3. No menu exibido, certifique-se de que a opção Usar Assistentes de Controlenão esteja selecionada.

  4. Abra a Galeria de Controles novamente e clique em Subformulário/Sub-relatório.

  5. No relatório, clique no local onde deseja inserir o sub-relatório.

  6. Se o Assistente de Sub-relatório for iniciado, clique em Cancelar para fechá-lo.

  7. Se a folha de propriedades não estiver exibida, pressione F4 para exibi-la.

  8. No relatório, clique no controle de novo sub-relatório para selecioná-lo.

  9. Na guia Dados da folha de propriedades, clique na seta para baixo na caixa de propriedade Objeto de Origem e clique em tabela ou consulta que você deseja exibir no controle de sub-relatório. Por exemplo, para exibir a tabela Pedidos, clique em Tabela.Pedidos.

    O Access tentará vincular a folha de dados ao relatório principal, com base nas relações que foram definidas no banco de dados.

  10. Na guia Dados da folha de propriedades, examine as propriedades Vincular campos mestres e Vincular campos filho.

    • Para uma folha de dados não vinculada, certifique-se de que as duas propriedades estejam em branco.

    • Para uma folha de dados vinculada, as propriedades Vincular campos mestre e Vincular campos filho exibição o campo ou campos que associam o relatório principal à folha de dados. Por exemplo, se o relatório principal exibir informações da tabela Funcionários e a folha de dados exibir informações da tabela Pedidos, a propriedade Vincular campos mestre deverá exibir o campo de ID da tabela Funcionários a propriedade Vincular campos filho deverá exibir o campo ID de funcionário da tabela Pedidos.

Em alguns casos, convém definir as propriedades do campo de vinculação por conta própria. Você pode fazer isso usando o procedimento a seguir.

  1. Na guia Dados da folha de propriedades, clique na caixa de propriedade Vincular campos mestres e clique no botão Compilar Imagem do botão .

  2. Se uma caixa de diálogo de aviso de segurança for exibida, clique em Abrir.

    A caixa de diálogo Vinculador de Campo de Sub-relatório será exibida.

    Caixa de diálogo Vinculador de Campo de Sub-relatório

  3. Nas listas Campos Mestre e Campos Filho, selecione os campos com os quais deseja vincular o relatório principal à folha de dados. Se não tiver certeza de quais campos usar, clique em Sugerir para que o Access tente determinar os campos responsáveis pelo vínculo. Quando terminar, clique em OK.

    Caso você não veja um campo que deseja usar para a vinculação, talvez tenha que editar a origem de registro do relatório principal ou da folha de dados para garantir que ele contenha o campo de vinculação. Por exemplo, se a folha de dados for baseada em uma consulta, verifique se o campo responsável pelo vínculo está presente nos resultados da consulta.

  4. Salve o relatório principal, alterne para o modo de exibição Relatório e verifique se o relatório funciona como esperado.

Início da página

Fazer alterações de design em um sub-relatório

Depois de adicionar um sub-relatório a um relatório, talvez você queira alterar o design do sub-relatório ou fazer referência a dados do sub-relatório no relatório principal. As seções a seguir fornecem dicas sobre como realizar essas tarefas.

Abrir um subformulário ou sub-relatório em uma nova janela no modo Design

Para fazer alterações no design de um subformulário ou sub-relatório enquanto estiver trabalhando em seu relatório principal no modo Design, você pode abrir o subformulário ou sub-relatório em sua própria janela.

  1. Clique no subformulário ou sub-relatório para selecioná-lo.

  2. Na guia Design, no grupo Ferramentas, clique em Sub-relatório em Nova Janela.

Observação: Esse comando não estará disponível se o controle de subformulário/sub-relatório estiver associado a uma tabela ou consulta.

Exibir um total de um sub-relatório no relatório principal

Suponha que você use um sub-relatório denominado Pedidos que contém uma caixa de texto chamada Total da taxa de envio e que essa caixa de texto calcule a soma da coluna Taxa de envio. Para exibir a soma do sub-relatório no relatório principal, adicione uma caixa de texto ao relatório principal e use uma expressão para fazer referência à caixa de texto Total da taxa de envio no sub-relatório. Você pode fazer isso usando o procedimento a seguir.

  1. Clique com o botão direito do mouse no Painel de Navegação do relatório principal, depois clique no Modo de Exibição Design ou no menu de atalho.

  2. Na guia Design, no grupo Controles, clique em Caixa de Texto.

  3. No relatório principal, clique no local onde deseja inserir a nova caixa de texto.

  4. Se a folha de propriedades não estiver exibida, pressione F4 para exibi-la.

  5. Na guia Dados da folha de propriedades, na caixa da propriedade Fonte do Controle, digite a seguinte expressão.

    =IIf(IsError([Pedidos subreport].[Report]![Total da taxa de envio]),0,[Pedidos subreport].[Report]![Total da taxa de envio])

    Observações: 

    • Neste exemplo, você pode usar a expressão mais simples =[Pedidos subreport].[Report]![Total da taxa de envio], mas, se o sub-relatório não contiver dados, o controle no relatório principal exibirá #Error. Usar a função IsError dentro da função IIf, conforme é mostrado na primeira expressão, garante que a caixa de texto no relatório principal exiba um zero (0) se o sub-relatório não retornar dados.

    • Você pode usar o Construtor de Expressões para criar a expressão clicando no botão Compilar Imagem do botão na caixa de propriedade Origem do Controle.

  6. Na guia Formatar da folha de propriedades, defina a propriedade Formatar para o valor apropriado (nesse caso, Moeda).

  7. Salve o relatório e alterne para o modo de exibição Relatório para verificar se o cálculo funciona como esperado.

Início da página

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×