Ir para conteúdo
Fórum Script Brasil
  • 0

Somar colunas query bd acess


Lauro Pogozelski

Pergunta

Bom dia a todos!

Tenho um form de consulta e quero somar a coluna soma onde o resultado será jogado num DBText, mas tá dando erro tipo ''qry:parametro soma não encontrado'', como sou novato em Delphi to quebrando a cabeça.

As linhas somam na horizontal do dbgrid sem problema. abaixo fragmento do código:

procedure TfrmPesquisa.SpedSomaClick(Sender: TObject);

Var TOTAL:Double;

pSoma:String;

begin

TOTAL:=0;

Qry.Close;

Qry.SQL.Clear;

Qry.SQL.Add('Select Sum (qrySoma) as TOTAL from Receita');

Qry.Parameters.ParamByName('pSoma').Value:=edtTotal.Caption;

Qry.Open;

TOTAL:=TOTAL + qrySoma.Value;

edtTotal.Caption:= FormatFloat('###.##0.00',Qry.FieldByName('TOTAL').ASfloat);

end;

Os campos que somam na horizontal: frete-frete1-frete2-soma é esse campo q quero somar a coluna.

Des de já agradeço sua ajuda"

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá Lauro Pogozelski,

referente ao erro, é porque você ta usando um parametro (pSoma) que não existe em sua query (SELECT).

outra coisa, você nunca deve inserir valor num DBTExt, DBEdit, etc... e sim no campo do seu DataSet a qual esta ligado esse DBText, exemplo:

Query1.FieldByName('nomeDoCampo').value := Qry.FieldByName('TOTAL').ASfloat);

o restante num entendi bem o que você quer direito.

Abs. Progr'amador

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Lauro Pogozelski,

referente ao erro, é porque você ta usando um parametro (pSoma) que não existe em sua query (SELECT).

outra coisa, você nunca deve inserir valor num DBTExt, DBEdit, etc... e sim no campo do seu DataSet a qual esta ligado esse DBText, exemplo:

Query1.FieldByName('nomeDoCampo').value := Qry.FieldByName('TOTAL').ASfloat);

o restante num entendi bem o que você quer direito.

Abs. Progr'amador

ok vou fazer uns testes depois volto aqui, na verdade qro somar as coluna campo soma e jogar o valor no dbtext.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Lauro Pogozelski,

referente ao erro, é porque você ta usando um parametro (pSoma) que não existe em sua query (SELECT).

outra coisa, você nunca deve inserir valor num DBTExt, DBEdit, etc... e sim no campo do seu DataSet a qual esta ligado esse DBText, exemplo:

Query1.FieldByName('nomeDoCampo').value := Qry.FieldByName('TOTAL').ASfloat);

o restante num entendi bem o que você quer direito.

Abs. Progr'amador

ok vou fazer uns testes depois volto aqui, na verdade qro somar as coluna campo soma e jogar o valor no dbtext.

Olá amigos!

ainda estou quebrando a cabeça mudei um pouco o código mas dá erro qry:Field qrySoma not found diz que o campo não foi encontrado porem o campo existe na TQuery, onde estou errando, se pudrem examinem o cod abaixo:

procedure TfrmPesquisa.SpedSomaClick(Sender: TObject);

Var TOTAL:Double;

qrySoma:String;

begin

TOTAL:=0;

Qry.Close;

Qry.SQL.Clear;

Qry.SQL.Add('select * from Receita where Soma =:Soma');

Qry.Parameters.ParamByName('Soma').Value:=Qry.FieldByName('qrySoma').AsFloat;

Qry.FieldByName('qrySoma').value := Qry.FieldByName('Soma').ASfloat;

Qry.Open;

edtTotal.Caption:= FormatFloat('###.##0.00',Qry.FieldByName('TOTAL').ASfloat);

já não sei mais oque fazer!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

veja:

Qry.Parameters.ParamByName('Soma').Value:=Qry.FieldByName('qrySoma').AsFloat;

