Fórum Problemas com instrução SQL #267823
09/02/2005
0
Estou com o seguinte problema: tenho um form onde irei fazer o recebimento de contas do meu sistema. inicialmente tenho um dblookupcombobox para listar qual o cliente, após isso tenho um dbgrid onde irei listar a(s) conta(s) que o cliente possui. uso a tabela com nome conta_receber, onde quero listar os seguintes campos no dbgrid: documento, data_emissao, vencimento, valor. Alguém poderia me ajudar como faria a instrução: outro problema é que quando vou colocar o código para ele fazer a seleção, com base na dblookupcombox na query que inseri em meu programa na opção SQL dá erro também, já tentei com um edit que faz uma consulta em outro form mas também não deu certo.
Desde já muito obrigado!
Gtts
Curtir tópico
+ 0Posts
09/02/2005
Marcio.theis
No envento OnChange do seu dblookupcombobox colocaria
if dblookupcombobox.Text <> ´´ then qry.Close; qry.SQL.Clear; qry.SQL.Add(´select documento, data_emissao, vencimento, valor´); qry.SQL.Add(´from conta_receber´); qry.SQL.Add(´where conta_receber = ´ + IntToStr(tblClienteNUCLIENTE.Value)); qry.Open;
Caso não ficou claro para vc, coloque seu código para podermos dar uma olhada nele.
Gostei + 0
09/02/2005
Gtts
Funcionou e não deu nenhum erro. Se eu tentar com um edit, como citei logo acima, em qual evento que colocaria a instrução? No caso o Edit iria receber o valor que selecionei na consulta em outro form em um DBGrid.
Gostei + 0
09/02/2005
Marcio.theis
Gostei + 0
09/02/2005
Gtts
Coloquei o código, confome tu postou no fórum, só que usei um edit.
if edit2.Text ´´ then
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(´select documento, data_emissao, vencimento, valor´);
query1.SQL.Add(´from conta_receber´);
query1.SQL.Add(´where conta_receber = ´ + IntToStr([u:31e1bab0df]tblClienteNUCLIENTE.Value[/u:31e1bab0df]));
query1.Open;
minha dúvida agora é o que coloco onde está sublinhado? O erro de compilação está ali. Coloque o nome da tabela e o campo NOME e não deu certo. Se puder me ajudar, ficarei muito grato.
Gostei + 0
09/02/2005
Marcio.theis
query1.SQL.Add(´where conta_receber.nucliente = ´ + IntToStr(tblClienteNUCLIENTE.Value));
o (tblClienteNUCLIENTE.Value) no caso é o código do cliente que foi selecionado, se vc quiser passar o nome pode passar diretamente o Edit.Text, mas o seu SQL iria mudar para:
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(´select documento, data_emissao, vencimento, valor´);
query1.SQL.Add(´from conta_receber, cliente´);
query1.SQL.Add(´where conta_receber.nucliente = cliente.nucliente´);
query1.SQL.Add(´and cliente.nmcliente = ´´´ + Edit.Text + ´´´´);
query1.Open;
mas na minha opinião, o melhor seria vc executar o SQL buscando o cliente pelo seu código, pois vc pode de ter clientes com o mesmo nome e neste caso iria trazer os dois.
Gostei + 0
09/02/2005
Gtts
tentei buscar pelo código, conforme tu me indicou e o código ficou o seguinte:
[color=green:64966eb4d0]if edit1.Text ´´ then
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(´select documento, data_emissao, vencimento, valor´);
query1.SQL.Add(´from conta_receber, cliente´);
query1.SQL.Add(´where conta_receber.codigo_cliente = ´ + IntToStr(tbClientesCODIGO.Value));
query1.SQL.Add(´where conta_receber.nucliente = cliente.CODIGO´);
query1.SQL.Add(´and cliente.nmcliente = ´´´ + Edit2.Text + ´´´´);
query1.Open; [/color:64966eb4d0]
o problema é que compila, não dá erro nenhum e qdo vou executar ele faz a consulta tudo sem problema o edit recebe o cógigo mas dáa seguinte mensagem:
invalid variant type conversion!
Tu saberia me dizer o que está acontecendo?
Desde já muito grato.
Gostei + 0
09/02/2005
Marcio.theis
edit1.Text ´´ then
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(´select documento, data_emissao, vencimento, valor´);
query1.SQL.Add(´from conta_receber, cliente´);
query1.SQL.Add(´where conta_receber.nucliente = cliente.CODIGO´);
query1.SQL.Add(´and conta_receber.codigo_cliente = ´ + IntToStr(tbClientesCODIGO.Value));
query1.Open;
o erro (Invalid Variant Type Conversion! ) ocorre quando vc não converteu uma variável, como por exemplo de string para integer, algum lugar poderia estar esperando integer e venho string, assim ocorre o erro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)