Artigo: 155489 - Última revisão: sexta-feira, 19 de Janeiro de 2007 - Revisão: 2.3

ACC: Como utilizar o código para o alterar cabeçalhos de coluna na consulta de referência cruzada

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Moderado: Requer básica macros, codificação e interoperabilidade competências.
Expandir tudo | Reduzir tudo

Sumário

Este artigo mostra como utilizar o Visual Basic for Applications para alterar os cabeçalhos de coluna numa consulta tabela de referência cruzada.

Este artigo pressupõe que está familiarizado com o Visual Basic for Applications e criação de aplicações do Microsoft Access utilizando as ferramentas de programação fornecidas com o Microsoft Access. Para mais informações sobre o Visual Basic for Applications, consulte a versão do manual "Criar aplicações com o Microsoft Access".

NOTA: Visual Basic for Applications é designado por Basic do Access no Microsoft Access versão 2.0. Para mais informações sobre o Basic do Access, consulte o manual "Building Applications".

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

Mais Informação

A única forma pode alterar programaticamente os cabeçalhos de coluna numa consulta cruzada consiste em Modificar a cláusula dinâmica da propriedade SQL da consulta.

O exemplo seguinte mostra como criar uma consulta de referência cruzada no Microsoft Access. Em seguida, mostra como alterar cabeçalhos de coluna a consulta utilizar Visual Basic for Applications para modificar a cláusula dinâmica da propriedade SQL da consulta. Este exemplo utiliza o exemplo da base de dados Adamastor.mdb (ou NWIND.MDB no 2.0).
  1. Abra o exemplo da base de dados Adamastor.mdb (ou NWIND.MDB no 2.0).
  2. Crie uma nova consulta na vista de estrutura e adicione as tabelas clientes e encomendas.
  3. No menu consulta, clique em tabela de referência cruzada.
  4. Na grelha da consulta, adicione os seguintes campos:
           Field: Country
              Total: Group By
              Crosstab: Row Heading
              Sort: Ascending
           Field: Country Total: OrderID (or Order ID in version 2.0)
              Total: Count
              Crosstab: Row Heading
           Field: CompanyName (or Company Name in version 2.0)
              Total: Group By
              Crosstab: Column Heading
           Field: OrderID (or Order ID in version 2.0)
              Total: Count
              Crosstab: Value
  5. No menu de consulta, clique em executar. A consulta Encomendas do cliente de conta e agrupa-as por país. Note que o nome de cada cliente aparece como um cabeçalho de coluna.
  6. No menu Ver, clique em SQL. Tenha em atenção que a cláusula dinâmica no fim da instrução SQL lê "Dinâmico Customers.CompanyName;" (ou "dinâmico clientes. [nome empresa];" na versão 2.0).
  7. Guarde a consulta como qryOrdersByCountry e, em seguida, fechá-lo.
  8. Crie um módulo e escreva a seguinte linha nas declarações secção se não estiver já existir:
    opção explícita
  9. Escreva o seguinte procedimento.

    No Microsoft Access 7.0 e 97:
     Function ChangeColumnHeadings()
          Dim db As DATABASE
          Dim qd As QueryDef
          Dim strSQL as string
          Set db = CurrentDb()
          Set qd = db.QueryDefs("qryOrdersByCountry")
          strSQL = "TRANSFORM Count(Orders.[OrderID]) AS [CountOfOrder ID] "
          strSQL = strSQL & "SELECT Customers.Country, "
          strSQL = strSQL & "Count(Orders.[OrderID]) AS [Country Total] "
          strSQL = strSQL & "FROM Customers INNER JOIN Orders ON "
          strSQL = strSQL & "Customers.[CustomerID] = Orders.[CustomerID] "
          strSQL = strSQL & "GROUP BY Customers.Country ORDER BY "
          strSQL = strSQL & "Customers.Country PIVOT "
          strSQL = strSQL & "IIf(Customers.[CompanyName] Like 'A*', "
          strSQL = strSQL & "'A', 'B-Z');"
          qd.SQL = strSQL
          End Function
    						
    no Microsoft Access 2.0:
          Function ChangeColumnHeadings()
          Dim db As DATABASE
          Dim qd As QueryDef
          Dim strSQL as string
          Set db = CurrentDb()
          Set qd = db.QueryDefs("qryOrdersByCountry")
          strSQL = "TRANSFORM Count(Orders.[Order ID]) AS [CountOfOrder ID] "
          strSQL = strSQL & "SELECT Customers.Country, "
          strSQL = strSQL & "Count(Orders.[Order ID]) AS [Country Total] "
          strSQL = strSQL & "FROM Customers INNER JOIN Orders ON "
          strSQL = strSQL & "Customers.[Customer ID] = Orders.[Customer ID] "
          strSQL = strSQL & "GROUP BY Customers.Country ORDER BY "
          strSQL = strSQL & "Customers.Country PIVOT "
          strSQL = strSQL & "IIf(Customers.[Company Name] Like 'A*', "
          strSQL = strSQL & "'A', 'B-Z');"
          qd.SQL = strSQL
          End Function
    
    						
  10. Para testar esta função, escreva a seguinte linha na janela de depuração (ou a janela Immediate na versão 2.0) e, em seguida, prima ENTER.
    ? ChangeColumnHeadings()
  11. Execute a consulta qryOrdersByCountry. Repare que existem dois cabeçalhos de coluna. Um cabeçalho de coluna é designado por "A", que conta encomendas para nomes de empresas começando com A letra; um é designado por "B-isto é," que conta encomendas para nomes de empresa começam por letras B a Z.
  12. No menu Ver, clique em SQL. Tenha em atenção que apenas o texto da dinâmica cláusula mudou de SQL na consulta original.

Referências

Para mais informações sobre a propriedade SQL de um objecto QueryDef, procure o índice remissivo da ajuda da expressão "Propriedade SQL," e visualizar "SQL propriedades" ou pedir o Assistente do Office Microsoft Access 97.

Para mais informações sobre como utilizar a função IIf(), procure o índice remissivo da ajuda "Função Ise" ou pergunte ao Microsoft Access 97 do Assistente do Office.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming kbusage KB155489 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: 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: 155489  (http://support.microsoft.com/kb/155489/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este 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.