Fórum Dúvida sobre busca com Locate e FormatFloat #202366
21/12/2003
0
Uso o codigo abaixo para localizar o funcionario em minha tabela, quando eu digito o codigo ele funciona o proble e se eu digitar uma matricula que não exista ele não acha mais passa para outro campo, e so quero que passe se a matricula digitada exister na minha tabela.
if Edit1.Text <> ´´ then
FrmCadastro.ADOQuery1.Locate(´matricula´, Edit1.Text, [lopartialkey, locaseinsensitive])
else
begin
ShowMessage(´Digite a Matrícula´);
edit1.SetFocus;
Minha segunda dúvida e que coloquei este codigo para dar formato ao meu edit1.text mais , quando digito o valor nao funciona da erro, so deixa eu digitar numeros se tiver zero ele nao digita. por favor se alguem souber onde esta o erro agradeço.
edit1.text := FormatFloat(´#0.00´,´StrtoFloat(edit1.text )
Agradeço a todos.
if Edit1.Text <> ´´ then
FrmCadastro.ADOQuery1.Locate(´matricula´, Edit1.Text, [lopartialkey, locaseinsensitive])
else
begin
ShowMessage(´Digite a Matrícula´);
edit1.SetFocus;
Minha segunda dúvida e que coloquei este codigo para dar formato ao meu edit1.text mais , quando digito o valor nao funciona da erro, so deixa eu digitar numeros se tiver zero ele nao digita. por favor se alguem souber onde esta o erro agradeço.
edit1.text := FormatFloat(´#0.00´,´StrtoFloat(edit1.text )
Agradeço a todos.
Uoquisala
Curtir tópico
+ 0
Responder
Posts
21/12/2003
Deus
Bem, o primeiro passo para entender o que está havendo no seu if é entender o seu código. Quando você usa
Você está dizendo o seguinte: ´Se o edit for diferente de nulo, então localize o registro. Se não, peça para digitar a matrícula´. E não é isso que você quer, você quer que ´Se o edit for diferente de nulo [b:53b21367ff]e o registro não for localizado[/b:53b21367ff], peça para digitar a matrícula´, e esse código seria:
O segundo caso eu confesso que não entendi o porquê das duas aspas em ´(...) FormatFloat(´#0.00[b:53b21367ff]´,´[/b:53b21367ff]StrtoFloat (...)´, nem entendi em que situação você atribui este valor. Será que não é melhor fazer esta atribuição no [i:53b21367ff]OnExit[/i:53b21367ff] do Edit? Faça apenas a verificação de integridade de dados no [i:53b21367ff]OnKeyPress[/i:53b21367ff], e no [i:53b21367ff]OnExit[/i:53b21367ff] é que você faz a formatação dos dados. Ok? :)
Abraços, dEUS.
if Edit1.Text <> ´´ then FrmCadastro.ADOQuery1.Locate(´matricula´, Edit1.Text, [lopartialkey, locaseinsensitive]) else begin ShowMessage(´Digite a Matrícula´); edit1.SetFocus; end;
Você está dizendo o seguinte: ´Se o edit for diferente de nulo, então localize o registro. Se não, peça para digitar a matrícula´. E não é isso que você quer, você quer que ´Se o edit for diferente de nulo [b:53b21367ff]e o registro não for localizado[/b:53b21367ff], peça para digitar a matrícula´, e esse código seria:
if (Trim(Edit1.Text) <> ´´) AND NOT (FrmCadastro.ADOQuery1.Locate(´matricula´, Edit1.Text, [lopartialkey, locaseinsensitive])) then begin ShowMessage(´Digite a Matrícula´); Edit1.SetFocus; end;
O segundo caso eu confesso que não entendi o porquê das duas aspas em ´(...) FormatFloat(´#0.00[b:53b21367ff]´,´[/b:53b21367ff]StrtoFloat (...)´, nem entendi em que situação você atribui este valor. Será que não é melhor fazer esta atribuição no [i:53b21367ff]OnExit[/i:53b21367ff] do Edit? Faça apenas a verificação de integridade de dados no [i:53b21367ff]OnKeyPress[/i:53b21367ff], e no [i:53b21367ff]OnExit[/i:53b21367ff] é que você faz a formatação dos dados. Ok? :)
Abraços, dEUS.
Responder
Gostei + 0
21/12/2003
Uoquisala
ele esta aceitando pular quando o campo esta em branco, mais a segunda parte ficou legal so passa se o codigo existir...
Bem, o primeiro passo para entender o que está havendo no seu if é entender o seu código. Quando você usa
Você está dizendo o seguinte: ´Se o edit for diferente de nulo, então localize o registro. Se não, peça para digitar a matrícula´. E não é isso que você quer, você quer que ´Se o edit for diferente de nulo [b:2c03f85d00]e o registro não for localizado[/b:2c03f85d00], peça para digitar a matrícula´, e esse código seria:
O segundo caso eu confesso que não entendi o porquê das duas aspas em ´(...) FormatFloat(´#0.00[b:2c03f85d00]´,´[/b:2c03f85d00]StrtoFloat (...)´, nem entendi em que situação você atribui este valor. Será que não é melhor fazer esta atribuição no [i:2c03f85d00]OnExit[/i:2c03f85d00] do Edit? Faça apenas a verificação de integridade de dados no [i:2c03f85d00]OnKeyPress[/i:2c03f85d00], e no [i:2c03f85d00]OnExit[/i:2c03f85d00] é que você faz a formatação dos dados. Ok? :)
Abraços, dEUS.
if Edit1.Text <> ´´ then FrmCadastro.ADOQuery1.Locate(´matricula´, Edit1.Text, [lopartialkey, locaseinsensitive]) else begin ShowMessage(´Digite a Matrícula´); edit1.SetFocus; end;
if (Trim(Edit1.Text) <> ´´) AND NOT (FrmCadastro.ADOQuery1.Locate(´matricula´, Edit1.Text, [lopartialkey, locaseinsensitive])) then begin ShowMessage(´Digite a Matrícula´); Edit1.SetFocus; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)