Fórum Query... #185747

02/10/2003

0

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?


Janete

Janete

Responder

Posts

02/10/2003

Marlon 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


Responder

Gostei + 0

02/10/2003

Janete

[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?


Responder

Gostei + 0

02/10/2003

Marlon 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


Responder

Gostei + 0

02/10/2003

Janete

[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...


Responder

Gostei + 0

02/10/2003

Janete

[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...


Responder

Gostei + 0

02/10/2003

Marlon 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


Responder

Gostei + 0

02/10/2003

Janete

[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!!!


Responder

Gostei + 0

02/10/2003

Marlon 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


Responder

Gostei + 0

02/10/2003

Marlon Spiess

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


Responder

Gostei + 0

02/10/2003

Janete

[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


Responder

Gostei + 0

03/10/2003

Janete

Ainda não consegui resolver este problema, alguém tem aluma soloção pra me ajudar!!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar