AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1478667
Accepted
ShieldOfSalvation
ShieldOfSalvation
Asked: 2019-09-04 21:31:32 +0800 CST2019-09-04 21:31:32 +0800 CST 2019-09-04 21:31:32 +0800 CST

Fonte de linha transformada não editável para gráfico do MS Access continua redefinindo a ordem de classificação

  • 772

Inserir um objeto de gráfico de barras em um formulário do Microsoft Access exibe os dados com uma ordem de classificação que não predefini quando projetei a consulta subjacente pela primeira vez.

insira a descrição da imagem aqui

Posso ver que a ordem de classificação indesejada aparece em uma propriedade fixa e não editável Transformed Row Sourceque substitui a Row Sourcepropriedade.

`Row Source`: SELECT * FROM SumOfUtilizationByPersonnelAndDate WHERE [Month] >= 7 AND [Month] <= 7 AND [Year] >= 2019 AND [Year] <= 2019 ORDER BY [SumOfUtilization] DESC , [Created By] DESC; 

`Transformed Row Source`: SELECT [Created By], Sum([SumOfUtilization]) AS [SumOfSumOfUtilization] FROM (SELECT * FROM SumOfUtilizationByPersonnelAndDate WHERE [Month] >= 7 AND [Month] <= 7 AND [Year] >= 2019 AND [Year] <= 2019 ORDER BY [SumOfUtilization] DESC , [Created By] DESC) GROUP BY [Created By] ORDER BY [Created By]

Assim que eu seleciono minha consulta preparada e devidamente classificada na Row Sourcepropriedade, isso imediatamente faz com que a Transformed Row Sourcepropriedade seja escrita - e a cláusula ORDER BY nela parece ter uma mente própria, escolhendo colunas e ordenando a sequência que eu não fiz não quero.

Além disso, a Transformed Row Sourcepropriedade é totalmente ineditável! A tentativa de editar manualmente o Transformed Row SourceSQL da propriedade da maneira que desejo causa a mensagem de erro,

" Você não pode atribuir um valor a este objeto.

O objeto pode ser um controle em um formulário somente leitura.

O objeto pode estar em um formulário aberto no modo Design.

O valor pode ser muito grande para este campo."

O que posso fazer para que este gráfico de barras classifique os dados como desejo? A consulta exibe os dados na ordem correta no modo Exibir. Por que o gráfico de barras não pode fazer o mesmo?

Eu tentei o tipo de gráfico Bar Clustered, Bar Stacked e Bar Stacked 100% e todos acabam com o mesmo problema. Observe que eu preciso disso para permanecer um gráfico de barras.

ATUALIZAÇÃO : Nenhum comentário feito abaixo até 17 de setembro de 2019 ajudou, além de me atualizar com o entendimento de que o Microsoft Access introduziu recentemente gráficos modernos que diferem dos gráficos clássicos. O que estou usando é um gráfico moderno. Os comentários até 17 de setembro apenas me fizeram tentar recriar isso como um gráfico clássico sem melhores resultados, mas sim com mais desvantagens.

ATUALIZAÇÃO 2 (21/09/2019): Agora tentei remover minha cláusula ORDER BY em minha consulta Row Source, mas a classificação ainda é definida incorretamente. No entanto, aprendi por meio desse exercício que a propriedade Axis (Category) Data Source em Chart Settings é o que define/seleciona essa lista de campos ORDER BY - que combina a ordem de classificação e a seleção de dados de categoria no gráfico - um casamento muito infeliz, de fato porque eu NÃO quero isso! Quaisquer que sejam os campos que eu verifique para a categoria de eixo, eles aparecerão na cláusula ORDER BY da fonte de linha transformada E TAMBÉM serão convertidos como parte do meu eixo de categoria! Não é bom! Quero que o campo Criado por APENAS seja o Eixo (Categoria), e a cláusula de ordem de classificação (ORDER BY) a ser definida como algo completamente separado, que é SumOfUtilization! Este parece ser um bug da Microsoft para o qual não tenho certeza se existe uma solução alternativa! Por enquanto, enviei comentários à Microsoft por meio do menu do Microsoft Access.

insira a descrição da imagem aqui

charts microsoft-access
  • 3 3 respostas
  • 1888 Views

