Query...
Tenho um cadastro de clientes com um campo para data de aniversário q é string com tamanho 4, e através dele eu verifico através de um ListBox com todos os meses discriminados, o usuário clica do desejado e pede para imprimir as cartas de aniversário, uso paradox e para gerar as cartas estou usando uma Query q está assim:
Select * From Clientes
Where DtNascimento Like :VarMes
Order by DtNascimento
e no botão para gerar as cartas assim:
QryAniver.Close;
if (ListBox1.ItemIndex+1)<10 then
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1)
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1);
QryAniver.Prepare;
QryAniver.Open;
QuickRep3.Preview;
tá até aí tudo bem, mas agora o cliente quer q eu acrescente o ano do niver, então ao invés do campo ter tamanho 4 mudei para 8 e coloquei uma máscara de data para a pessoa cadastrar, o problema é q não quer dar mais certo estes procedimento q estão acima por q mudei para 8 caracteres, e qdo pesso para tirar as cartas não aparece nada, acho q tem alguma coisa com essa variável mas não sei como resolver, será q alguém pode me ajudar?
Select * From Clientes
Where DtNascimento Like :VarMes
Order by DtNascimento
e no botão para gerar as cartas assim:
QryAniver.Close;
if (ListBox1.ItemIndex+1)<10 then
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1)
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1);
QryAniver.Prepare;
QryAniver.Open;
QuickRep3.Preview;
tá até aí tudo bem, mas agora o cliente quer q eu acrescente o ano do niver, então ao invés do campo ter tamanho 4 mudei para 8 e coloquei uma máscara de data para a pessoa cadastrar, o problema é q não quer dar mais certo estes procedimento q estão acima por q mudei para 8 caracteres, e qdo pesso para tirar as cartas não aparece nada, acho q tem alguma coisa com essa variável mas não sei como resolver, será q alguém pode me ajudar?
Janete
Curtidas 0
Respostas
Marlon Spiess
02/10/2003
Olá, já q vc está trabalhando assim, pq vc não volta a estrutura anterior, q está ok, e cria uma coluna nova só pra guardar o ano, e dai então trabalhar com ele após retorno da query. Espero ter ajudado.
Boa sorte
Boa sorte
GOSTEI 0
Janete
02/10/2003
[quote:f0e61ba5db=´Marlon Henrique Spiess´]Olá, já q vc está trabalhando assim, pq vc não volta a estrutura anterior, q está ok, e cria uma coluna nova só pra guardar o ano, e dai então trabalhar com ele após retorno da query. Espero ter ajudado.
Boa sorte[/quote:f0e61ba5db]
Eu havia feito um campo só para o ano, mas o cliente não gostou ele quer o campo data de nascimento completo.
Descobri q aquela forma q estou fazendo ele pega sempre os dois últimos campos q antes era o mes e agora q acrescentei mais dois caracteres agora é o ano os ultimos por isso ele não encontra o mes, não sei como resolver isso, ele teria q sei lá diminuir os dois últimos campos para verificar o mes o algo parecido. Ainda estou com esse problema?
Boa sorte[/quote:f0e61ba5db]
Eu havia feito um campo só para o ano, mas o cliente não gostou ele quer o campo data de nascimento completo.
Descobri q aquela forma q estou fazendo ele pega sempre os dois últimos campos q antes era o mes e agora q acrescentei mais dois caracteres agora é o ano os ultimos por isso ele não encontra o mes, não sei como resolver isso, ele teria q sei lá diminuir os dois últimos campos para verificar o mes o algo parecido. Ainda estou com esse problema?
GOSTEI 0
Marlon Spiess
02/10/2003
Bom, nesse caso quem sabe usando o comnado copy(variavel, 1,4) para pegar só os 4 primeiros digitos. Se ue poder ajudar mais, fala.
Boa sorte
Boa sorte
GOSTEI 0
Janete
02/10/2003
[quote:590c5e0fc5=´Marlon Henrique Spiess´]Bom, nesse caso quem sabe usando o comnado copy(variavel, 1,4) para pegar só os 4 primeiros digitos. Se ue poder ajudar mais, fala.
Boa sorte[/quote:590c5e0fc5]
Então me ajude mais um pouco, onde coloco este comando...
Boa sorte[/quote:590c5e0fc5]
Então me ajude mais um pouco, onde coloco este comando...
GOSTEI 0
Janete
02/10/2003
[quote:601a835640=´Marlon Henrique Spiess´]Bom, nesse caso quem sabe usando o comnado copy(variavel, 1,4) para pegar só os 4 primeiros digitos. Se ue poder ajudar mais, fala.
Boa sorte
Então me ajude mais um pouco, onde coloco este comando...[/quote:601a835640]
Mas teria q pegar os 4 primeiros digitos do campo dtnascimento.
Ainda não consegui...
GOSTEI 0
Marlon Spiess
02/10/2003
Oi, outra solução seria vc fazer a valicação com o campo dia/mes + 0000 (quatro zeros) como data inicial e dia/mes + 9999 (quatro noves) como data final para o seu filtro.
Boa sorte
Boa sorte
GOSTEI 0
Janete
02/10/2003
[quote:14e027931e=´Marlon Henrique Spiess´]Oi, outra solução seria vc fazer a valicação com o campo dia/mes + 0000 (quatro zeros) como data inicial e dia/mes + 9999 (quatro noves) como data final para o seu filtro.
Boa sorte[/quote:14e027931e]
Marlon, desculpa mas sobre query não sei muito, então se puder me dizer como fazer na prática seria melhor, na primeira pergunta q fiz coloquei como foi meu procedimento, se puder me ajudar... Mesmo assim obrigado
Continuo com essa dúvida!!!
Boa sorte[/quote:14e027931e]
Marlon, desculpa mas sobre query não sei muito, então se puder me dizer como fazer na prática seria melhor, na primeira pergunta q fiz coloquei como foi meu procedimento, se puder me ajudar... Mesmo assim obrigado
Continuo com essa dúvida!!!
GOSTEI 0
Marlon Spiess
02/10/2003
Oi usando parte do seu texto original, vou tentar explicar
QryAniver.Close;
if (ListBox1.ItemIndex+1)<10 then
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) *****
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1); *****
QryAniver.Prepare;
QryAniver.Open;
QuickRep3.Preview;
nas linhas onde tem ***** vc faz
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) + ´0000´
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1) + ´9999´;
Espero ter ajudado, continuo a disposição
QryAniver.Close;
if (ListBox1.ItemIndex+1)<10 then
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) *****
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1); *****
QryAniver.Prepare;
QryAniver.Open;
QuickRep3.Preview;
nas linhas onde tem ***** vc faz
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) + ´0000´
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1) + ´9999´;
Espero ter ajudado, continuo a disposição
GOSTEI 0
Marlon Spiess
02/10/2003
Desculpa, esqueci a última parte
então resposta anterior +
Where DtNascimento Like :VarMes
subbstitui por
Where DtNascimento >= :VarMesini and
DtNascimento <= :VarMesfin
Qualquer duvida estou a disposição
então resposta anterior +
Where DtNascimento Like :VarMes
subbstitui por
Where DtNascimento >= :VarMesini and
DtNascimento <= :VarMesfin
Qualquer duvida estou a disposição
GOSTEI 0
Janete
02/10/2003
[quote:2eb895df25=´Marlon Henrique Spiess´]Oi usando parte do seu texto original, vou tentar explicar
QryAniver.Close;
if (ListBox1.ItemIndex+1)<10 then
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) *****
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1); *****
QryAniver.Prepare;
QryAniver.Open;
QuickRep3.Preview;
nas linhas onde tem ***** vc faz
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) + ´0000´
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1) + ´9999´;
Espero ter ajudado, continuo a disposição[/quote:2eb895df25]
Bom como foi alterado isso:
Where DtNascimento >= :VarMesini and
DtNascimento <= :VarMesfin
tb tem q alterar
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) + ´0000´
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1) + ´9999´;
pois agora ficou VarmesIni e VarmesFin então como eu procedo
outra coisa essa alteração dentro da query não deu certo
da o seguinte erro:
Field VarMesIni is of as unknown type
e provavelmente vai dar na outra varmesfim
QryAniver.Close;
if (ListBox1.ItemIndex+1)<10 then
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) *****
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1); *****
QryAniver.Prepare;
QryAniver.Open;
QuickRep3.Preview;
nas linhas onde tem ***** vc faz
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) + ´0000´
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1) + ´9999´;
Espero ter ajudado, continuo a disposição[/quote:2eb895df25]
Bom como foi alterado isso:
Where DtNascimento >= :VarMesini and
DtNascimento <= :VarMesfin
tb tem q alterar
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+´0´+IntToStr(ListBox1.ItemIndex+1) + ´0000´
Else
QryAniver.ParamByName(´VarMes´).AsString:=´¬´+IntToStr(ListBox1.ItemIndex+1) + ´9999´;
pois agora ficou VarmesIni e VarmesFin então como eu procedo
outra coisa essa alteração dentro da query não deu certo
da o seguinte erro:
Field VarMesIni is of as unknown type
e provavelmente vai dar na outra varmesfim
GOSTEI 0
Janete
02/10/2003
Ainda não consegui resolver este problema, alguém tem aluma soloção pra me ajudar!!!
GOSTEI 0