Usando campos de vários valores em consultas

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.

No Microsoft Office Access 2007, você pode criar um campo que contenha vários valores, como uma lista de pessoas para as quais você designou uma questão. Os campos de vários valores são apropriados para determinadas situações, como quando você usa o Office Access 2007 para trabalhar com informações armazenadas em uma lista do Windows SharePoint Services 3.0, e essa lista contém um campo que usa um dos tipos de campo de vários valores disponíveis no Windows SharePoint Services 3.0.

Este artigo aborda os campos de vários valores e como usá-los em consultas.

Neste artigo

O que é um campo de valores múltiplos?

Apresentando o consultas

Exibir um campo de múltiplos valores em uma consulta

Exibindo os valores individuais em um campo de múltiplos valores

Noções básicas sobre o valor acoplado e o valor de exibição em um campo de pesquisa

Como exibir o valor acoplado em uma consulta

Inserir critérios de consulta simples para um campo de múltiplos valores

Procurando por mais de um valor em um campo de múltiplos valores

Entender o impacto de incluir um. Campo de valor na lista de campos

Contagem, o agrupamento e usando outras funções de agregação

Usando uma consulta de acréscimo com um campo de múltiplos valores

Usando uma consulta atualização com um campo de múltiplos valores

Usando uma consulta exclusão com um campo de múltiplos valores

Início da página

O que é um campo de valores múltiplos?

Suponha que você tenha uma tarefa para atribuir a um de seus funcionários ou aos prestadores de serviços, mas constata que, na realidade, precisa atribuí-la a mais de uma pessoa. No Office Access 2007, é possível criar um campo de valores múltiplos que permite selecionar pessoas em uma lista.

Campo de vários valores

Quando você clica na caixa de combinação, as caixas de seleção aparecem marcadas para indicar suas opções. Você pode marcar ou cancelar itens na lista e clicar em OK para confirmar suas opções.

uma caixa de combinação com campo de valores múltiplos

As pessoas selecionadas ficam armazenadas no campo de valores múltiplos e, por padrão, aparecem separadas por vírgulas.

Um campo de vários valores com valores separados por vírgula

Os campos de valores múltiplos foram introduzidos com a intenção de facilitar a seleção e o armazenamento de mais de uma opção, sem que haja a necessidade de criar um design de banco de dados mais avançado. Além disso, os campos de valores múltiplos são importantes na integração com o Windows SharePoint Services, uma vez que as listas do SharePoint também oferecem suporte a campos de valores múltiplos.

Talvez você queira saber como o Office Access 2007 armazena mais de um valor em um único campo, se isso não é permitido na maioria dos sistemas de gerenciamento de banco de dados relacionais. A resposta está no fato de que o mecanismo do banco de dados do Office Access 2007 não armazena efetivamente os valores em um único campo. Embora aparentemente você visualize e trabalhe com um único campo, na realidade, os valores são armazenados de maneira independente e gerenciados em tabelas de sistema ocultas. O mecanismo de banco de dados do Access controla esse armazenamento, separando automaticamente os dados e exibindo os valores em um campo.

Tecnicamente falando, um campo de valores múltiplos no Access modela uma relação vários para vários. Por exemplo, pense em uma tabela de eventos na qual você tenha que atribuir a responsabilidade por cada evento a um ou mais funcionários. Suponha que você crie um campo de valores múltiplos chamado "AssignedTo" no qual os eventos serão atribuídos aos funcionários. A relação entre eventos e funcionários será do tipo vários para vários. Ou seja, é possível atribuir um mesmo evento a vários funcionários e vários eventos a um único funcionário.

Início da página

Introdução às consultas

O objetivo principal dos bancos de dados é fornecer informações: "Qual seu produto líder de vendas? Quem é o seu melhor cliente? Onde não estamos alcançando nossas metas de vendas?" Todas são perguntas que você pode fazer a um banco de dados bem projetado. Para obter as respostas do banco de dados do Access, crie uma consulta e insira os critérios necessários. Os dados em uma consulta podem vir de uma ou mais tabelas. Depois que o Access recupera os dados que respondem à sua pergunta, você pode exibir e analisar os dados. Depois de criar uma consulta, você pode usá-la como a base para um formulário, relatório, gráfico ou até mesmo outra consulta.