Primeiro você tentando alimentao o parametro Soma de um campo pra própria query que você ta tentando execultar. qrySoma é realmene um campo da tabela?

ae depois você fez isso:

Qry.FieldByName('qrySoma').value := Qry.FieldByName('Soma').ASfloat; - algo completamente errado.

confesso ainda não entendi nada do que realmente você ta querendo.

pra abrir a query deveria ser algo assim:

procedure TfrmPesquisa.SpedSomaClick(Sender: TObject);
Var TOTAL, vSoma:Double;
qrySoma:String;

begin
  vSoma := blablabla; //aqui você vai usar como parametro 
  TOTAL:=0;

  Qry.Close; 
  Qry.SQL.Clear;
  Qry.SQL.Add('select * from Receita where Soma =:Soma');
  Qry.Parameters.ParamByName('Soma').Value:= vSoma;
  Qry.Open;
end;

Abs. Progr'amador

Link para o comentário
Compartilhar em outros sites

  • 0

Uso o código abaixo para consultar as duplicatas e no fim ele me dá o total do filtro.

crie a procedure SomaPagar

e adapte para a sua tabela de consulta

em ValorDupl troque pelo seu Total.

procedure TFrmCR.SomaPagar;

var

s:Double;

Begin

Duplicatas.DisableControls;

Duplicatas.First;

s:= 0;

While not Duplicatas.Eof do begin

s:=s+Duplicatas.Fieldbyname('ValorDupl').asFloat;

Duplicatas.Next;

End;

TxtPagar.caption := FormatFloat('###,###,#0.00', s);

Duplicatas.EnableControls;

end;

O botão de pesquisa segue abaixo e no fim ele chama a procedure

Acredito que é por aí.

procedure TFrmCR.BitBtn1Click(Sender: TObject);

var

DataI, DataF: TDatetime;

begin

Duplicatas.open;

if Duplicatas.RecordCount = 0 then

Begin

Showmessage('O Cliente não possui débitos para esse período!');

exit;

End;

Begin

DataI:=strtodate(MaskEdit1.text);

ADOQuery1.Close;

ADOQuery1.sql.Clear;

ADOQuery1.sql.Add('Update TblDuplicatas Set Obs =' + (QuotedStr(txtobs.Text)) + ', Banco =' + (QuotedStr(txtbanco.Text)) + ', DtPgto = '+#39+FormatDateTime('mm/dd/yyyy',DataI)+#39+' where RegDet='+DbGrid1.fields[0].text);

ADOQuery1.ExecSQL;

showmessage('Operação de pagamento concluída!');

maskedit3.Text := '';

Duplicatas.close;

Duplicatas.open;

QryTipos.Open;

MaskEdit1.Text := '';

TxtObs.Text := '';

SomaPagar;

end;

end;

Link para o comentário
Compartilhar em outros sites

  • 0

Olá eu aqui de novo! tudo o que eu quero o que os valores que estão no campo soma apareçam em um dbtext, então quero somar a coluna do campo soma apenas isso, pois as somas por linhas estão sendo somadas pelo evento oncalcfields.

Somar a coluna soma e pronto abaixo como está o cod agora.

Ao clickar no botão soma aparece isto: 0,00 e o dbgrid em branco.

Procedure spedBtnSoma.click (Sender:object);

Var vSoma:Double;

begin

if (Qry.RecordCount <> 0) then

vSoma:=0;

Qry.DisableControls;

Qry.First;

While not Qry.EOF do begin

vSoma:=vSoma+QrySoma.Value;

Qry.Next;

Qry.EnableControls;

Qry.Close;

Qry.SQL.Clear;

Qry.SQL.Add('select * from Receita where Soma =:Soma');

Qry.Parameters.ParamByName('Soma').Value:= vSoma;

Qry.Open;

edtTotal.Caption:=FormatFloat('##0.00',Qry.FieldByName('Soma').AsFloat);

end;

end;

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...