Utilizar campos de valor múltiplo em consultas

Nota:  Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

No Microsoft Office Access 2007, é possível criar um campo com valores múltiplos, tal como uma lista de pessoas às quais tenha atribuído um problema. Os campos de valor múltiplo são adequados para determinadas situações, tal como quando utiliza o Office Access 2007 para trabalhar com informações armazenadas numa lista do Windows SharePoint Services 3.0 e essa lista contém um campo que utiliza um dos tipos de campo de valor múltiplo disponíveis no Windows SharePoint Services 3.0.

Este artigo aborda campos de valor múltiplo e a respectiva utilização em consultas.

Neste artigo

O que é um campo de valor múltiplo?

Introdução ao consultas

Apresentar um campo de valor múltiplo numa consulta

Apresentar os valores individuais no campo de valor múltiplo

Noções sobre o valor dependente e o valor de apresentação num campo de pesquisa

Como apresentar o valor dependente numa consulta

Introduzir critérios de consulta simples para um campo de valor múltiplo

Procurar mais de um valor no campo de valor múltiplo

Compreender o impacto das incluindo uma. Campo de valor na lista de campos

Contagem, agrupar e utilizar outras funções de agregação

Utilizar uma consulta de acréscimo com campo de valor múltiplo

Utilizar uma consulta de actualização com um campo de valor múltiplo

Utilizar uma consulta Eliminar com um campo de valor múltiplo

Início da página

O que é um campo de valor múltiplo?

Suponha que tem uma tarefa para atribuir a um dos empregados ou subcontratados, mas decidiu que necessita de a atribuir a mais do que uma pessoa. No Office Access 2007, poderá criar um campo com de valor múltiplo que lhe permite seleccionar as pessoas a partir de uma lista.

Campo de valores múltiplos

Quando clica na caixa de combinação, as caixas de verificação aparecem seleccionadas para indicar as escolhas. Poderá seleccionar ou desmarcar itens na lista e clicar depois em OK para submeter as escolhas.

Caixa de combinação de campo de valor múltiplo

As pessoas seleccionadas são armazenadas num campo de valor múltiplo e separadas por vírgulas (por predefinição) quando são apresentadas.

Campo de valor múltiplo com valores separados por vírgula

A ideia por detrás dos campos de valor múltiplo é facilitar o suporte dessas instâncias quando pretende seleccionar e armazenar mais do que uma opção, sem ter de criar uma estrutura de base de dados mais avançada. Os campos de valor múltiplo também são importantes para a integração com o Windows SharePoint Services, porque as listas do SharePoint também suportam campos de valor múltiplo.

Poderá questionar porque é que o Office Access 2007 lhe permite armazenar mais do que um valor num campo, quando a maioria dos sistemas de gestão de bases de dados relacionais o proíbem. A resposta é que o motor de base de dados no Office Access 2007 não armazena realmente os valores num único campo. Embora o que o utilizador vê e com o que trabalha pareça ser um campo único, na realidade, os valores são armazenados independentemente e geridos em tabelas de sistema ocultas. O motor de base de dados do Access trata disto para o utilizador, separando automaticamente os dados e apresentando novamente os mesmos para mostrar os valores num único campo.

Tecnicamente, um campo de valor múltiplo do Access modela uma relação muitos-para-muitos. Por exemplo, considere uma tabela de eventos na qual atribui responsabilidade de cada evento a um ou mais empregados. Suponha que cria um campo de valor múltiplo com o nome "AtribuídoA" para atribuir eventos aos empregados. A relação entre os eventos e os empregados é de muitos-para-muitos. Isto é, pode ter muitos empregados atribuídos a qualquer evento, bem como um empregado atribuído a muitos eventos.

Início da página

Introdução às consultas

As bases de dados têm como objectivo principal disponibilizar informações: "Qual é o nosso produto mais popular? Quem é o nosso melhor cliente? Onde estamos a falhar nos nossos objectivos de vendas?". São tudo questões que poderá perguntar legitimamente a uma base de dados bem estruturada. Para obter as respostas a partir da base de dados do Access, deverá criar uma consulta e introduzir os critérios necessários. Os dados numa consulta podem ter origem em uma ou mais tabelas. Depois de o Access obter os dados que respondem à questão, será possível ver e analisar os dados. Depois de criada uma consulta, esta poderá ser utilizada como base para um formulário, relatório, gráfico ou até mesmo outra consulta.

O Office Access 2007 permite-lhe utilizar campos de valor múltiplo em determinadas consultas e de determinadas formas. É possível apresentar um campo de valor múltiplo numa consulta, apresentar os valores individuais num campo de valor múltiplo numa consulta e efectuar determinadas consultas de acção e operações de agregação seleccionadas utilizando campos de valor múltiplo.

Início da página

Apresentar um campo de valor múltiplo numa consulta

Quando apresenta um campo de valor múltiplo numa consulta, tem de decidir se pretende apresentar o campo de valor múltiplo completo com todos os valores separados por vírgulas, ou uma linha separada para cada valor. Por exemplo, suponha que tem uma tabela Problemas que contém um campo AtribuídoA que utiliza para atribuir problemas às pessoas. Nesse caso, poderá criar uma consulta que contenha o campo AtribuídoA utilizando o seguinte procedimento:

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que pretende utilizar para a grelha de estrutura de consulta. Neste exemplo, arraste o campo Título e o campo de valor múltiplo denominado AtribuídoA para a grelha de consulta.

  7. No separador Estrutura, no grupo Resultados, clique em Executar.

O resultado da consulta terá um aspecto semelhante ao da ilustração abaixo: uma coluna apresenta o título de problema e a segunda coluna apresenta o campo de valor múltiplo:

Resultado da consulta apresentando os campos Título e AtribuídoA

Quando uma consulta é criada com a vista de estrutura, o Access gera automaticamente a instrução SQL (Structured Query Language) correspondente. SQL é a linguagem de consulta utilizada pelo Access. Poderá mudar para a Vista de SQL para ver a instrução SQL utilizando o seguinte procedimento.

  1. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  2. Clique em Vista de SQL.

A instrução SQL tem o seguinte aspecto:

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

Início da página

Apresentar os valores individuais num campo de valor múltiplo

Suponha que pretende ver o campo de valor múltiplo AtribuídoA expandido, de modo a que cada nome ou valor de AtribuídoA apareça numa linha separada. Para tal, necessita de especificar a propriedade Valor acrescentando a cadeia ".Valor" a "AtribuídoA" na linha Campo, conforme apresentado aqui na grelha de consulta:

Grelha de consulta apresentando Título e AtribuídoA.Valor

Quando especifica AtribuídoA na linha Campo, o Access apresenta todos os valores no campo de valor múltiplo em apenas uma linha quando a consulta é executada. No entanto, quando é utilizada a propriedade Valor, como em AtribuídoA.Valor, o Access apresenta o campo de valor múltiplo numa forma expandida, de modo a que cada valor apareça numa linha separada. É possível criar uma consulta para apresentar os valores individuais utilizando o seguinte procedimento.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que pretende utilizar (neste exemplo, o campo de valor múltiplo denominado "AtribuídoA.Valor") para a grelha de consulta.

  7. No separador Estrutura, no grupo Resultados, clique em Executar.

Resultado da consulta apresentando o Título e os valores individuais AtribuídoA

Quando uma consulta é criada com a vista de estrutura, o Access gera automaticamente a instrução SQL (Structured Query Language) correspondente. SQL é a linguagem de consulta utilizada pelo Access. Poderá mudar para a vista de SQL para ver a instrução SQL utilizando o seguinte procedimento.

  1. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  2. Clique em Vista de SQL.

A instrução SQL tem o seguinte aspecto:

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

Início da página

Noções sobre o valor dependente e o valor de apresentação num campo de pesquisa