O Office Access 2007 permite que você empregue campos de vários valores em certas consultas e de determinadas maneiras. Você pode exibir um campo de vários valores em uma consulta, exibir os valores individuais em um campo de vários valores em uma consulta e realizar algumas operações agregadas selecionadas e consultas Ação usando campos de vários valores.

Início da página

Exibindo um campo de vários valores em uma consulta

Ao exibir um campo de vários valores em uma consulta, é necessário decidir se você deseja exibir todo o campo de vários valores que contiver todos os valores separados por vírgulas ou uma linha separada para cada valor. Por exemplo, suponha que você tenha uma tabela Questões que contenha um campo AssignedTo que você queira usar para atribuir questões a pessoas. Você pode criar uma consulta que contenha o campo AssignedTo usando o procedimento a seguir:

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Issues") que contém o campo de valores múltiplos e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que deseja usar para a grade de design da consulta. Neste exemplo, arraste o campo Title e o campo de vários valores AssignedTo para a grade de consulta.

  7. Na guia Design, no grupo Resultados, clique em Executar.

O resultado de sua consulta será parecido com a seguinte figura  - uma coluna mostra o título da questão e a segunda coluna mostra o campo de vários valores:

Resultado da consulta mostrando os campos Title e AssignedTo

Quando você cria uma consulta usando o modo Design, o Access automaticamente gera a instrução SQL (Structured Query Language) correspondente. O SQL é a linguagem de consulta que o Access usa. Você pode alternar para o modo SQL para ver a instrução SQL usando o seguinte procedimento.

  1. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  2. Clique em Modo SQL.

A instrução SQL tem a seguinte aparência:

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

Início da página

Exibindo os valores individuais em um campo de vários valores

Suponha que você queira ver o campo de vários valores AssignedTo expandido (algumas vezes chamado de plano) para que cada nome ou valor AssignedTo apareça em uma linha separada. Para isso, é necessário especificar a propriedade Value acrescentando a seqüência ".Value" a "AssignedTo" na linha Campo, como exibido na grade de consulta:

Grade da consulta mostrando Title e AssignedTo.Value

Quando você especifica AssignedTo na linha Campo, o Access exibe todos os valores do campo de vários valores em uma única linha quando você executa a consulta. No entanto, quando você usa a propriedade Valor, como em AssignedTo.Value, o Access exibe um campo de vários valores de forma expandida para que cada valor apareça em uma linha separada. Você pode criar uma consulta para exibir os valores individuais usando o seguinte procedimento.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Issues") que contém o campo de valores múltiplos e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que você deseja usar (neste caso, o campo de valores múltiplos chamado "AssignedTo.Value") para a grade de consulta.

  7. Na guia Design, no grupo Resultados, clique em Executar.

Resultado de consulta mostrando os valores Title e os valores individuais AssignedTo

Quando você cria uma consulta usando o modo Design, o Access automaticamente gera a instrução SQL (Structured Query Language) correspondente. O SQL é a linguagem de consulta que o Access usa. Você pode alternar para o modo SQL para ver a instrução SQL usando o seguinte procedimento.

  1. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  2. Clique em Modo SQL.

A instrução SQL tem a seguinte aparência:

SELECT Issues.Title, 
Issues.AssignedTo.Value
FROM Issues;

Início da página

Noções básicas sobre o valor acoplado e o valor de exibição em um campo de pesquisa

Um campo de vários valores é um campo de pesquisa. Um campo de pesquisa é um campo em uma tabela cujo valor é recuperado de outra tabela ou consulta, ou de uma lista de valores. Nas versões anteriores, o Access oferecia suporte a campos de pesquisa de um valor. Os campos de pesquisa de vários valores são novos no Office Access 2007. O objetivo de um campo de pesquisa é substituir a exibição de um número como um código (ou outro valor de chave estrangeira) por algo mais significativo, como um nome. Por exemplo, em vez de exibir o número do código de um contato, o Access pode exibir o nome de um contato. O número do código do contato é o valor acoplado. Ele é automaticamente pesquisado em uma consulta ou tabela de origem e substituído pelo nome do contato. O nome do contato é o valor de exibição.

Assim como um campo de pesquisa de um valor que possui um valor de exibição e um valor acoplado, um campo de pesquisa de vários valores possui valores de exibição que aparecem na interface do usuário e valores acoplados que são armazenados na tabela. Para cada entrada no campo de vários valores, um valor de exibição é "pesquisado", com base no valor acoplado.

Isso significa que o Access geralmente mostra um valor de exibição pesquisado que não é o mesmo que o valor acoplado armazenado no campo. Por exemplo, no exemplo anterior que usa o campo AssignedTo, um conjunto de valores de código de funcionário da consulta Contatos Estendidos é armazenado no campo AssignedTo. A consulta Contatos Estendidos foi selecionada como Origem da Linha quando o campo de vários valores foi criado

Esses códigos de funcionário são os valores acoplados. Entretanto, como o campo AssignedTo é um campo de pesquisa, o Access exibe o conjunto de valores pesquisados no resultado da consulta, — nesse caso, os nomes dos contatos. Os nomes dos contatos são os valores de exibição.

Folha de dados com valores de exibição em comparação com uma folha de dados com valores de associação

1. Os valores de exibição.

2. Os valores acoplados.

Você pode exibir as propriedades de Pesquisa de um campo de vários valores no modo Design. Veja como:

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. No Painel de Navegação, clique com o botão direito do mouse na tabela onde o campo de vários valores está armazenado.

  4. Clique em Modo Design.

  5. Clique no campo de vários valores (por exemplo, clique em AssignedTo).

  6. Em Propriedades do Campo, clique na guia Pesquisa.

Propriedades do campo de pesquisa de múltiplos valores

É importante entender a distinção entre o valor de exibição e o valor acoplado de um campo de pesquisa. O valor de exibição é automaticamente mostrado no modo Folha de Dados, por padrão. Entretanto, o valor acoplado é o que é armazenado, o que você usa em critérios de consulta e o que o Access usa por padrão em associações com outras tabelas.

Início da página

Como exibir o valor acoplado em uma consulta

O valor de exibição é automaticamente mostrado no modo Folha de Dados, por padrão. Quando você criar uma consulta, poderá substituir esse comportamento para que o valor acoplado seja mostrado. As etapas necessárias para isso são mostradas no procedimento a seguir:

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Issues") que contém o campo de valores múltiplos e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que deseja usar para a grade de design da consulta. Neste exemplo, arraste o campo Title e o campo de vários valores denominado AssignedTo.Value para a grade de consulta.

  7. Clique no campo AssignedTo.Value na grade de consulta para que o foco fique nele.

  8. Na guia Design, no grupo Mostrar/Ocultar, clique em Folha de Propriedades.

  9. Na Folha de Propriedades, na guia Pesquisa, na propriedade Controle de Exibição , selecione Caixa de Texto.

propriedade controle de exibição no design de consulta

Quando você altera a propriedade Controle de Exibição para Caixa de Texto, desabilita o comportamento de coluna de pesquisa normal para que o valor acoplado apareça em vez do valor de exibição.

valor acoplado exibido no resultado da consulta

Início da página

Inserindo critérios de consulta simples para um campo de vários valores

Suponha que você deseje ver as Questões atribuídas a "Kelly Rollin". Você pode inserir critérios de consulta na linha de critérios na grade de consulta, mas quando você inserir critérios para um campo de pesquisa, deve inserir o valor acoplado, não o de exibição. Nesse caso, determine que o valor acoplado para Kelly Rollin é 6. Esse é o valor de chave primária correspondente na consulta Contatos Estendidos para Kelly.

Para criar uma consulta que exiba as questões atribuídas a Kelly:

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Issues") que contém o campo de valores múltiplos e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que deseja usar para a grade de consulta. Neste exemplo, arraste Title para a primeira coluna da grade. Em seguida, arraste AssignedTo para a segunda coluna.

  7. Na guia da grade de consulta, em AssignedTo, na linha de critérios, insira 6. Observe que o valor acoplado deve ser inserido, não o de exibição.

    Grade de consulta com critérios em um campo de vários valores

  8. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

Quando você executa a consulta, o resultado aparece no modo Folha de Dados. Observe que a consulta retorna somente as linhas nas quais "Kelly Rollin" aparece.

Resultado da consulta em que o valor AssignedTo inclui 6

Quando você cria uma consulta usando o modo Design, o Access automaticamente gera a instrução SQL (Structured Query Language) correspondente. O SQL é a linguagem de consulta que o Access usa. Você pode alternar para o modo SQL para ver a instrução SQL usando o seguinte procedimento.

  1. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  2. Clique em Modo SQL.

A instrução SQL tem a seguinte aparência:

SELECT Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

Procurando texto em vez de um número de código

E se você não achar eficiente a entrada de números de código e preferir inserir o nome "Kelly Rollin" como valor de pesquisa? Para que isso funcione, você deve ter um campo no resultado da consulta que contenha o nome textual. Dessa forma, você pode procurar por "Kelly Rollin" nesse campo.

Você não pode usar o campo AssignedTo.Value porque seu valor acoplado é um código, e, portanto, você deve inserir um código para filtrar esse campo.

Neste exemplo, o campo do nome do contato não está em uma tabela: ele está na consulta de origem que fornece dados para o campo de vários valores AssignedTo. Você pode associar a consulta ou tabela de origem do campo de vários valores com a tabela que contém o campo de vários valores para incluir um campo (nome do contato neste exemplo) da consulta ou tabela de origem no resultado da consulta. Você pode então pesquisar por esse campo em vez do campo de vários valores.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Questões") que contém o campo de vários valores e clique em Adicionar.

  5. Na caixa de diálogo Mostrar Tabela, clique na guia Consultas e, em seguida, clique na consulta (neste exemplo, "Contatos Estendidos") que é a origem do campo de vários valores e clique em Adicionar.

  6. Clique em Fechar.

  7. Arraste os campos que deseja usar para a grade de consulta. Neste exemplo, arraste Title da tabela Questões para a primeira coluna da grade. Depois, arraste Contact Name da consulta Contatos Estendidos para a segunda coluna e desmarque a caixa de seleção Mostrar. Em seguida, arraste AssignedTo para a terceira coluna.

  8. Se uma linha de associação não estiver visível entre o campo ID na consulta Contatos Estendidos e o campo AssignedTo.Value como mostrado abaixo, clique e arraste do campo ID na consulta Contatos Estendidos para o campo AssignedTo.Value na tabela Questões.

    Uma linha de associação é exibida.

    Se houver outras linhas de associação visíveis, remova-as. Para remover uma linha de associação, clique nela para realçá-la e pressione Delete.

  9. Na grade de consulta, em Contact Name, na linha de critérios, insira "Kelly Rollin".

    Grade da consulta com o critério AssignedTo contendo "Kelly Rollin"

  10. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

Quando você executa a consulta, o resultado aparece no modo Folha de Dados. Observe que os resultados da consulta mostram somente as linhas nas quais "Kelly Rollin" aparece. Essa técnica funciona porque a associação entre o código na consulta ou tabela de origem e o campo AssignedTo.Value retorna uma linha separada para cada valor no campo de vários valores. Além disso, cada linha contém um campo Contact Name com o nome completo. Como Contact Name é um campo calculado e não um campo de pesquisa, não há valor acoplado e valor de exibição. Existe apenas um valor — o nome do contato. Assim, você pode fornecer o texto para corresponder, nesse caso "Kelly Rollin."

Resultado da consulta com AssignedTo contendo "Kelly Rollin"

Quando você cria uma consulta usando o modo Design, o Access automaticamente gera a instrução SQL (Structured Query Language) correspondente. O SQL é a linguagem de consulta que o Access usa. Você pode alternar para o modo SQL para ver a instrução SQL usando o seguinte procedimento.

  1. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  2. Clique em Modo SQL.

A instrução SQL tem a seguinte aparência:

SELECT Issues.Title, Issues.AssignedTo 
FROM [Contacts Extended] INNER JOIN Issues ON
[Contacts Extended].ID = Issues.AssignedTo.Value
WHERE ((([Contacts Extended].[Contact Name])=
"Kelly Rollin"));

Início da página

Procurando por mais de um valor em um campo de vários valores

Algumas vezes, pode ser necessário procurar uma correspondência em mais de um valor. Suponha que você deseje ver as questões em que "Kelly Rollin" e "Lisa Miller" estejam entre os valores no campo AssignedTo. O valor acoplado para Kelly Rollin é 6 e o valor acoplado para Lisa Miller é 10. Para especificar vários critérios para um campo de vários valores, você pode usar os operadores AND e OR.

Para criar a consulta, use o seguinte procedimento.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Questões") que contém o campo de vários valores e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que deseja usar para a grade de consulta. Neste exemplo, arraste Title para a primeira coluna da grade. Em seguida, arraste AssignedTo para a segunda coluna.

  7. Na grade de consulta, em AssignedTo, na linha Criteria, digite 6 And 10.

    consulta mostrando o uso de and em campo de vários valores

  8. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

Quando você executa a consulta, o resultado aparece no modo Folha de Dados.

Resultado da consulta mostrando o uso de AND em campo de vários valores

O resultado exibe somente as questões para as quais Kelly Rollin e Lisa Miller estão designadas. Quando você cria uma consulta usando o modo Design, o Access automaticamente gera a instrução SQL (Structured Query Language) correspondente. O SQL é a linguagem de consulta que o Access usa. Você pode alternar para o modo SQL para ver a instrução SQL usando o seguinte procedimento.

  1. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  2. Clique em Modo SQL.

A instrução SQL tem a seguinte aparência:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
And (Issues.AssignedTo.Value)=10));

Usando o operador OR em vez do operador AND

Suponha que você deseje alterar a consulta para listar as linhas em que "Kelly Rollin" ou "Lisa Miller" apareçam. Você pode editar a instrução SQL para usar o operador OR em vez do operador AND. A instrução deverá, então, ter esta aparência:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
Or (Issues.AssignedTo.Value)=10));

Quando você executa a consulta, o resultado aparece no modo Folha de Dados.

consulta que usa o operador or com campo de vários valores

O resultado exibe somente as questões para as quais Kelly Rollin ou Lisa Miller está designada.

Início da página

Noções básicas sobre o impacto da inclusão de um campo .Value na lista de campos

É importante compreender o impacto da inclusão de um campo .Value na lista de colunas de resultados (a lista SELECT) na sua consulta. Quando a consulta é processada, a primeira etapa é produzir um conjunto de resultados sem o efeito de um filtro ou cláusula WHERE. O filtro é então aplicado ao conjunto inicial. Entretanto, pode ser útil pensar nesse conjunto de resultados como sendo gerado primeiro, e depois sendo reduzido pelo filtro na cláusula WHERE. Por exemplo, considere este exemplo:

SELECT Issues.Title, AssignedTo
FROM Issues
WHERE NOT AssignedTo.Value = 3;

O conjunto de resultados inicial poderia ter a seguinte aparência, antes da filtragem:

Title

AssignedTo

Questão 1

David Hamilton, Eva Valverde

Questão 2

Kathleen Gail Jensen, Kelly Rollin, Susan Burk, Lisa Miller

Questão 3

Jesper Aaberg, Kelly Rollin, Eva Valverde, Tom Michaels

Questão 4

Wei Yu, Lisa Miller

Questão 5

David Hamilton, Kathleen Gail Jensen

Questão 6

Sanjay Jacob, Kelly Rollin

Questão 7

Jesper Aaberg, Susan Burk

Questão 8

David Hamilton

Questão 9

Kelly Rollin, Lisa Miller

Questão 10

Eva Valverde, Tom Michaels

A etapa de filtragem depois percorre o conjunto de resultados inicial e seleciona as linhas que não contêm David Hamilton, cujo código é 3:

Title

AssignedTo

Questão 2

Kathleen Gail Jensen, Kelly Rollin, Susan Burk, Lisa Miller

Questão 3

Jesper Aaberg, Kelly Rollin, Eva Valverde, Tom Michaels

Questão 4

Wei Yu, Lisa Miller

Questão 6

Sanjay Jacob, Kelly Rollin

Questão 7

Jesper Aaberg, Susan Burk

Questão 9

Kelly Rollin, Lisa Miller

Questão 10

Eva Valverde, Tom Michaels

Agora, considere um segundo exemplo — um que inclua o campo .Value na lista de campos. Observe primeiro como a presença do campo .Value altera o conjunto de resultados inicial, antes da filtragem:

SELECT Issues.Title, AssignedTo.Value
FROM Issues
WHERE NOT AssignedTo.Value = 3;

O conjunto de resultados inicial tem a seguinte aparência, antes da filtragem:

Title

AssignedTo.Value

Questão 1

David Hamilton

Questão 1

Eva Valverde

Questão 2

Kathleen Gail Jensen

Questão 2

Kelly Rollin

Questão 2

Lisa Miller

Questão 2

Susan Burk

Questão 3

Eva Valverde

Questão 3

Jesper Aaberg

Questão 3

Kelly Rollin

Questão 3

Tom Michaels

Questão 4

Lisa Miller

Questão 4

Wei Yu

Questão 5

David Hamilton

Questão 5

Kathleen Gail Jensen

Questão 6

Kelly Rollin

Questão 6

Sanjay Jacob

Questão 7

Jesper Aaberg

Questão 7

Susan Burk

Questão 8

David Hamilton

Questão 9

Kelly Rollin

Questão 9

Lisa Miller

Questão 10

Tom Michaels

Questão 10

Eva Valverde

Agora, a etapa de filtragem percorre o conjunto de resultados inicial e seleciona somente as linhas que não contêm David Hamilton, cujo código é 3:

Title

AssignedTo.Value

Questão 1

Eva Valverde

Questão 2

Kathleen Gail Jensen

Questão 2

Kelly Rollin

Questão 2

Lisa Miller

Questão 2

Susan Burk

Questão 3

Eva Valverde

Questão 3

Jesper Aaberg

Questão 3

Kelly Rollin

Questão 3

Tom Michaels

Questão 4

Lisa Miller

Questão 4

Wei Yu

Questão 5

Kathleen Gail Jensen

Questão 6

Kelly Rollin

Questão 6

Sanjay Jacob

Questão 7

Jesper Aaberg

Questão 7

Susan Burk

Questão 9

Kelly Rollin

Questão 9

Lisa Miller

Questão 10

Tom Michaels

Questão 10

Eva Valverde

A visualização do conjunto de resultados antes e depois da aplicação do filtro pode facilitar a antecipação correta do resultado da consulta.

Início da página

Contando, agrupando e usando outras funções agregadas

Você pode querer realizar cálculos em grupos de valores armazenados em um campo de vários valores. Por exemplo, quantas questões estão designadas para cada pessoa? Quantas pessoas estão designadas para cada questão? Você pode realizar este tipo de cálculo empregando uma função agregada em uma consulta Totais.

Uma função agregada realiza um cálculo em um conjunto de valores e depois retorna um único valor. Por exemplo, Sum, Count e Avg são três das funções agregadas que você pode usar para calcular totais. Você pode calcular totais para todos os registros ou para grupos de registros. Para resumir por grupo, você deve selecionar o campo ou os campos a partir dos quais agrupar na grade de consulta.

O procedimento a seguir mostra como criar uma consulta para contar o número de questões atribuídas a cada pessoa.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Issues") que contém o campo de valores múltiplos e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que deseja usar para a grade de consulta. Neste exemplo, você deve arrastar AssignedTo.Value para a primeira coluna na grade. Em seguida, arraste Title para a segunda coluna.

  7. Na guia Design, no grupo Mostrar/Ocultar, clique em Totais.

    A linha Total aparece na grade de consulta. Agrupar Por aparece por padrão na célula Total em cada campo na consulta.

  8. Na grade de consulta, em Título, na linha Total, clique em Contar.

  9. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

Ao criar sua consulta, especifique quais campos serão usados para agrupamento e quais serão usados para totais (cálculos). Nesse exemplo, AssignedTo.Value foi o campo usado para agrupamento e Title foi o campo usado para o cálculo do total. Nos campos que deseje usar para agrupamento, selecione Agrupar por na linha Total. Nos campos que você deseje usar para um cálculo de total, selecione um tipo de cálculo (como Sum ou Avg). Observe que quando você usar um campo de vários valores para agrupamento, deve usar o campo .Value. Neste exemplo, você não pode usar o campo AssignedTo para agrupamento — você deve usar o campo AssignedTo.Value. Você também deve usar o campo .Value quando usar um campo de vários valores para classificação.

Observação : Quando você usar um campo de vários valores para agrupamento, deve usar o campo .Value. Quando você usar um campo de vários valores para classificação, deve usar o campo .Value.

Quando você executa a consulta, o resultado aparece no modo Folha de Dados.

Uma consulta que conta questões atribuídas a cada pessoa

Para ver a instrução SQL dessa consulta, alterne para o modo SQL usando o procedimento a seguir.

  1. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  2. Clique em Modo SQL.

A instrução SQL tem a seguinte aparência:

SELECT Issues.AssignedTo.Value, 
Count(Issues.Title) AS CountOfTitle
FROM Issues
GROUP BY Issues.AssignedTo.Value;

Suponha que você deseje saber quantas pessoas estão designadas a cada questão. Você pode agrupar por Title e selecionar Count como o cálculo do campo de vários valores. Para criar a consulta, use o seguinte procedimento.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste caso, "Issues") que contém o campo de valores múltiplos e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que deseja usar para a grade de consulta. Neste exemplo, você deve arrastar Title para a primeira coluna da grade. Em seguida, arraste AssignedTo para a segunda coluna.

  7. Na guia Design, no grupo Mostrar/Ocultar, clique em Totais.

    A linha Total aparece na grade de consulta. Agrupar Por aparece por padrão na célula Total no campo Title na consulta. Expressão aparece por padrão na célula Total no campo AssignedTo —isso ocorre porque você não pode realizar uma operação Agrupar Por em um campo de vários valores. Você pode fazer isso somente em um campo .Value de vários valores.

  8. Na grade de consulta, em AssignedTo, na linha Total, clique em Count.

  9. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

Quando você executa a consulta, o resultado aparece no modo Folha de Dados.

Resultado da consulta que mostra a contagem do número de pessoas por questão

Para ver a instrução SQL dessa consulta, alterne para o modo SQL usando o procedimento a seguir.

  1. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  2. Clique em Modo SQL.

A instrução SQL tem a seguinte aparência:

SELECT Issues.Title, 
Count(Issues.AssignedTo) AS CountOfAssignedTo
FROM Issues
GROUP BY Issues.Title;

Observação : Nesta instrução SQL SELECT, não importa se você usar Count(Issues.AssignedTo) ou Count(Issues.AssignedTo.Value) — o resultado será o mesmo.

Início da página

Usando uma consulta Acréscimo com um campo de vários valores

Você pode inserir um único valor em um campo de vários valores usando uma consulta Inserção. Por exemplo, suponha que você deseje adicionar "Kelly Rollin" ao campo de vários valores AssignedTo de uma questão. Você deve primeiro determinar o valor da chave primária da questão e do registro do contato para Kelly. Suponha que os valores sejam 10 para a questão e 6 para Kelly.

O procedimento a seguir mostra como criar a consulta.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

    imagem da faixa de opções do access

  4. Na caixa de diálogo Mostrar Tabela, clique em Fechar.

  5. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  6. Clique em Modo SQL.

  7. No modo SQL, digite a seguinte instrução SQL:

    INSERT INTO Issues ( AssignedTo.[Value] )
    VALUES (6)
    WHERE ID = 10;
  8. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

    O Access pode pedir que você confirme se deseja acrescentar a linha selecionada. Clique em Sim para inserir a linha ou clique em Não para cancelar.

