Fórum Saldo anterior - o que há de errado? #597886
17/10/2018
0
Só que quando eu clico, da erro. Aparece a mensagem 'tipo de dados incompatível na expressão de critério.
O que pode estar errado?
Meu código tá assim:
procedure TFinanceiro.Button5Click(Sender: TObject);
Var
DataIni, DataFim: Tdate;
num1, num2, num3: real;
begin
//Retorna o total de entradas do mês anterior
Label4.caption := '';
DataIni := StartOfTheMonth(Datetimepicker1.Date);
DataFim := EndOfTheMonth(Datetimepicker2.Date);
AdoqueryEntr.Close;
AdoqueryEntr.SQL.Clear;
AdoqueryEntr.SQL.Add('Select sum(Valor) as Expr1');
AdoqueryEntr.SQL.Add('From entradas');
AdoqueryEntr.SQL.Add('where DtLanc between :DataIni and :DataFim');
AdoqueryEntr.Parameters.ParamByName('DataIni').Value := DataIni;
AdoqueryEntr.Parameters.ParamByName('DataFim').Value := DataFim;
AdoqueryEntr.Open;
If dbtext1.Caption = '' then
begin
num1 := StrToFloat('0');
Label4.Caption := 'R$0.00'
end
else
begin
num1 := StrToFloat(dbtext1.caption);
Label4.Caption := FloatToStrF(num1, ffcurrency, 8,2);
end;
//Retorna o total de saída do mês anterior
label5.caption := '';
AdoquerySai.close;
AdoquerySai.SQL.Clear;
AdoquerySai.SQL.add('Select sim(Valor) as Expr2');
AdoquerySai.SQL.add('from Saidas');
AdoquerySai.SQL.add('where DtLanc between :DataIni and :DataFim');
AdoquerySai.Parameters.ParamByName('DataIni').Value := DataIni;
AdoquerySai.Parameters.ParamByName('DataFim').Value := DataFim;
AdoquerySai.Open;
If dbtext2.Caption = '' then
Begin
num2 := StrToFloat(dbtext2.Caption);
Label5.Caption := 'R$0.00';
end
else
begin
num2 := StrtoFloat(dbtext2.caption);
Label5.Caption := FloatToStrF(num2, ffcurrency, 8,2);
end;
num3 := num1 - num2;
LabelSaldo.caption := FloatToStrF(num3, ffcurrency, 8,2);
End; Edilson Santiago
Curtir tópico
+ 0Posts
17/10/2018
Emerson Nascimento
sIm deveria ser sUm, não?
Gostei + 0
17/10/2018
Edilson Santiago
Gostei + 0
17/10/2018
Douglas Souza
Eu acredito que problema (tipo de dados incompatível na expressão de critério) está na formatação do campo: DataIni e DataFim, os mesmos devem estar em um formato inválido. Sugiro que você execute a instrução SQL de um dos Adoquery direto no seu banco de dados, passando o valor da data no mesmo formato que o delphi.
Att, Douglas Claudio.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)