Um campo de valor múltiplo é um campo de pesquisa. Um campo de pesquisa consiste num campo numa tabela cujo valor é obtido a partir de outra tabela ou consulta, ou a partir de uma lista de valores. O Access suporta campos de pesquisa de valor único desde há várias versões. Os campos de pesquisa de valor múltiplo são uma novidade no Office Access 2007. O objectivo de um campo de pesquisa consiste em substituir a apresentação de um número (tal como um ID ou outro valor de chave externa) por algo mais significativo (tal como um nome). Por exemplo, em vez de apresentar o número de ID de um contacto, o Access poderá apresentar o nome de um contacto. O número de ID do contacto é o valor dependente, sendo pesquisado automaticamente numa consulta ou tabela de origem e substituído pelo nome do contacto. O nome do contacto é o valor de apresentação.

À semelhança de um campo de pesquisa de valor único que tem um valor de apresentação e um valor dependente, um campo de pesquisa de valor múltiplo tem valores de apresentação que aparecem na interface de utilizador, bem como valores dependentes armazenados na tabela. Por cada entrada no campo de valor múltiplo, é "pesquisado" um valor de apresentação, com base no valor dependente.

Tal significa que o Access apresenta frequentemente um valor de apresentação pesquisado que não é igual ao valor dependente armazenado no campo. Por exemplo, no exemplo anterior que utiliza o campo AtribuídoA, um conjunto de valores de ID de empregado da consulta Contactos Expandidos é armazenado no campo AtribuídoA. A consulta Contactos Expandidos foi seleccionada como Origem de Linha aquando da criação do campo de valor múltiplo.

Estes ID de empregado são valores dependentes. Contudo, dado que o campo AtribuídoA é um campo de pesquisa, o Access apresenta o conjunto de valores pesquisados no resultado da consulta (neste caso, os nomes de contacto). Os nomes de contacto são os valores de apresentação.

Folha de Dados com valores de apresentação comparada com uma folha de dados com valores dependentes

1. Valores de apresentação.

2. Valores dependentes.

É possível definir as propriedades de pequisa para um campo de valor múltiplo na vista de estrutura. Eis como:

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No Painel de Navegação, clique com o botão direito do rato na tabela onde o campo de valor múltiplo está armazenado.

  4. Clique em Vista de Estrutura.

  5. Clique no campo de valor múltiplo (por exemplo, clique em AtribuídoA).

  6. Em Propriedades do Campo, clique no separador Pesquisa.

Propriedades do campo de pesquisa de valores múltiplos

É importante compreender a distinção entre o valor de apresentação e o valor dependente de um campo de pesquisa. O valor de apresentação é mostrado automaticamente na vista de folha de dados por predefinição. Contudo, o valor dependente é aquilo que é armazenado, aquilo que é utilizado em critérios de consulta e aquilo que o Access utiliza por predefinição em associações a outras tabelas.

Início da página

Como apresentar o valor dependente numa consulta

Por predefinição, o valor de apresentação é mostrado automaticamente na vista de folha de dados. Ao criar uma consulta, é possível substituir este comportamento, de modo a que seja antes apresentado o valor dependente. Os passos necessários são apresentados no seguinte procedimento:

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que pretende utilizar para a grelha de estrutura de consulta. Neste exemplo, arraste o campo Título e o campo de valor múltiplo denominado AtribuídoA.Valor para a grelha de consulta.

  7. Clique no campo AtribuídoA.Valor na grelha de consulta, de modo a que este campo fique com o foco.

  8. No separador Estrutura, no grupo Mostrar/Ocultar, clique em Folha de Propriedades.

  9. Na Folha de Propriedades, no separador Pesquisa, na propriedade Controlo de Visualização, seleccione Caixa de Texto.

Propriedade Controlo de Visualização na estrutura de consulta

Ao alterar a propriedade Controlo de Visualização para Caixa de Texto está também a desactivar o comportamento normal de coluna de pesquisa para que apareça o valor dependente em vez do valor de apresentação.

Valor dependente apresentado no resultado da consulta

Início da página

Introduzir critérios de consulta simples para um campo de valor múltiplo

Suponha que pretende ver os Problemas atribuídos a "Sara Dias". Poderá introduzir critérios de consulta na linha Critérios na grelha de estrutura; contudo, ao introduzir critérios para um campo de pesquisa, terá de introduzir o valor dependente e não o valor de apresentação. Neste caso, é determinado que o valor dependente para Sara Dias é 6. Trata-se do valor de chave primária correspondente na consulta Contactos Expandidos para Sara.