3 respostas

  • Voted
  1. AenAllAin
    2019-09-20T13:36:28+08:002019-09-20T13:36:28+08:00

    Você está classificando/ordenando por "SumOfUtilization" individual , mas apresentando/selecionando "Sum([SumOfUtilization])" .

    Por que você simplesmente não adiciona uma cláusula GROUP BY (ao campo [Created By]) em sua consulta original e agrega por "Sum([SumOfUtilization])" para que ORDER BY corresponda ao Axis?

    SELECT [Created By], Sum([SumOfUtilization]) AS [SumOfSumOfUtilization] FROM SumOfUtilizationByPersonnelAndDate WHERE [Month] >= 7 AND [Month] <= 7 AND [Year] >= 2019 AND [Year] <= 2019 GROUP BY [Created By] ORDER BY Sum([SumOfUtilization]) DESC , [Created By] DESC;
    

    Você pode ORDER BY um valor agregado reafirmando um agregado para esse campo ("ORDER BY Sum([SumOfUtilization])") ou referindo-se a ele por seu ordinal selecionado na cláusula ORDER BY ("ORDER BY 2") .

    Ou você pode consultar sua consulta original como uma subconsulta fazendo a mesma agregação GROUP BY mostrada acima.

    Se necessário, há várias maneiras de trocar a exibição do Axis depois de organizar os dados corretamente. Especificamente, você pode ajustar as configurações de exibição dos gráficos, trocar o eixo principal/secundário ou manipular a ordem de SELECT da consulta.

    DETALHES

    Pelo que me lembro, uma cláusula ORDER BY incorporada OVERRIDES toda a classificação em nível de objeto. Uma vez que ORDER BY está fora do SQL, os objetos de apresentação são capazes de aplicar sua própria ordem de classificação.

    Para substituir isso, use a consulta original como uma fonte de dados para uma subconsulta que você usa como sua fonte de dados real. Isso é o que o objeto gráfico está fazendo com você aqui.

    Referência da API do gráfico: " https://docs.microsoft.com/en-us/office/vba/api/access.chart.transformedrowsource "

    Esta string [Transformed Row Source] é gerada a partir de uma combinação da propriedade RowSource e campos de eixo selecionados .

    Olhando para o seu Row Source SELECT, parece que a ordem em que você está selecionando é o padrão do gráfico como AxisOrder. Você pode selecionar explicitamente seus valores para sequenciar o gráfico manualmente da maneira que desejar.

    Como em, SELECT [SumOfUtilization], [Created By] ...

    `Row Source`: SELECT [SumOfUtilization], [Created By], * FROM SumOfUtilizationByPersonnelAndDate WHERE [Month] >= 7 AND [Month] <= 7 AND [Year] >= 2019 AND [Year] <= 2019 ORDER BY [SumOfUtilization] DESC , [Created By] DESC;
    

    Editar: limpar.

    • 1
  2. Best Answer
    ShieldOfSalvation
    2019-10-09T21:24:33+08:002019-10-09T21:24:33+08:00

    Aliás, como o tempo havia se esgotado sem uma solução satisfatória no Access, o que acabei fazendo foi criar uma planilha do Excel vinculada à minha consulta do Access usando o botão Get Data do Excel, gerar uma tabela dinâmica a partir disso dentro do Excel e criar um gráfico baseado nessa Tabela Dinâmica. Os recursos de gráficos do Excel são muito mais excelentes e capazes do que o que parece atualmente disponível no Access, e consegui que minha ordem de classificação aparecesse exatamente como eu queria. Não é a solução que eu esperava, pois agora estou forçando meu cliente a usar dois produtos Office separados, mas funciona.

    PS: Obrigado a todos que tentaram ajudar. Perdi 50 pontos de reputação que teria dado de bom grado a alguém como recompensa se eles pudessem me ajudar, mas o tempo acabou por superuser.com. Nada que eu pudesse fazer para atribuir esses pontos a ninguém agora e também não os recupero.

    • 0
  3. Rob Welsh
    2020-05-13T04:16:59+08:002020-05-13T04:16:59+08:00

    Encontrei nas propriedades do meu gráfico, quando selecionei meu eixo, havia propriedades que eu poderia alterar (observe as pequenas setas para baixo para aparecer à direita das opções selecionadas. É fácil perder) e, em seguida, quando voltei para aquela coisa de transformação (com o qual passei horas ficando frustrado) pude ver que agora ele havia se atualizado para fazer o que eu queria o tempo todo. Ainda estava se transformando, mas agora fazendo isso de uma forma que imitava o que minha consulta subjacente estava fazendo, então não houve diferença no final.

    • 0

relate perguntas

  • Impedir que o gráfico do Excel altere a formatação da série

  • Graphviz (neato) segfault ao processar árvore com 50.000 vértices

  • Como alterar o lado do rótulo do eixo

  • Ao importar uma planilha para o Access, como você impede que o Excel atribua automaticamente um tipo de campo de dados?

  • Gráfico de colunas com % e moeda

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve