USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  SQL não tá fazendo o que eu gostaria
Perk
não registrado
ENUNCIADA !
Postada em 18/01/2005 13:52 hs   
Numa reserva de Hotel, o cliente pode pagar a reserva em uma parcela ou em duas. Eu preciso verificar todo dia ao abrir o programa se algum depósito venceu e não foi feito. Então no programa eu tenho um campo para o 1º depósito e um Chk que é ticado qdo o depósito é confirmado, e a mesma coisa para o 2º depósito. Sendo que o 1º depósito sempre vai existir e o 2º podendo ficar em branco qdo não existe, e neste caso o programa já faz o tique no Chk correspondente ao segundo depósito.
 
a SQL que faz esta procura é esta:
 
Dataf = Format(Left(Date, 10), "mm/dd/yyyy")
SQL = "select * from Reservas where "
SQL = SQL & "Dt_Prim_Dep <= " & "#" & Dataf & "#" & " and Chk_Prim_Dep like '" + "n" + "' "
SQL = SQL & "or Dt_Seg_Dep <= " & "#" & Dataf & "#" & " and Chk_Seg_Dep like '" + "n" + "'"
Set Dst = db.CreateDynaset(SQL)
 
O que acontece é que ela está me trazendo os 1º depósitos não confirmados mesmo que eles não sejam maior ou igual a data de hoje, o que é maioria !!!
   
Perk
não registrado
ENUNCIADA !
Postada em 18/01/2005 14:24 hs   
ops, errei na descrição do erro. o correto é:
 
"O que acontece é que ela está me trazendo os 1º depósitos não confirmados mesmo que eles SEJAM maior ou igual a data de hoje, o que é maioria !!!"
 
   
DM MASTER
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 18/01/2005 14:39 hs            
Se eu entendi direito vc quer q a sua query traga as reservas q não foram pagas tanto da primeira ou da segunda parcela....
Tenta o select abaixo, eu desmembrei as datas em day, month e year pois pelo jeito vc esta trabalhando com o access. Eu tive muitos problemas para trabalhar com data no access por isso fiz dessa forma....
A unica coisa que esta de diferente da sua consulta é o desmembramento da data e o or q verifica se o 1º pagamento esta efetuado....
 
select * from reservas where day(Dt_prim_Dep)<=day(dataf) and month(Dt_prim_Dep)<=month(dataf) and year(Dt_prim_Dep)<=year(dataf) and ( chk_prim_Dep = 'n' or chk_prim_dep = 'N' ) or (chk_prim_dep='s' or chk_prim_dep='S') and  day(Dt_Seg_Dep)<=day(dataf) and month(Dt_Seg_Dep)<=month(dataf) and year(Dt_Seg_Dep)<=year(dataf) and (Chk_Seg_Dep ='N' or Chk_Seg_Dep ='N')
 
 
Espero que eu tenha entendido certo e podido ajudar

DM MASTER":.
   
Perk
não registrado
ENUNCIADA !
Postada em 18/01/2005 14:57 hs   
Vlw pela ajuda DM MASTER, mas esta SQL dá me dando o erro 3061
   
DM MASTER
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 18/01/2005 15:05 hs            
Então faz a consulta do jeito q vc estava fazendo e só acrescenta no OR a coisa
chk_prim_dep like '% s %'
Dataf = Format(Left(Date, 10), "mm/dd/yyyy")
SQL = "select * from Reservas where "
SQL = SQL & "Dt_Prim_Dep <= " & "#" & Dataf & "#" & " and Chk_Prim_Dep like '" + "n" + "' "
SQL = SQL & "or Chk_Prim_Dep like '" + "s" + "'  and Dt_Seg_Dep <= " & "#" & Dataf & "#" & " and Chk_Seg_Dep like '" + "n" + "'"
Set Dst = db.CreateDynaset(SQL)
 
tenta assim.... pois pelo que entendi só esta faltando isso

DM MASTER":.
   
Perk
não registrado
ENUNCIADA !
Postada em 18/01/2005 15:38 hs   
Descobri, sem querer, uma maneira de funcionar. Coloquei CvDate(Dt_Prim_Dep). O engraçado é que no BD os dois campos são identicos, mudando apenas o nome, mas se eu coloco tb CvDate(Dt_Seg_Dep), dá o erro 3464.
 
Bom, o que importa é que está funcionando agora. Vou fazer mais testes para verificar se está certo mesmo Emoções
 
Obrigado pela ajuda !!!!
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2022   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página