Para criar uma consulta que apresente os problemas atribuídos a Sara:

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que pretende utilizar para a grelha de estrutura. Neste exemplo, deverá arrastar Título para a primeira coluna na grelha. Em seguida, arraste AtribuídoA para a segunda coluna.

  7. No separador da grelha de consulta, em AtribuídoA, na linha Critérios, introduza 6. Repare que está a introduzir o valor dependente e não o valor de apresentação.

    Grelha de estrutura com critérios num campo de valor múltiplo

  8. No separador Estrutura, no grupo Resultados, clique em Executar para executar a consulta.

Ao executar a consulta, o resultado aparece na vista de folha de dados. Tenha em atenção que a consulta devolve apenas as linhas nas quais "Sara Dias" aparece.

Resultado de consulta em que o valor AtribuídoA inclui 6

Quando uma consulta é criada com a vista de estrutura, o Access gera automaticamente a instrução SQL (Structured Query Language) correspondente. SQL é a linguagem de consulta utilizada pelo Access. Poderá mudar para a vista de SQL para ver a instrução SQL utilizando o seguinte procedimento.

  1. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  2. Clique em Vista de SQL.

A instrução SQL tem o seguinte aspecto:

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

Procurar texto em vez de um número de ID

E se, em vez de introduzir números de ID, preferir introduzir o nome "Sara Dias" como valor de procura? Para que tal funcione, terá de ter um campo no resultado de consulta que contenha um nome textual. Dessa forma, poderá procurar por "Sara Dias" nesse campo.

Não é possível utilizar o campo AtribuídoA.Valor porque o respectivo valor dependente é um ID, sendo por conseguinte necessário introduzir um ID para filtrar por esse campo.

Neste exemplo, o campo de nome de contacto não reside na tabela. Pelo contrário, reside na consulta de origem que fornece dados para o campo de valor múltiplo AtribuídoA. Poderá associar a consulta ou tabela de origem relativa ao campo de valor múltiplo à tabela que contém o campo de valor múltiplo, de modo a incluir um campo (nome de contacto neste exemplo) a partir da consulta ou tabela de origem no resultado de consulta. Poderá depois procurar esse campo em vez do campo de valor múltiplo.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Na caixa de diálogo Mostrar Tabela, clique no separador Consultas, clique na consulta (neste exemplo, "Contactos Expandidos") que é a origem do campo de valor múltiplo e clique depois em Adicionar.

  6. Clique em Fechar.

  7. Arraste os campos que pretende utilizar para a grelha de estrutura. Neste exemplo, deverá arrastar Título a partir da tabela Problemas para a primeira coluna na grelha. Em seguida, arraste Nome do Contacto a partir da consulta Contactos Expandidos para a segunda coluna e desmarque a caixa de verificação Mostrar. Por fim, arraste AtribuídoA para a terceira coluna.

  8. Se não for visível uma linha de associação entre o campo ID na consulta Contactos Expandidos e o campo AtribuídoA.Valor conforme ilustrado abaixo, clique e arraste a partir do campo ID na consulta Contactos Expandidos para o campo AtribuídoA.Valor na tabela Problemas.

    Aparece uma linha de associação.

    Se estiverem visíveis outras linhas de associação, remova-as. Para remover uma linha de associação, clique na mesma para a realçar e prima a tecla Delete.

  9. Na grelha de consulta, em Nome do Contacto, na linha Critérios, introduza "Sara Dias".

    Grelha de consulta com critérios AtribuídoA contendo "Sara Dias"

  10. No separador Estrutura, no grupo Resultados, clique em Executar para executar a consulta.

