Saldo anterior - o que há de errado?
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
Posts
17/10/2018
Emerson Nascimento
sIm deveria ser sUm, não?
17/10/2018
Edilson Santiago
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.
Clique aqui para fazer login e interagir na Comunidade :)