Criar e usar sub-relatórios

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Quando você estiver trabalhando com dados relacionais (esses dados são armazenados em tabelas separadas), geralmente precisará exibir as informações de mais de uma tabela ou consulta no mesmo relatório. Por exemplo, você deseja ver os dados do cliente, mas precisa ver as informações sobre os pedidos do cliente simultaneamente. Um sub-relatório é uma ferramenta útil nesse caso porque permite exibir as informações sobre pedido no relatório com as informações sobre o cliente, de forma lógica e legível. O Microsoft Office Access 2007 permite que os sub-relatórios sejam criados rapidamente de várias maneiras.

O que você deseja fazer?

Entender sub-relatórios

Criar um sub-relatório

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

Compreender os sub-relatórios

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

Dica : No Access 2010 relatórios têm layouts de controle, que ajuda a manter as coisas alinhadas e procurando boa!

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

Um relatório principal desacoplado não pode exibir seus próprios dados, mas ainda pode servir como relatório principal dos sub-relatórios não relacionados que você deseja combinar.

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

1. O relatório principal desacoplado 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 sub-relatório que estão acoplados à mesma fonte de registro   

Você pode utilizar o relatório principal para exibir registros de detalhe, como todas as vendas em um ano, e um sub-relatório para exibir informações resumidas, como as vendas totais de 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 que estão vinculados a relacionados a fontes de registro   

Um relatório principal pode conter dados comuns a um ou mais sub-relatórios. Nesse caso, o 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 de eventos.

2. O sub-relatório lista os representantes que estarão presentes em cada feira de eventos.

Subformulários em um relatório

Um relatório principal pode incluir subformulários, além de sub-relatórios e pode incluir tantos subformulários e sub-relatórios quantos 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, até sete níveis de profundidade.

Se você adicionar um subformulário a um relatório e, em seguida, abrir o relatório no modo Relatório, poderá usar o subformulário para filtrar os registros e navegar entre eles. O código do Visual Basic for Applications (VBA) e as macros incorporadas anexadas ao formulário e seus controles ainda será executados, embora alguns eventos estejam desabilitados neste contexto. Você não pode adicionar, editar ou excluir registros utilizando um subformulário em um relatório.

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

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

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

  • Você definir relacionamentos para as tabelas selecionadas ou definir relações para as tabelas base das consultas selecionadas.

    Para obter mais informações sobre como criar relacionamentos, consulte os links da seção Consulte também.

  • O relatório principal baseia-se em uma tabela com uma chave primária e o subformulário ou sub-relatório baseia-se em uma tabela que contém um campo com o mesmo nome da chave primária e com um tipo de dados igual ou compatível. Por exemplo, se a chave primária da tabela base do relatório principal for um campo AutoNumeração e sua propriedade FieldSize estiver definida como Inteiro Longo, o campo correspondente na tabela base do subformulário ou sub-relatório deverá ser um campo Número com sua propriedade FieldSize definida como Inteiro Longo. Quando você seleciona uma ou mais consultas como fonte de registro de um subformulário ou sub-relatório, as tabelas base da(s) consulta(s) devem satisfazer as 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 estão relacionadas antes de usar o procedimento a seguir. Para obter mais informações sobre como criar relações, consulte os links na seção Consulte também.

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

  1. Abra o relatório que você deseja utilizar como relatório principal no modo Design.

  2. Na guia Design, no grupo controles, verifique se Usar assistentes de controle Imagem do botão está selecionado. Imagem do botão

  3. Na guia Design, no grupo controles, clique em Subformulário/sub-relatório Imagem do botão .

  4. No relatório, clique no local em que você deseja colocar o sub-relatório.

  5. Na primeira página do Assistente de Sub-relatório, se desejar 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 formulário ou relatório existente que você deseja usar como sub-relatório, clique em Usar um relatório ou formulário existente, selecione o formulário ou relatório na lista e clique em Avançar.

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

  6. Se você escolher Usar um relatório ou formulário existente na página anterior do assistente, ignore esta etapa e vá diretamente para a etapa 7. Caso contrário, na lista Tabelas/Consultas, selecione a tabela ou consulta que contém os campos a serem incluídos no sub-relatório e clique duas vezes nos campos que devem ser adicionados à 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, não deixe de incluir o(s) campo(s) que será(ão) usado(s) para criar o vínculo, mesmo que você não deseje exibi-los. Normalmente, o campo de vinculação é um campo de código. Na ilustração anterior, a tabela Pedidos é a fonte de registro do sub-relatório e a tabela Clientes é a fonte 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 sub-relatório. Quando terminar de adicionar campos de uma tabela, selecione a próxima tabela ou consulta na lista Tabela/Consultas e adicione os campos que deseja.

    Clique em Avançar para continuar.

  7. Nessa página do assistente, você determina como vincular o sub-relatório ao relatório principal. Se o Access encontrar campos que pareçam adequados à vinculação do 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 que pareça mais apropriada para a sua situação ou caso não deseje que o sub-relatório seja vinculado ao relatório principal, selecione Nenhum. Se você deseja 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 localizar 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 do formulário/relatório, selecione o(s) campo(s) do relatório principal que você deseja usar para vincular o relatório principal ao subformulário ou sub-relatório. Você pode selecionar até três campos; cada campo selecionado deve corresponder a um campo relacionado na fonte de dados do subformulário ou sub-relatório.

    • Em Campos do subformulário/sub-relatório, selecione o(s) campo(s) correspondente(s) no subformulário ou sub-relatório que se vinculará(ão) aos campos de relatório principal que você selecionou.

    • Para deixar o subformulário ou sub-relatório desvinculado do relatório principal, verifique se todas as listas estão vazias.

      Clique em Avançar para continuar.

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

    adicionando nome no assistente de sub-relatório

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

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

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

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