Ao executar a consulta, o resultado aparece na vista de folha de dados. Tenha em atenção que os resultados da consulta apresentam apenas as linhas nas quais "Sara Dias" aparece. Esta técnica funciona porque a associação entre o ID na consulta ou tabela de origem e o campo AtribuídoA.Valor devolve uma linha separada para cada valor no campo de valor múltiplo; além disso, cada linha contém também um campo Nome do Contacto com o nome completo. Dado que Nome do Contacto é um nome calculado e não um campo de pesquisa, não existe nenhum valor dependente nem valor e apresentação. Existe apenas um valor: o nome de contacto. Por conseguinte, é possível fornecer o texto com o qual deve haver correspondência, neste caso "Sara Dias."

Resultado de consulta com AtribuídoA contendo "Sara Dias"

Quando uma consulta é criada com a vista de estrutura, o Access gera automaticamente a instrução SQL (Structured Query Language) correspondente. SQL é a linguagem de consulta utilizada pelo Access. Poderá mudar para a vista de SQL para ver a instrução SQL utilizando o seguinte procedimento.

  1. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  2. Clique em Vista de SQL.

A instrução SQL tem o seguinte aspecto:

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

Procurar mais do que um valor num campo de valor múltiplo

Por vezes, é necessário procurar uma correspondência em mais do que um valor. Suponha que pretende ver os problemas nos quais "Sara Dias" e "Ana Cruz" se encontrem entre os valores no campo AtribuídoA. O valor dependente para Sara Dias é 6, sendo que o valor dependente para Ana Cruz é 10. Para especificar vários critérios para um campo de valor múltiplo, é possível utilizar os operadores E e OU.

Para criar a consulta, utilize o seguinte procedimento.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que pretende utilizar para a grelha de estrutura. Neste exemplo, deverá arrastar Título para a primeira coluna na grelha. Em seguida, arraste AtribuídoA para a segunda coluna.

  7. Na grelha de consulta, em AtribuídoA, na linha Critérios, escreva 6 E 10.

    Consulta que mostra a utilização de E num campo de valor múltiplo

  8. No separador Estrutura, no grupo Resultados, clique em Executar para executar a consulta.

Ao executar a consulta, o resultado aparece na vista de folha de dados.

Resultado de consulta que mostra a utilização de E num campo de valor múltiplo

O resultado apresenta apenas os problemas aos quais tanto Sara Dias como Ana Cruz estão atribuídas. Quando uma consulta é criada com a vista de estrutura, o Access gera automaticamente a instrução SQL (Structured Query Language) correspondente. SQL é a linguagem de consulta utilizada pelo Access. Poderá mudar para a vista de SQL para ver a instrução SQL utilizando o seguinte procedimento.

  1. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  2. Clique em Vista de SQL.

A instrução SQL tem o seguinte aspecto:

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

Utilizar o operador OU em vez do operador E

Suponha que pretende alterar a consulta para listar as linhas em que apareça "Sara Dias" ou "Ana Cruz". É possível editar a instrução SQL para que esta utilize o operador OU em vez do operador E. A instrução deverá depois ter o seguinte aspecto:

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

Ao executar a consulta, o resultado aparece na vista de folha de dados.

Consulta que utiliza o operador Ou com campo de valor múltiplo

O resultado apresenta apenas os problemas aos quais Sara Dias ou Ana Cruz estão atribuídas.

Início da página

Noções sobre o impacto da inclusão de um campo .Valor na lista de campos

É importante compreender o impacto da inclusão de um campo .Valor na lista de colunas de saída (lista SELECT) na consulta. Quando a consulta é processada, o primeiro passo consiste em produzir um conjunto de resultados sem o efeito de um filtro ou cláusula WHERE. O filtro é depois aplicado a esse conjunto inicial. Por conseguinte, poderá ser útil encarar esse conjunto de resultados como sendo primeiro gerado e depois reduzido pelo filtro na claúsula WHERE. Considere este exemplo:

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

O conjunto inicial de resultados poderá ter o seguinte aspecto antes da filtragem:

Título

AtribuídoA

Problema 1

David Horácio, Margarida Cruz

Problema 2

Matilde Barbosa, Sara Dias, Filipa Brazão, Ana Cruz

Problema 3

Filipe Correia, Sara Dias, Margarida Cruz, Tito Miguéis

Problema 4

Albano Reis, Ana Cruz

Problema 5

David Horácio, Matilde Barbosa

