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

(Resolvido) Erro


MagoDanger

Pergunta

pessoal, beleza?

estou com um problema aqui que não consigo entender...

meu BD é ACCESS...

bom, tenho uma tabelma tbl_orcamento e outra tbl_corpo

na tbl_orcamento fica alguns dados do cliente e tem a tbl_corpo que recebe vários ítens que fazem parte desse orçamento...

tudo está sendo funcionando legal... porém preciso que seja somado o valor final dos produtos que fazem parte desse orçamento... usei a seguinte função:

var
soma1: Double;
begin
soma1 := 0;
dm.q_corpo.post;
begin
with dm.q_corpo do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_corpo where id_liga like '''+ dbe_codigo.text + '%'''); //os itens que são adcionados na tbl_corpo são relacionados ao orçamento pelo código, esse código é gerado por programa~çao e não automaticamente pelo BD.
  Open;
  while not dm.q_corpo.Eof do
begin
  soma1 := soma1 + dm.q_corpo.Fieldbyname('preco_total').Value;
  dm.q_corpo.Next;
  ltotal.Caption := FloatToStrF(soma1,ffCurrency , 15,2);
begin
dm.q_corpo.Insert;
edt_produto.SetFocus;
end; end; end; end; end;

essa programação fica no botão incluir, ou seja, a cada ítem que for incluindo ele já vai somando e exibindo o valor final...

quando você inseri o primeiro produto ele pega o valor e mostra certinho... porém quando você insere o segundo produo, ao invés de fazer a soma, ele apresenta o seguinte erro:

could not convert variant of type (Null) into type (Double)

o que tem de errado nisso que eu fiz que está dando esse erro?

valewww

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

pessoal.... o problema está aqui

dm.q_corpo.Insert;

se eu deixo ele junto na programação como eu colei o código acima da o erro..

se eu tiro da programação e coloco o insert em outro botão ai dá certo...

só que não é certo clicar em cadastrar e depois ter que clicar em inserir novamente, dá muito trabalho...

porque o insert junto com a programação dá erro e se eu coloco ele separado, é feito a soma e não dá erro?

Link para o comentário
Compartilhar em outros sites

  • 0
porque o insert junto com a programação dá erro e se eu coloco ele separado, é feito a soma e não dá erro?
procedure TForm1.Button1Click(Sender: TObject);
var
   soma1: Double;
begin
   soma1 := 0;
   dm.q_corpo.post;
   begin
     with dm.q_corpo do
     begin
       Close;
       SQL.Clear;
       SQL.Add('select * from tbl_corpo where id_liga like '''+ dbe_codigo.text + '%'''); 
       Open;
       while not dm.q_corpo.Eof do
       begin
         soma1 := soma1 + dm.q_corpo.Fieldbyname('preco_total').Value;
         dm.q_corpo.Next;
         ltotal.Caption := FloatToStrF(soma1,ffCurrency , 15,2);
         begin
            dm.q_corpo.Insert;
            edt_produto.SetFocus;
         end;
       end;
     end;
   end;
end;

acho que nesse ponto fica bem evidente não ?

while not dm.q_corpo.Eof do

begin

soma1 := soma1 + dm.q_corpo.Fieldbyname('preco_total').Value;

dm.q_corpo.Next;

ltotal.Caption := FloatToStrF(soma1,ffCurrency , 15,2);

begin

dm.q_corpo.Insert;

edt_produto.SetFocus;

end;

end;

o comando insert está dentro de um loop que será executado n vezes ... entretanto se ele for usado no evento OnExit do edt_produto, creio que não dará erro

abraço

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
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...