Kelly agora está listada no campo AssignedTo dessa questão. Essa é a única forma da consulta Inserção que funcionará com um campo de vários valores.

Observação : Uma consulta Acréscimo é uma consulta usada para adicionar registros de uma tabela em outra tabela existente. No Office Access 2007, você não pode usar uma consulta Acréscimo que faça referência a uma tabela que contenha um campo de vários valores. Por exemplo, a consulta a seguir não é válida:

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

Início da página

Usando uma consulta Atualização com um campo de vários valores

Você pode usar uma consulta Atualização para alterar os valores em registros existentes. Quando você usa uma consulta Atualização para atualizar uma tabela que contém campos de vários valores, pode alterar um único valor em um campo de vários valores para outro valor. Suponha que você deseje atualizar o campo de vários valores AssignedTo de uma questão específica — por exemplo, para substituir "Kelly Rollin" por "Lisa Miller." Determine primeiro o valor da chave primária da questão e dos registros de contato de Kelly e Lisa. Suponha que 8 seja o valor da questão, 6 seja o valor de Kelly, e 10 seja o valor de Lisa.

O procedimento a seguir mostra como criar a consulta.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  4. Na caixa de diálogo Mostrar Tabela, clique em Fechar.

  5. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  6. Clique em Modo SQL.

  7. No modo SQL, digite a seguinte instrução SQL:

    UPDATE Issues 
    SET Issues.AssignedTo.Value = 10
    WHERE (((Issues.AssignedTo.Value)=6)
    AND ((Issues.ID)=8));

    Observações : 

    • Você deve sempre incluir uma cláusula WHERE que identifique somente os registros que deseje atualizar. Do contrário, você atualizará registros que não tem a intenção de alterar. Uma consulta Atualizar que não contenha uma cláusula WHERE altera todas as linhas na tabela.

    • Você pode especificar um valor a ser alterado.

  8. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

    O Access pode pedir que você confirme se deseja atualizar o registro. Clique em Sim para atualizar a linha ou clique em Não para cancelar.

Lisa Miller agora está listada no lugar de Kelly Rollin no campo AssignedTo dessa questão.

Início da página

Usando uma consulta Exclusão com um campo de vários valores

Você pode usar uma consulta Exclusão para remover registros de uma tabela. Ao trabalhar com uma tabela que contenha um campo de vários valores, você pode usar uma consulta Exclusão para excluir registros que contenham um valor em particular em um campo de vários valores ou para excluir um valor em particular de um campo de vários valores em todos os registros na tabela.

Suponha que você deseje remover "Kelly Rollin" do campo AssignedTo em toda a tabela. Crie uma consulta usando o seguinte procedimento.

  1. Clique no Botão do Microsoft Office Imagem do botão Office e clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. Na guia Criar, no grupo Outros, clique em Design da Consulta.

  4. Na caixa de diálogo Mostrar Tabela, clique em Fechar.

  5. Na guia Design, no grupo Resultados, clique na seta em Exibir para mostrar o menu Exibir.

  6. Clique em Modo SQL.

  7. No modo SQL, digite a seguinte instrução SQL:

    DELETE Issues.AssignedTo.Value
    FROM Issues
    WHERE (((Issues.AssignedTo.Value)=6));
  8. Na guia Design, no grupo Resultados, clique em Executar para executar a consulta.

    O Access pode pedir que você confirme se deseja excluir os registros. Clique em Sim para excluir os registros ou clique em Não para cancelar.

A seguinte consulta de exemplo não exclui registros da tabela Questões. Ela exclui um valor do campo de vários valores AssignedTo em cada registro em que o valor aparecer. Se você desejar excluir os registros da tabela Questões, não especifique um campo após a cláusula DELETE na instrução SQL. Por exemplo, para excluir todas as questões que possuam "Kelly Rollin" listada entre as pessoas às quais a questão foi designada, insira a seguinte instrução SQL:

DELETE 
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

Observação : Tenha cuidado ao excluir registros usando uma consulta Exclusão. Você não pode recuperar os registros depois que forem excluídos.

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.

×