Problema 6

Sérgio Jacó, Sara Dias

Problema 7

Julião Antero, Filipa Brazão

Problema 8

David Horácio

Problema 9

Sara Dias, Ana Cruz

Problema 10

Margarida Cruz, Tito Miguéis

O passo de filtragem percorre depois o conjunto inicial de resultados e selecciona linhas que não contenham David Horácio, cujo ID é 3:

Título

AtribuídoA

Problema 2

Matilde Barbosa, Sara Dias, Filipa Brazão, Ana Cruz

Problema 3

Filipe Correia, Sara Dias, Margarida Cruz, Tito Miguéis

Problema 4

Albano Reis, Ana Cruz

Problema 6

Sérgio Jacó, Sara Dias

Problema 7

Julião Antero, Filipa Brazão

Problema 9

Sara Dias, Ana Cruz

Problema 10

Margarida Cruz, Tito Miguéis

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

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

O conjunto inicial de resultados tem o seguinte aspecto antes da filtragem:

Título

AtribuídoA.Valor

Problema 1

David Horácio

Problema 1

Margarida Cruz

Problema 2

Matilde Barbosa

Problema 2

Sara Dias

Problema 2

Ana Cruz

Problema 2

Filipa Brazão

Problema 3

Margarida Cruz

Problema 3

Julião Antero

Problema 3

Sara Dias

Problema 3

Tito Miguéis

Problema 4

Ana Cruz

Problema 4

Albano Reis

Problema 5

David Horácio

Problema 5

Matilde Barbosa

Problema 6

Sara Dias

Problema 6

Sérgio Jacó

Problema 7

Julião Antero

Problema 7

Filipa Brazão

Problema 8

David Horácio

Problema 9

Sara Dias

Problema 9

Ana Cruz

Problema 10

Tito Miguéis

Problema 10

Margarida Cruz

Agora, o passo de filtragem percorre o conjunto inicial de resultados e selecciona apenas as linhas que não contenham David Horácio, cujo ID é 3:

Título

AtribuídoA.Valor

Problema 1

Margarida Cruz

Problema 2

Matilde Barbosa

Problema 2

Sara Dias

Problema 2

Ana Cruz

Problema 2

Filipa Brazão

Problema 3

Margarida Cruz

Problema 3

Julião Antero

Problema 3

Sara Dias

Problema 3

Tito Miguéis

Problema 4

Ana Cruz

Problema 4

Albano Reis

Problema 5

Matilde Barbosa

Problema 6

Sara Dias

Problema 6

Sérgio Jacó

Problema 7

Julião Antero

Problema 7

Filipa Brazão

Problema 9

Sara Dias

Problema 9

Ana Cruz

Problema 10

Tito Miguéis

Problema 10

Margarida Cruz

Ver o conjunto de resultados antes e depois da aplicação do filtro poderá facilitar a antecipação correcta do resultado da consulta.

Início da página

Contar, agrupar e utilizar outras funções de agregação

Poderá pretender efectuar cálculos em grupos de valores armazenados num campo de valor múltiplo. Por exemplo, poderá pretender saber quantos problemas estão atribuídos a cada pessoa ou saber quantas pessoas estão atribuídas a cada problema. É possível efectuar este tipo de cálculo utilizando uma função de agregação numa consulta Totais.

Uma função de agregação efectua um cálculo num conjunto de valores e devolve depois um único valor. Por exemplo, Somar, Contar e Média são três das funções de agregação que é possível utilizar para calcular totais. Poderá calcular totais para todos os registos ou para grupos de registos. Para resumir por grupo, terá de seleccionar o campo ou campos pelos quais agrupar na grelha de consulta.

O procedimento abaixo mostra como criar uma consulta para contar o número de problemas atribuídos a cada pessoa.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que pretende utilizar para a grelha de estrutura. Neste exemplo, deverá arrastar AtribuídoA.Valor para a primeira coluna na grelha. Em seguida, arraste Título para a segunda coluna.

  7. No separador Estrutura, no grupo Mostrar/Ocultar, clique em Totais.

    A linha Total aparece na grelha de estrutura. Agrupar Por aparece por predefinição na célula Total abaixo de cada campo na consulta.

  8. Na grelha de estrutura, em Título, na linha Total, clique em Contar.

  9. No separador Estrutura, no grupo Resultados, clique em Executar para executar a consulta.

Ao estruturar a consulta, são especificados os campos a utilizar para agrupamentos e os campos a utilizar para totais (cálculos). No caso deste exemplo, AtribuídoA.Valor foi o campo utilizado para agrupamento e Título foi o campo utilizado para um cálculo de totais. No caso de campos que pretenda utilizar para agrupamento, seleccione Agrupar Por na linha Total. No caso de campos que pretenda utilizar para um cálculo de totais, seleccione um tipo de cálculo (tal como Soma ou Média). Tenha em atenção que, ao utilizar um campo de valor múltiplo para agrupamento, terá de utilizar um campo .Valor. Neste exemplo, não é possível utilizar o campo AtribuídoA para agrupamento; terá de utilizar o campo AtribuídoA.Valor. Terá também de utilizar o campo .Valor quando utilizar um campo de valor múltiplo para ordenação.

Nota: Quando se utiliza um campo de valor múltiplo para agrupamento, é necessário utilizar o campo .Valor. Quando se utiliza um campo de valor para ordenação, é necessário utilizar o campo .Valor.

Ao executar a consulta, o resultado aparece na vista de folha de dados.

Consulta que conta os problemas atribuídos a cada pessoa

Para ver a instrução SQL desta consulta, mude para a vista de SQL utilizando o seguinte procedimento.

  1. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  2. Clique em Vista de SQL.

A instrução SQL tem o seguinte aspecto:

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

Suponha que pretende saber quantas pessoas estão atribuídas a cada problema.Poderá agrupar por Título e seleccionar Contar como cálculo para o campo de valor múltiplo. Para criar a consulta, utilize o seguinte procedimento.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

  4. Na caixa de diálogo Mostrar Tabela, clique na tabela (neste exemplo, "Problemas") que contém o campo de valor múltiplo e clique em Adicionar.

  5. Clique em Fechar.

  6. Arraste os campos que pretende utilizar para a grelha de estrutura. Neste exemplo, deverá arrastar Título para a primeira coluna na grelha. Em seguida, arraste AtribuídoA para a segunda coluna.

  7. No separador Estrutura, no grupo Mostrar/Ocultar, clique em Totais.

    A linha Total aparece na grelha de estrutura. Agrupar Poraparece por predefinição na célula Total abaixo do campo Título na consulta. Expressão aparece por predefinição na célula Total abaixo do campo AtribuídoA. Tal sucede porque não é possível efectuar uma operação Agrupar Por num campo de valor múltiplo. Isto só é possível num campo .Valor de valor múltiplo.

  8. Na grelha de estrutura, em AtribuídoA, na linha Total, clique em Contar.

  9. No separador Estrutura, no grupo Resultados, clique em Executar para executar a consulta.

Ao executar a consulta, o resultado aparece na vista de folha de dados.

Resultado de consulta que apresenta a contagem do número de pessoas por problema

Para ver a instrução SQL desta consulta, mude para a vista de SQL utilizando o seguinte procedimento.

  1. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  2. Clique em Vista de SQL.

A instrução SQL tem o seguinte aspecto:

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

Nota: Nesta instrução SELECT SQL, é indiferente utilizar Contar(Problemas.AtribuídoA) ou Countar(Problemas.AtribuídoA.Valor): o resultado é o mesmo.

Início da página

Utilizar uma consulta de acréscimo com um campo de valor múltiplo

É possível inserir um valor único num campo de valor múltiplo utilizando uma consulta de inserção. Por exemplo, suponha que pretende adicionar "Sara Dias" ao campo de valor múltiplo AtribuídoA de um problema. Terá primeiro de determinar o valor de chave primária do problema e do registo de contacto de Sara. Suponha que os valores são 10 para o problema e 6 para Sara.

