ID do artigo: 155489 - Última revisão: sexta-feira, 19 de janeiro de 2007 - Revisão: 2.3

ACC: Como utilizar o código para alterar cabeçalhos de colunas na consulta de tabela 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 de macro, codificação e interoperabilidade habilidades.
Expandir tudo | Recolher tudo

Sumário

Este artigo mostra como usar o Visual Basic for Applications para alterar os títulos de coluna em uma consulta de tabela de referência cruzada.

Este artigo presume que você esteja familiarizado com Visual Basic for Applications e com a criação de aplicativos do Microsoft Access usando as ferramentas de programação fornecidas com o Microsoft Access. Para obter mais informações sobre o Visual Basic for Applications, consulte sua versão do manual "Criando aplicativos com o Microsoft Access".

Observação: o Visual Basic for Applications é chamado Access Basic no Microsoft Access versão 2.0. Para obter mais informações sobre o Access Basic, consulte o manual "Building Applications".

Observação: A demonstração da técnica usada neste artigo pode ser vista no arquivo de exemplo, Qrysmp97.exe. Para obter informações sobre como obter esse arquivo 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 download

Mais Informações

A única maneira de programaticamente você pode alterar os títulos de coluna em uma consulta de tabela de referência cruzada é modificar a cláusula PIVOT de propriedade SQL da consulta.

O exemplo a seguir mostra como criar uma consulta de tabela de referência cruzada no Microsoft Access. Em seguida, ele mostra como alterar cabeçalhos de coluna da consulta usando o Visual Basic for Applications para modificar a cláusula PIVOT de propriedade SQL da consulta. Este exemplo usa o exemplo banco de dados Northwind.mdb (ou NWIND.MDB no 2.0).
  1. Abra o exemplo banco de dados Northwind.mdb (ou NWIND.MDB no 2.0).
  2. Crie uma nova consulta no modo de design e adicione as tabelas Customers e Orders.
  3. No menu consulta, clique em referência cruzada.
  4. Na grade 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 consulta, clique em executar. A consulta Pedidos do cliente cada conta e agrupa-os por país. Observe que o nome do cada cliente aparece como um título de coluna.
  6. No menu Exibir, clique em SQL. Observe que a cláusula PIVOT no final da instrução SQL lê "PIVOT Customers.CompanyName;" (ou "PIVOT clientes. [Company Name];" na versão 2.0).
  7. Salve a consulta como qryOrdersByCountry e fechá-lo.
  8. Criar um módulo e digite a seguinte linha na declaração seção caso ele não esteja lá:
    opção EXPLICIT
  9. Digite 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 essa função, digite a seguinte linha na janela (ou na janela imediata na versão 2.0) e, em seguida, pressione ENTER.
    ? ChangeColumnHeadings()
  11. Execute a consulta qryOrdersByCountry. Observe que há dois cabeçalhos de coluna. Um título de coluna é chamado de "A", que conta as ordens para nomes de empresa começando com A letra; um é chamado de "B-Z," que conta as ordens para nomes de empresa começando com letras B, a Z.
  12. No menu Exibir, clique em SQL. Observe que somente as palavras do PIVOT cláusula foi alterado de SQL na consulta original.

Referências

Para obter mais informações sobre a propriedade SQL de um objeto QueryDef, pesquisar o índice da Ajuda a frase "Propriedade SQL," e exibir "Propriedade SQL" ou pergunte ao Assistente do Office do Microsoft Access 97.

Para obter mais informações sobre como usar a função IIf(), pesquisar o índice da Ajuda para "Função IIf" ou pergunte ao Assistente do Office do Microsoft Access 97.

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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 ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.