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

anterior e proximo


biakeffer

Pergunta

olá de novo pessoal!!!

Tipo...estou precisando codificar um botão anterior e proximo, porém eu tenho uma tabela de recados que armazena recados de varias pessoas, cadas pessoa tem um codigo, ai eu queria que quando eu clicasse no anterior ou proximo só mostrasse recados dessa determinada pessoa...tipo eu codifico o botão proximo assim:

DataModule1.Tablerecado.Open;
DataModule1.Tablerecado.Next; //  registro proximo

WITH frmrecado do
    begin
    edtcodigo.Text := DataModule1.Tablerecado.FieldByName('codigo').AsString;
    edtnome.Text:= DataModule1.Tablerecado.FieldByName('NOME').AsString;
    edttelefone.Text:= DataModule1.Tablerecado.FieldByName('TELEFONE').AsString;
    edtpara.Text := DataModule1.Tablerecado.FieldByName('PARAQUEM').AsString;
    EDTDATA.Text := DataModule1.Tablerecado.FieldByName('DATA').AsString;
    Memo1.Text := DataModule1.Tablerecado.FieldByName('OBS').AsString;
    EDTDATA.Text := DataModule1.Tablerecado.FieldByName('DATA').AsString;
    edthora.Text := DataModule1.Tablerecado.FieldByName('HORARECEBIMENTO').AsString;
    end;  

MSql :='select * from tbrecados where CODPRAQUEM =' + QuotedStr (edit1.Text);
    begin
       with Qrecado do
       begin
         Close;
         sql.clear;
         sql.Add(msql);
         open;
        end;
   end;

porém dessa forma me mostra todos os registros da tabela :-/

como posso fazer pra mostrar somente os registros de quem tem o codigo 5 por exemplo

Editado por biakeffer
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
porém dessa forma me mostra todos os registros da tabela :-/

como posso fazer pra mostrar somente os registros de quem tem o codigo 5 por exemplo

biakeffer, olhando a consulta SQL que você usa:

MSql :='select * from tbrecados where CODPRAQUEM =' + QuotedStr (edit1.Text);

sendo CODPRAQUEM o campo corresponente ao código da pessoa a ser filtrado, supostamente a consulta está correta.

Este campo é VARCHAR ou INTEGER? Se for INTEGER, sugiro que retire o QuotedStr, já que basta uma concatenação simples visto que os números não precisam ser tratados com delimitador de texto. (não lembro em que banco de dados, mas tenho a impressão de que este foi um motivo de não obter o resultado esperado)

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

huahuaha.....conseguiiii /

fiz assim:

alterar.Enabled := true;
    excluir.Enabled := true;
    DataModule1.Tablerecado.Open;
        //  registro anterior
    MSql :='select * from tbrecados where CODPRAQUEM =' + QuotedStr (edit1.Text);
    begin
       with Qrecado do
       begin
         Close;
         sql.clear;
         sql.Add(msql);
         open;
        end;
   end;
DataModule1.Tablerecado.Next;
    editcodpara.text :=DataModule1.Tablerecado.FieldByName('CODPRAQUEM').AsString;
IF EDIT1.TEXT = editcodpara.text then
begin
WITH frmrecado do
    begin
    edtcodigo.Text := DataModule1.Tablerecado.FieldByName('codigo').AsString;
    edtnome.Text:= DataModule1.Tablerecado.FieldByName('NOME').AsString;
    edttelefone.Text:= DataModule1.Tablerecado.FieldByName('TELEFONE').AsString;
    edtpara.Text := DataModule1.Tablerecado.FieldByName('PARAQUEM').AsString;
    EDTDATA.Text := DataModule1.Tablerecado.FieldByName('DATA').AsString;
    Memo1.Text := DataModule1.Tablerecado.FieldByName('OBS').AsString;
    EDTDATA.Text := DataModule1.Tablerecado.FieldByName('DATA').AsString;
    edthora.Text := DataModule1.Tablerecado.FieldByName('HORARECEBIMENTO').AsString;

    end;

end;

end;

só que ai tem um probleminha...vamos supor que tenha um recado para o codigo 5, um recado só e na tabela esse recado seja o recado 54 por exemplo, a pessoa vai ter que ir clicando em proximo até chegar no recado dela, isso é mal, porque a pessoa pode clicar uma vez e pensar que não tem recado...:(

Editado por biakeffer
Link para o comentário
Compartilhar em outros sites

  • 0
não deu certo..tirando o quotedstr da erro

server version for the right syntax to use near " at line 1

esta mensagem parece sugerir que o Edit1.Text possa estar nulo neste momento do teste. Não estaria?

Neste esquema que você diz querer fazer, os recados não são filtrados pelo código da pessoa que deve lê-los? Não "captei" por que você usa uma tabela onde estão todos os registros?

Em teoria eu pensaria que ao informar o código da pessoa a ler os recados, você usaria uma consulta SQL filtrando apenas os dados dela. Neste ponto você tem a query aberta e usa o botão Prox e Ant para navegar no resultado através dos métodos Next e Prior, respectivamente. A questão de mover os valores das colunas para os TEdits, já que você não está usando TDBEdits (o que facilitaria muito seu trabalho), poderia ser contornada utilizando o evento OnDataChange do DataSource ligado ao Dataset em questão - a query com o resultado obtido.

Abraços

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,8k
×
×
  • Criar Novo...