O procedimento abaixo explica como criar a consulta.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

    Imagem do Friso do Access

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

  5. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  6. Clique em Vista de SQL.

  7. Na vista de SQL, escreva a seguinte instrução SQL:

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

    O Access poderá pedir-lhe para confirmar se pretende acrescentar a linha seleccionada. Clique em Sim para inserir a linha, ou clique em Não para cancelar.

Sara aparece agora listado no campo AtribuídoA desse problema. Esta é a única forma de a consulta de inserção funcionar com um campo de valor múltiplo.

Nota: Uma consulta de acréscimo é aquela que é utilizada para adicionar registos a partir de uma tabela a outra tabela existente. No Office Access 2007, não é possível utilizar uma consulta de acréscimo que faça referência a uma tabela que contenha um campo de valor múltiplo. Por exemplo, a consulta que se segue não é válida:

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

Início da página

Utilizar uma consulta de actualização com um campo de valor múltiplo

É possível utilizar uma consulta de actualização para alterar os valores em registos existentes. Quando utiliza uma consulta de actualização para actualizar uma tabela que contenha campos de valor múltiplo, poderá alterar um valor único num campo de valor múltiplo para outro valor. Suponha que pretende actualizar o campo de valor múltiplo AtribuídoA de um problema específico: por exemplo, substituir "Sara Dias" por "Ana Cruz". Deverá determinar primeiro o valor de chave primária do problema e dos registos de contacto de Sara e Ana. Suponha que 8 é o valor para o problema, 6 é o valor para Sara e 10 é o valor para Ana.

O procedimento abaixo explica como criar a consulta.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

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

  5. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  6. Clique em Vista de SQL.

  7. Na vista de SQL, escreva a seguinte instrução SQL:

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

    Notas: 

    • Deverá incluir sempre uma cláusula WHERE que identifique apenas os registos que pretende actualizar. Caso contrário, irá actualizar registos que não pretendia actualizar. Uma consulta de actualização que não contenha uma cláusula WHERE altera todas as linhas da tabela.

    • É possível especificar um valor a alterar.

  8. No separador Estrutura, no grupo Resultados, clique em Executar para executar a consulta.

    O Access poderá pedir-lhe para confirmar se pretende actualizar o registo. Clique em Sim para actualizar a linha, ou clique em Não para cancelar.

Aparece agora listado Ana Cruz em vez de Sara Dias no campo AtribuídoA desse problema.

Início da página

Utilizar uma consulta de eliminação com um campo de valor múltiplo

É possível utilizar uma consulta de eliminação para remover registos de uma tabela. Quando trabalhar com uma tabela que contém um campo de valor múltiplo, poderá utilizar uma consulta de eliminação para eliminar registos que contenham um determinado valor num campo de valor múltiplo, ou para eliminar um determinado valor de um campo de valor múltiplo em todos os registos da tabela.

Suponha que pretende remover "Sara Dias" do campo AtribuídoA em toda a tabela. Deverá criar uma consulta utilizando o seguinte procedimento.

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

  2. Na caixa de diálogo Abrir, seleccione e abra a base de dados.

  3. No separador Criar, no grupo Outros, clique em Estrutura da Consulta.

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

  5. No separador Estrutura, no grupo Resultados, clique na seta em Ver para apresentar o menu Ver.

  6. Clique em Vista de SQL.

  7. Na vista de SQL, escreva a seguinte instrução SQL:

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

    O Access poderá pedir-lhe para confirmar se pretende eliminar os registos. Clique em Sim para eliminar os registos, ou clique em Não para cancelar.

A seguinte consulta de exemplo não elimina nenhum registo da tabela Problemas. Elimina um valor do campo de valor múltiplo AtribuídoA em cada registo em que o valor aparece. Se pretender eliminar registos da tabela Problemas, não especifique um campo a seguir à cláusula DELETE na instrução SQL. Por exemplo, para eliminar todos os problemas que tenham "Sara Dias" listado entre pessoas às quais o problema tenha sido atribuído, deverá introduzir a seguinte instrução SQL:

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

Nota: Tenha cuidado ao eliminar registos utilizando uma consulta de eliminação. Não é possível recuperar os registos depois de eliminados.

Início da página

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.

×