Locate em parte de um campo tipo Date
Bom dia, gente...
Essa está meio difícil...
Necessito fazer uma busca em uma chave composta por três campos, sendo que um deles é do tipo Date, em uma tabela do ACCESS 2000.
O problema, porém, é que necessito fazer a busca por parte da data (somente pelo mês). O LOCATE não está aceitando algo do tipo:
dm.tbRep.Locate(´ + FormatDateTime(´mm´,Data) + ´;Cod_Aluno;Cod_Tipo´,varArrayOf([wMes,CodigoAlu,2]),[]);
As mensagens:
Not enough actual parameters; (cursor parando sobre o parâmetro ´mm´
Unterminated string;
Alguém tem alguma idéia de como fazer esta busca ?
Grato.
[quote:bebd3cbf2f=´Moderação´][b:bebd3cbf2f][color=blue:bebd3cbf2f]Título do tópico editado por Vinicius2K:[/color:bebd3cbf2f][/b:bebd3cbf2f]
[b:bebd3cbf2f][color=red:bebd3cbf2f][list:bebd3cbf2f][*:bebd3cbf2f]Título inteiramente em maiúsculas: ´LOCATE EM PARTE DE UM CAMPO DO TIPO DATE´[/list:u:bebd3cbf2f][/color:bebd3cbf2f][/b:bebd3cbf2f]
Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] e se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].[/quote:bebd3cbf2f]
Essa está meio difícil...
Necessito fazer uma busca em uma chave composta por três campos, sendo que um deles é do tipo Date, em uma tabela do ACCESS 2000.
O problema, porém, é que necessito fazer a busca por parte da data (somente pelo mês). O LOCATE não está aceitando algo do tipo:
dm.tbRep.Locate(´ + FormatDateTime(´mm´,Data) + ´;Cod_Aluno;Cod_Tipo´,varArrayOf([wMes,CodigoAlu,2]),[]);
As mensagens:
Not enough actual parameters; (cursor parando sobre o parâmetro ´mm´
Unterminated string;
Alguém tem alguma idéia de como fazer esta busca ?
Grato.
[quote:bebd3cbf2f=´Moderação´][b:bebd3cbf2f][color=blue:bebd3cbf2f]Título do tópico editado por Vinicius2K:[/color:bebd3cbf2f][/b:bebd3cbf2f]
[b:bebd3cbf2f][color=red:bebd3cbf2f][list:bebd3cbf2f][*:bebd3cbf2f]Título inteiramente em maiúsculas: ´LOCATE EM PARTE DE UM CAMPO DO TIPO DATE´[/list:u:bebd3cbf2f][/color:bebd3cbf2f][/b:bebd3cbf2f]
Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] e se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].[/quote:bebd3cbf2f]
Adalberto
Curtidas 0
Respostas
Rjun
03/04/2006
Não dá pra fazer o que você está querendo com o Locate. Você teria que fazer isso via código, com um WHILE por exemplo.
GOSTEI 0
Silvio Ribeiro
03/04/2006
Não dá pra fazer o que você está querendo com o Locate. Você teria que fazer isso via código, com um WHILE por exemplo.
Realmente com locate nao dá.
Com while, dependendo do tamanho da tabela tb fica inviável. Usa uma query.
Faz um select puxando os dados da tabela q vc ta querendo, e no where vc coloca os campos q vc quer achar no locate:
select * from nome_da_tabela where cod_aluno=:aluno and cod_tipo=:tipo and MONTH(data)=:mes;
ai eh so passar os parametros pra query assim:
// levando em conta q vc ta usando a paleta ado... query1.close; query1.params.parambyname(´ALUNO´).Value := edtAlunoCod.text; query1.params.parambyname(´TIPO´).Value := edtTipoCOd.text; query1.params.parambyname(´MES´).Value := edtMes.text; query1.open;
Tenta ai. qq coisa retorna o post! ;D
abraçços
Silvio Ribeiro
Joao Pessoa - PB[/code]
GOSTEI 0
Adalberto
03/04/2006
[b:ac9fbb33d1]Valeu Silvio !!![/b:ac9fbb33d1] :D
Com a query funcionou legal...
[b:ac9fbb33d1]Obrigado.[/b:ac9fbb33d1]
[]´s.
Adalberto
Com a query funcionou legal...
[b:ac9fbb33d1]Obrigado.[/b:ac9fbb33d1]
[]´s.
Adalberto
GOSTEI 0
Acacio
03/04/2006
Na query tem um evento chamado FilterRecord
nele tem a variável Accept
ali voce pode colocar a parte da data que deseja
exemplo
coloque a propriedade filtered como true;
Accept := pos(´11/11´,query.fieldbyname(campodata.text) > 0
nele tem a variável Accept
ali voce pode colocar a parte da data que deseja
exemplo
coloque a propriedade filtered como true;
Accept := pos(´11/11´,query.fieldbyname(campodata.text) > 0
GOSTEI 0