Uma consulta de referência cruzada do Microsoft Access, pode especificar apenas um campo ou cálculo como o valor. Muitas vezes, poderá pretender mostrar mais do que um valor na consulta.
Por exemplo, o exemplo seguinte mostra duas colunas de informações por empresa, uma contagem do número de encomendas, e a ordem de totais para cada ano:
Company Name 1989 Orders 1989 Total 1990 Orders 1990 Total
--------------------------------------------------------------
ABC Company 12 $855.00 15 $1010.25
XYZ Company 1017 $22045.57 1050 $25345.29
este tipo de consulta é por vezes, designada por uma consulta de vários campos de valor.
NOTA: Uma demonstração da técnica utilizada neste artigo pode ser vista no ficheiro de exemplo, Qrysmp97.exe. Para obter informações sobre como obter este ficheiro de exemplo, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
182568
(http://support.microsoft.com/kb/182568/EN-US/
)
ACC97: Microsoft Access 97 exemplo consultas disponíveis no Centro de transferências
Para criar uma consulta de referência cruzada de campos de múltiplos valores, tem de criar duas consultas cruzado separado com cabeçalhos de coluna fixa para cada valor que deseja calcular. Estas duas consultas podem, em seguida, aderir, utilizar uma consulta selecção para apresentar os resultados pretendidos.
O exemplo seguinte utiliza a dados de exemplo Adamastor.mdb no Microsoft Access versão 7.0 e Microsoft Access 97 (ou NWIND.MDB nas versões 2.0 ou anteriores) para criar uma consulta que apresenta resultados semelhantes ao exemplo acima, que mostra o número de vendas e total para cada ano para cada empresa.
Passo 1: Criar a consulta tabela de referência cruzada total encomenda
Para criar a consulta de referência cruzada de total de encomenda, siga estes passos:
- Abra o exemplo da base de dados Adamastor.mdb (ou NWIND.MDB na versão 2.0 ou anterior) e crie a seguinte consulta de referência cruzada com base nas encomendas, detalhes da encomenda e as tabelas de clientes.
Query: Order Total
------------------
Type: Crosstab Query
Join: Customers.[CustomerID] <-> Orders.[CustomerID]
NOTE: In versions 1.x and 2.0, there is a space in Customer ID.
Join: Orders.[OrderID] <-> Order Details.[OrderID]
NOTE: In versions 1.x and 2.0, there is a space in Order ID.
Field: CompanyName
Table Name: Customers
Total: Group By
Crosstab: Row Heading
NOTE: In versions 1.x and 2.0, there is a space in Company Name.
Field: Expr1: Year([OrderDate]) & " " & "Order Total"
Table Name:
Total: Group By
Crosstab: Column Heading
NOTE: In versions 1.x and 2.0, there is a space in Order Date.
Field: Expr2: Sum(CCur([UnitPrice]*[Quantity]*(1.-[Discount])))
Table Name:
Total: Expression
Crosstab: Value
NOTE: In versions 1.x and 2.0, there is a space in Unit Price.
- Seleccione a consulta clicando em qualquer ponto na área cinzenta na parte superior da grelha da consulta. Clique em Propriedades da consulta no menu Ver, seleccione a caixa de verificação cabeçalhos de coluna fixa e na caixa de cabeçalhos de coluna fixa escreva as entradas adequadas à sua versão do Microsoft Access:
Version 1.x: "1989 Order Total";"1990 Order Total";"1991 Order
Total";"1992 Order Total"
Version 2.0: "1991 Order Total";"1992 Order Total";"1993 Order
Total";"1994 Order Total"
Version 7.0: "1993 Order Total";"1994 Order Total";"1995 Order
Total"
Version 97: "1994 Order Total";"1995 Order Total";"1996 Order
Total"
NOTA: Em versões do Microsoft Access 2.0, 7.0 e 97, a propriedade FixedColumnHeadings é designado por cabeçalhos de coluna.
Passo 2: Criar a consulta de referência cruzada do número de encomendas
- Crie a seguinte consulta de tabela de referência cruzada com base nas encomendas e as tabelas de clientes:
Query: Order Count
------------------
Type: Crosstab Query
Join: Customers.[CustomerID] <-> Orders.[CustomerID]
NOTE: In versions 1.x and 2.0, there is a space in Customer ID.
Field: CompanyName
Table Name: Customers
Total: Group By
Crosstab: Row Heading
NOTE: In versions 1.x and 2.0, there is a space in Company Name.
Field: Expr1: Year([OrderDate]) & " " & "Order Count"
Table Name:
Total: Group By
Crosstab: Column Heading
NOTE: In versions 1.x and 2.0, there is a space in Order Date.
Field: OrderID
Table Name: Orders
Total: Count
Crosstab: Value
NOTE: In versions 1.x and 2.0, there is a space in Order ID.
- Seleccione a consulta clicando em qualquer ponto na área cinzenta na parte superior da grelha da consulta. Clique em Propriedades da consulta no menu Ver, seleccione a caixa de verificação cabeçalhos de coluna fixa e na caixa de cabeçalhos de coluna fixa escreva as entradas adequadas à sua versão do Microsoft Access:
Version 1.x: "1989 Order Count";"1990 Order Count";"1991 Order
Count";"1992 Order Count"
Version 2.0: "1991 Order Count";"1992 Order Count";"1993 Order
Count";"1994 Order Count"
Version 7.0: "1993 Order Count";"1994 Order Count";"1995 Order
Count"
Version 97: "1994 Order Count";"1995 Order Count";"1996 Order
Count"
NOTA: Em versões do Microsoft Access 2.0, 7.0, 97, a propriedade FixedColumnHeadings é designado por cabeçalhos de coluna.
Passo 3: Criar a consulta de múltiplos valores
- Criar uma consulta Seleccionar baseada no total da encomenda e consultas de referência cruzada do número de encomendas. Utilizará NomeDaEmpresa, bem como os campos de total de encomenda e número de encomendas para os anos cujos resultados pretende visualizar. O exemplo abaixo utiliza os últimos dois anos de encomenda total e número de encomendas no Microsoft Access 97.
Query: Multiple Values
----------------------
Join: Order Total.[CompanyName] <-> Order Count.[CompanyName]
NOTE: In versions 1.x and 2.0, there is a space in Company Name.
Field: CompanyName
Table Name: Order Count
Show: Yes
Field: 1995 Order Count
Table Name: Order Count
Show: Yes
Field: 1995 Order Total
Table Name: Order Total
Show: Yes
Field: 1996 Order Count
Table Name: Order Count
Show: Yes
Field: 1996 Order Total
Table Name: Order Total
Show: Yes
Executar a consulta múltiplos valores resulta numa tabela semelhante à seguinte:
Company Name 1995 Order Count 1995 Order Total 1996 Order Count..
--------------------------------------------------------------------------
Alfred's Futterkiste 3 $2,022.50 3
Ana Trujillo 2 $799.75 1
Antonio Moreno 5 $5,960.78 1
NOTA: Esta técnica não funciona se o campo especificado para a concatenação (passo One(expr1)) é um campo mais do que uma das tabelas associadas na consulta. Não é possível forçar a consulta para aceitar o nome da tabela na expressão sem gerar erro reservado-1310. Se adicionar o nome da tabela à linha de tabela, gerará um erro de sintaxe. Se deixar o nome da tabela completamente, gerar um erro de "referência ambígua".
Para obter mais informações sobre consultas de referência cruzada, procure "consultas cruzadas, criar," e, em seguida, "Criar uma consulta de referência cruzada sem utilizar um assistente," utilizando o índice remissivo ajuda do Microsoft Access 97.
Artigo: 109939 - Última revisão: quinta-feira, 18 de Janeiro de 2007 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
- Microsoft Access 1.0 Standard Edition
- Microsoft Access 1.1 Standard Edition
- Microsoft Access 2.0 Standard Edition
- Microsoft Access 95 Standard Edition
- Microsoft Access 97 Standard Edition
| kbmt kbinfo KB109939 KbMtpt |
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo:
109939
(http://support.microsoft.com/kb/109939/en-us/
)
Exclusão de Responsabilidade para Conteúdo sem Suporte na KBEste artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.