Fórum Argument out of range #519261
08/05/2015
0
Eu estou tentando fazer uma tela de controle de vendas, e quando vou clicar no botão "Verificar receita", da um erro de Argument out of range, só que eu já revisei o código todo e não encontro nenhum erro, alguém poderia dar uma ajuda? (Banco de dados é o Access, componentes ADO)
procedure TFormTeste.btnOKClick(Sender: TObject);
begin
DmDados.QVendas.Append;
DmDados.QVendas.FieldByName('Forma_Pgto').value := combobox1.text;
DmDados.QVendas.FieldByName('Valor').value := strtofloat(edit1.text);
DmDados.QVendas.FieldByName('Data_Venda').value := edit2.text;
DmDados.QVendas.post;
end;
procedure TFormTeste.Button1Click(Sender: TObject);
var
vtot:Real;
begin
vtot:=0;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.sql.Add('Select sum(Valor) from TabVendas where Forma_Pgto = ' +chr(39)+'Dinheiro'+chr(39)+ 'and Data_Venda = :dtespecifica');
DmDados.QVendas.Parameters.Parambyname('dtespecifica').value := Strtodate(edit2.text);
DmDados.QVendas.Open;
if (DmDados.QVendas.fields.fields[3].IsNull) then
label3.caption:='R$ 0,00'
else
begin
vtot:=vtot+DmDados.QVendas.fields.fields[3].value;
label3.caption:=floattostrf(DmDados.QVendas.fields.fields[3].value,ffCurrency,6,2);
end;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.sql.Add('Select sum(Valor) from TabVendas where Forma_Pgto = ' +chr(39)+'Cartão'+chr(39)+ 'and Data_Venda = :dtespecifica');
DmDados.QVendas.Parameters.Parambyname('dtespecifica').value := Strtodate(edit2.text);
DmDados.QVendas.Open;
if (DmDados.QVendas.fields.fields[3].isnull) then
label5.caption:='R$ 0,00'
else
begin
vtot:=vtot+DmDados.QVendas.fields.fields[3].value;
label5.caption:=floattostrf(DmDados.QVendas.fields.fields[3].value,ffCurrency,6,2);
end;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.Sql.Add('Select sum(Valor) from TabVendas where Forma_Pgto = ' +chr(39)+'Cheque'+chr(39)+ 'and Data_Venda = :dtespecifica');
DmDados.QVendas.Parameters.Parambyname('dtespecifica').value := Strtodate(edit2.text);
DmDados.QVendas.Open;
if (DmDados.QVendas.fields.fields[3].isnull) then
label7.caption:='R$ 0,00'
else
begin
vtot:=vtot+DmDados.QVendas.fields.fields[3].value;
label7.caption:=floattostrf(DmDados.QVendas.fields.fields[3].value,ffCurrency,6,2);
end;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.sql.Add('Select * from TabVendas');
DmDados.QVendas.Open;
Label10.caption:=floattostrf(vtot,ffCurrency,6,2);
end;
procedure TFormTeste.Button2Click(Sender: TObject);
var
vtot:Real;
begin
vtot:=0;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.sql.Add('Select sum(Valor) from TabVendas where Forma_Pgto = ' +chr(39)+'Dinheiro'+chr(39)+ 'and Data_Venda BETWEEN :dtinicial and :dtfinal');
DmDados.QVendas.Parameters.Parambyname('dtinicial').value := Strtodate(edit3.text);
DmDados.QVendas.Parameters.ParamByName('dtFinal').value := Strtodate(edit4.text);
DmDados.QVendas.Open;
if (DmDados.QVendas.fields.fields[3].isnull) then
label3.caption:='R$ 0,00'
else
begin
vtot:=vtot+DmDados.QVendas.fields.fields[3].value;
label3.caption:=floattostrf(DmDados.QVendas.fields.fields[3].value,ffCurrency,6,2);
end;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.sql.Add('Select sum(Valor) from TabVendas where Forma_Pgto = ' +chr(39)+'Cartão'+chr(39)+ 'and Data_Venda BETWEEN :dtinicial and :dtfinal');
DmDados.QVendas.Parameters.Parambyname('dtinicial').value := Strtodate(edit3.text);
DmDados.QVendas.Parameters.ParamByName('dtFinal').value := Strtodate(edit4.text);
DmDados.QVendas.Open;
if (DmDados.QVendas.fields.fields[3].isnull) then
label5.caption:='R$ 0,00'
else
begin
vtot:=vtot+DmDados.QVendas.fields.fields[3].value;
label5.caption:=floattostrf(DmDados.QVendas.fields.fields[3].value,ffCurrency,6,2);
end;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.sql.Add('Select sum(Valor) from TabVendas where Forma_Pgto = ' +chr(39)+'Cheque'+chr(39)+ 'and Data_Venda BETWEEN :dtinicial and :dtfinal');
DmDados.QVendas.Parameters.Parambyname('dtinicial').value := Strtodate(edit3.text);
DmDados.QVendas.Parameters.ParamByName('dtFinal').value := Strtodate(edit4.text);
DmDados.QVendas.Open;
if (DmDados.QVendas.fields.fields[3].isnull) then
label7.caption:='R$ 0,00'
else
begin
vtot:=vtot+DmDados.QVendas.fields.fields[3].value;
label7.caption:=floattostrf(DmDados.QVendas.fields.fields[3].value,ffCurrency,6,2);
end;
DmDados.QVendas.Close;
DmDados.QVendas.sql.clear;
DmDados.QVendas.sql.Add('Select * from TabVendas');
DmDados.QVendas.Open;[img]http://arquivo.devmedia.com.br/forum/imagem/424081-20150508-202758.png[/img]
label10.caption:=floattostrf(vtot,ffCurrency,6,2);
end;
Erick
Curtir tópico
+ 0Post mais votado
08/05/2015
Joel Rodrigues
Gostei + 2
Mais Posts
09/05/2015
Erick
Gostei + 0
09/05/2015
Joel Rodrigues
Select sum(Valor) from TabVendas
Isso vai retornar apenas um campo, que você deve acessar pelo índice zero.
Gostei + 0
12/05/2015
Erick
Gostei + 0
12/05/2015
Joel Rodrigues
Que bom que resolveu,
Um abraço e bons códigos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)