É uma maneira rápida de adicionar um sub-relatório a um relatório abrir o relatório principal no modo Design e arraste um objeto no painel de navegação para ele. Se desejar que o subformulário ou sub-relatório a ser vinculado ao relatório principal, certifique-se de que as fontes de registro subjacentes estão relacionadas e as fontes de registro que incluem os campos que serão usados para vincular o subformulário ou sub-relatório ao relatório principal. Para obter mais informações sobre como criar relações, consulte os links na seção Consulte também.

  1. No Painel de Navegação, clique com o botão direito do mouse no relatório que será usado como relatório principal, e em seguida, clique em Modo Design no menu de atalho.

  2. Arraste uma tabela, consulta, formulário ou outro relatório do Painel de Navegação para a seção do relatório principal no qual o sub-relatório deve aparecer.

O Access executa um dos seguinte procedimentos:

  • Se o Access puder determinar como vincular os dois objetos, ele adicionará um controle de sub-relatório ao 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, em seguida, vinculará o controle de sub-relatório a esse novo objeto.

  • Se o Access não puder determinar como vincular dois objetos, o Assistente de sub-relatório aparece. Para continuar, siga o procedimento na seção criar um sub-relatório, começando com a etapa 7.

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

Use o seguinte procedimento 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 ainda não tiver sido exibida, pressione F4 para exibi-la.

  3. Na guia Dados da folha de propriedades, examine as propriedades Link Master Fields e Link Child Fields.

    • Em um subformulário ou sub-relatório desvinculado, essas duas propriedades devem estar em branco.

    • Em um subformulário ou sub-relatório vinculado, as propriedades Link Master Fields e Link Child Fields devem exibir o(s) campo(s) que relaciona(m) os dois objetos. Por exemplo, se o relatório principal exibir informações na tabela Funcionários e o subformulário ou sub-relatório exibir informações na tabela Pedidos, a propriedade Link Master Fields deverá exibir o campo ID na tabela Funcionários e a propriedade Link Child Fields deverá exibir o campo ID do Funcionário na tabela Pedidos.

Talvez você descubra que essas propriedades precisam ser editadas para que o subformulário ou sub-relatório funcione corretamente. Execute o procedimento a seguir.

  1. Na guia dados da folha de propriedades, clique na caixa de propriedade Vincular campos mestre e clique em Botão Construtor .

    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 aos quais deseja vincular os relatórios. Se você não tiver certeza de quais campos deve usar, clique em Sugerir para que o Access tente determinar os campos de vinculação. Quando terminar, clique em OK.

    Se o campo que você deseja usar para vincular o relatório não for exibido, será necessário editar a fonte de registro do relatório principal ou do subformulário ou sub-relatório para garantir que ele conterá o campo de vinculação. Por exemplo, se o relatório estiver baseado em uma consulta, você deverá garantir que o campo de vinculação estará presente nos resultados da consulta.

  3. Salve o relatório principal, alterne para o modo Relatório e verifique se o relatório funciona conforme o esperado.

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

