O problema é o seguinte: estou desenvolvendo uma aplicação em Delphi 7 e Access e um dos formulários precisa exibir o conteúdo de três dbgrids; dois desses dbgrids estão relacionados de forma que, quando o usuário alterar a linha de um deles, o outro deve mudar um dos campos exibidos.
Fiz assim: há para o dbgrid que deve ter sua coluna alterada os seguintes componentes: ADOTable, DataSource e ADOQuery.
O select desse dbgrid é assim:
SELECT TabItemResposta.[1], Count(TabItemResposta.[1]) AS ContaResp, ContaResp/36
FROM TabItemResposta
GROUP BY TabItemResposta.[1]
ORDER BY Count(TabItemResposta.[1]) DESC;
Vejam que o campo tem como nome um número. A tabela TabItemResposta tem campos com nomes de números de 1 a 20. Quando o usuário mudar o registro de outra tabela, quero fazer o seguinte para alterar a coluna do dbgrid:
Pergunta
jfranco
Boa tarde,
O problema é o seguinte: estou desenvolvendo uma aplicação em Delphi 7 e Access e um dos formulários precisa exibir o conteúdo de três dbgrids; dois desses dbgrids estão relacionados de forma que, quando o usuário alterar a linha de um deles, o outro deve mudar um dos campos exibidos.
Fiz assim: há para o dbgrid que deve ter sua coluna alterada os seguintes componentes: ADOTable, DataSource e ADOQuery.
O select desse dbgrid é assim:
SELECT TabItemResposta.[1], Count(TabItemResposta.[1]) AS ContaResp, ContaResp/36
FROM TabItemResposta
GROUP BY TabItemResposta.[1]
ORDER BY Count(TabItemResposta.[1]) DESC;
Vejam que o campo tem como nome um número. A tabela TabItemResposta tem campos com nomes de números de 1 a 20. Quando o usuário mudar o registro de outra tabela, quero fazer o seguinte para alterar a coluna do dbgrid:
dbgrdQuestao.Columns[0].FieldName := IntToStr(wInd);
dtmPesquisa.ADOqryPergunta.Close;
dtmPesquisa.ADOqryPergunta.SQL.Clear;
dtmPesquisa.ADOqryPergunta.SQL.Add('SELECT TabItemResposta.[' + IntToStr(wInd) + '], Count(TabItemResposta.[' + IntToStr(wInd) + ']) AS ContaResp, ContaResp/36 FROM TabItemResposta GROUP BY TabItemResposta.[' + IntToStr(wInd) + '] ORDER BY Count(TabItemResposta.[' + IntToStr(wInd) + ']) DESC;');
dtmPesquisa.ADOqryPergunta.Open;
A variável wInd tem o nome do novo campo que deverá ser exibido no dbgrid.
A idéia é fazer um select assim:
SELECT TabItemResposta.[2], Count(TabItemResposta.[2]) AS ContaResp, ContaResp/36
FROM TabItemResposta
GROUP BY TabItemResposta.[2]
ORDER BY Count(TabItemResposta.[2]) DESC;
Só que ao executar a última seqüência de comandos, recebo uma mensagem de erro: "Field '1' not found", sendo que ele deveria apresentar o campo '2'.
Alguém pode me ajudar a resolver o problema?
Obrigado.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.