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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Intervalo de datas
Perci
MATÃO
SP - BRASIL
Postada em 26/11/2007 16:04 hs            
Olá, pessoal, estou com uma dúvida cruel.
 
Quero realizar uma pesquisa de notas fiscais por período, portanto digito uma data inicial e uma final e o VB me mostra o resultado entre as datas.
Acontece que no Access estes dados estão gravados como texto e não data.
Como consigo fazer isso? Uso o Between? Creio já ter visto alguma coisa desse tipo mas não me recordo mais. Se alguém puder me ajudar, agradeço.
     
PASCOAL-PG
PRAIA GRANDE
SP - BRASIL
Postada em 26/11/2007 16:16 hs            
PERCI,
 
Tente isso : [EMISSAO] Between #" & Format(DataIni.Text, "mm/dd/yyyy") & "#  And #" & Format(DataFim.Text, "mm-dd-yyyy") & "#)"
 
EMISSÃO = AO CAMPO DA DATA DE EMISSÃO DA NOTA
 
QQ COISA ME AVISE.
 
 
Que DEUS nos ajude....
     
Perci
MATÃO
SP - BRASIL
Postada em 26/11/2007 16:38 hs            
Tentei assim:
 
sqlnotas = "Select * From Notas Where emissao Between #" & Format(TxtInicio.Text, "mm/dd/yyyy") & "#  And #" & Format(TxtFinal.Text, "mm/dd/yyyy") & "#"
 
mas não deu certo.
Se eu pesquisar a data inicial 30/12/2007 e final 08/01/2008, aparece na lista, registros com emissao 15/12/2007 , 17/12/2007, 15/01/2008. Por que será?
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 26/11/2007 20:28 hs            
Perci, não sei se pode ser seu caso, mas em muitas de minhas rotinas, esta forma funciona bem melhor com variavel tipo String, no formato de data "yyyy/mm/dd", tente assim
Dim sINICIO As String
Dim sFINAL As String
 
sINICIO = "#" & Format$(TxtInicio.text, "yyyy/mm/dd") & "#"
sFINAL = "#" & fORMAT$(tXTfINAL, "yyyy/mm/dd") & "#"
sqlnotas = "Select * From Notas Where emissao Between " & sINICIO & " And " & sFINAL
 
Funcionará bem, testei.
 
vlu//
     
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 27/11/2007 08:45 hs            
LCRamos, assim eu também não consegui.
Aqui está a rotina do projeto que realiza esse procedimento. Se puder, analise e me indique onde estou errando, por favor. A ação é quando eu teclo ENTER no Txtfinal, OK?
Ou talvez seja melhor alterar no BD o campo emissao para DATA ao invés de TEXTO?
 
 
 
Private Sub TxtFinal_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        KeyAscii = 0
       
        Dim sINICIO As String
        Dim sFINAL As String
 
        sINICIO = "#" & Format$(TxtInicio.Text, "yyyy/mm/dd") & "#"
        sFINAL = "#" & Format$(TxtFinal, "yyyy/mm/dd") & "#"
        sqlnotas = "Select * From Notas Where emissao Between " & sINICIO & " And " & sFINAL
        Set rsnotas = db.OpenRecordset(sqlnotas)
        While Not rsnotas.EOF
            Set linha = ListConsulta.ListItems.Add(, , Format(rsnotas("numero"), "000000"))
            linha.SubItems(1) = "" & rsnotas("codcli")
            linha.SubItems(2) = "" & rsnotas("emissao")
            linha.SubItems(3) = "" & Format$(Format$(rsnotas("valor"), "###,##0.00"), "@@@@@@@@@@")
            rsnotas.MoveNext
        Wend
    End If
End Sub
 
 
Obrigado pela ajuda
   
Perci
MATÃO
SP - BRASIL
ENUNCIADA !
Postada em 27/11/2007 09:34 hs            
Ok, amigos, eu achei a solução mais viável alterar no BD o formato do campo para data, assim eu consegui o que eu queria e é menos complicado.
Valeu.
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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