Uma folha de dados é uma representação visual simples de dados, semelhante a uma planilha. Cada coluna de uma folha de dados representa um campo da 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 a ser utilizada quando você precisar de uma exibição compacta dos dados, mas não 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 será usado como relatório principal e, em seguida, clique em Modo Design no menu de atalho.

  2. Na guia Design, no grupo controles, certifique-se de que a opção Usar assistentes de controle não está selecionada. Imagem do botão

  3. Na guia Design, no grupo controles, clique na ferramenta de Subformulário/subrelatório Imagem do botão .

  4. No relatório, clique no local em que você deseja colocar o sub-relatório.

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

  6. Se a folha de propriedades ainda não tiver sido exibida, pressione F4 para exibi-la.

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

  8. Na guia Dados da folha de propriedades, clique na seta da caixa da propriedade Source Object e, em seguida, clique na tabela ou consulta a ser exibida no controle de sub-relatório. Por exemplo, para exibir a tabela Pedidos, clique em Table.Orders.

    Acesso tentará vincular a folha de dados ao relatório principal, baseado nos relacionamentos que foram definidos no banco de dados.

  9. Na guia Dados da folha de propriedades, examine as propriedades Link Master Fields e Link Child Fields.

    • Em uma folha de dados desvinculada, verifique se essas duas propriedades estão em branco.

    • Em uma folha de dados vinculada, verifique se as propriedades Link Master Fields e Link Child Fields exibem o(s) campo(s) que relaciona(m) o relatório principal à folha de dados. Por exemplo, se o relatório principal exibir informações na tabela Funcionários e a folha de dados exibir informações na tabela Pedidos, a propriedade Link Master Fields deverá exibir o campo ID na tabela Funcionários e a propriedade Link Child Fields deverá exibir o campo ID do Funcionário na tabela Pedidos.

Em alguns casos, talvez você mesmo precise definir as propriedades de vinculação de campo. Isso pode feito através do procedimento a seguir.

  1. Na guia dados da folha de propriedades, clique na caixa de propriedade Vincular campos mestre e clique em Botão Construtor .

    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 que deseja usar para vincular o relatório principal à folha de dados. Se você não tiver certeza de quais campos deve usar, clique em Sugerir para que o Access tente determinar os campos de vinculação. Quando terminar, clique em OK.

    Se o campo que você deseja usar na vinculação não for exibido, será necessário editar a fonte de registro do relatório mestre ou da folha de dados para garantir que ele conterá o campo de vinculação. Por exemplo, se a folha de dados estiver baseada em uma consulta, você deverá garantir que o campo de vinculação estará presente nos resultados da consulta.

  3. Salve o relatório principal, alterne para o modo Relatório e verifique se o relatório funciona conforme o esperado.

Início da página

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

Após adicionar um sub-relatório a um relatório, talvez você deseje fazer alterações de design no sub-relatório ou referência aos 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 de design em um subformulário ou sub-relatório enquanto estiver trabalhando no relatório principal no modo Design, abra 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 subrelatório em nova janela Imagem do botão .

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

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

Suponhamos que você use um sub-relatório denominado Pedidos que contenha uma caixa de texto denominada Taxa Total da Remessa e essa caixa calcule a soma da coluna Taxa de Remessa. Para exibir a soma do sub-relatório no relatório principal, você deve adicionar uma caixa de texto ao relatório principal e, em seguida, utilizar uma expressão para indicar a caixa de texto Taxa Total da Remessa no sub-relatório. Isso pode feito através do procedimento a seguir.

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

  2. Na guia Design, no grupo controles, clique em Caixa de texto. Imagem do botão

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

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

  5. Na guia Dados da folha de propriedades, na caixa da propriedade Control Source, digite a expressão a seguir.

    =IIf(IsError([Orders subreport].[Report]![Shipping Fee Total]),0,[Orders subreport].[Report]![Shipping Fee Total])

    Observações : 

    • Neste exemplo, você pode usar a expressão mais simple = [pedidos sub-relatório]. [ Relatório]! [Total de taxa de remessa] mas, se o sub-relatório não contiver dados, o controle no relatório principal exibe #Error. Usando 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 exibe um zero (0) se o sub-relatório não retornar os dados.

    • Você pode usar o construtor de expressões para criar a expressão, clicando em Botão Construtor na caixa de propriedade Fonte 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, alterne para o modo Relatório e verifique se o cálculo funciona conforme o esperado.

Início da página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
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.

×