Socorro!! Filtrar Tabela
Tenho um Banco de Dados onde Tenho alguns Campos como: Cod, Aluno, Sala(SalaUm, Dois, Tres.....) Como Fazer para Filtrar por Sala?
Por Exemplo. Eu gostaria de em um ´Edit´ digitar Sala um: ai aparece em um DBGrid Somente os alunos da Sala UM, Quem poderá me Ajudar?
Agradeco a Ajuda Antecipadamente!
Por Exemplo. Eu gostaria de em um ´Edit´ digitar Sala um: ai aparece em um DBGrid Somente os alunos da Sala UM, Quem poderá me Ajudar?
Agradeco a Ajuda Antecipadamente!
Xadriano
Curtidas 0
Respostas
Xakal
23/08/2003
table1.locate(´salaum´,edit1.text,locaseinsensitive,lopartialkey;
GOSTEI 0
Carlosrm
23/08/2003
Xadriano,
table1.filter := ´Sala = ´+quotedstr(edit1.text);
table1.filtered := true;
Obs: Para evitar erros de digitação, é preferível usar outro componente no lugar do edit. Por exemplo, um combobox com a propriedade items carregada com os nomes das salas existentes. Aí, no evento OnChange, bastará escrever as duas linhas acima.
Se vc usar, por exemplo, o evento OnExit do edit, caso tenha digitado um nome de sala inexistente, seu dbgrid ficará vazio.
Se não ajudou, espero não ter atrapalhado. carlosrm.
table1.filter := ´Sala = ´+quotedstr(edit1.text);
table1.filtered := true;
Obs: Para evitar erros de digitação, é preferível usar outro componente no lugar do edit. Por exemplo, um combobox com a propriedade items carregada com os nomes das salas existentes. Aí, no evento OnChange, bastará escrever as duas linhas acima.
Se vc usar, por exemplo, o evento OnExit do edit, caso tenha digitado um nome de sala inexistente, seu dbgrid ficará vazio.
Se não ajudou, espero não ter atrapalhado. carlosrm.
GOSTEI 0
Bacalhau
23/08/2003
Cria um indice para o campo sala, por exemplo AL_SALA.
Quando abrires a tabela faz:
table1.open;
table1.indexname := ´AL_SALA´;
Após digitares a sala que pretendes escreve o seguinte código;
table1.cancelrange; // isto desliga filtragens anteriores
table1.setrangestart;
table1.fieldbyname(´Sala´).asstring := ´SALA_PRETENDIDA´;
table1.setrangeend;
table1.fieldbyname(´Sala´).asstring := ´SALA_PRETENDIDA´;
table1.applyrange;
E ´voilá´ tá pronto!
bacalhau
Quando abrires a tabela faz:
table1.open;
table1.indexname := ´AL_SALA´;
Após digitares a sala que pretendes escreve o seguinte código;
table1.cancelrange; // isto desliga filtragens anteriores
table1.setrangestart;
table1.fieldbyname(´Sala´).asstring := ´SALA_PRETENDIDA´;
table1.setrangeend;
table1.fieldbyname(´Sala´).asstring := ´SALA_PRETENDIDA´;
table1.applyrange;
E ´voilá´ tá pronto!
bacalhau
GOSTEI 0