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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  RELATÓRIO ENTRE DATAS - URGENTE
Nilton Vianna
AMPARO
SP - BRASIL
Postada em 03/11/2009 11:45 hs         
 Bem galegas e seguinte o que estou tentando fazer é seguinte

tem um cadastro de entrada no caixa e tenho o campo Emissão e Vencimento

ambos tipo TEXTO 10/10/2009.


o estou tentando fazer é um relatório e pesquisar

 tipo de 01/09/2009  ATÉ 15/09/2009

e lista somente este período.

Estou usando o bando de dados Acccess e o campo dada vencimento e tipo texto.

Grato

     
Roßerto
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 03/11/2009 12:19 hs            
use o BETWEEN na usa instrucao SQL

e o campo texto como data ... nao teria como vc muda o tipo do campo para DATA ?

se nao tiver vc pode usar assim

SELECT * FROM TABELA WHERE CDATE(DATA ) BETWEEN #09/01/2009# AND #09/15/2009#

lembre que o formato do campo data tem que ser MM/DD/YYYY


   
Nilton Vianna
AMPARO
SP - BRASIL
ENUNCIADA !
Postada em 03/11/2009 18:56 hs         
Private Sub MontarLista()
Dim RS As New ADODB.Recordset
Dim SQL As String
Dim Criterio As String
FG1.TextMatrix(0, 0) = "CaixaID"
FG1.TextMatrix(0, 1) = "Vencimento"
FG1.TextMatrix(0, 2) = "Descrição do Lançamentos"
FG1.TextMatrix(0, 3) = "Crédito R$:"
 
Criterio = Chr$(39) & txtInicial & "%" & Chr(39)  <---------------(Aqui ta minha Duvida)
SQL = "SELECT CaixaID, Vence, Descricao, Credito FROM CadCaixasE WHERE CadCaixasE.Emissao Like " & Criterio & " ORDER BY Emissao"
On Error Resume Next
With RS
.Open SQL, CnSql, adOpenForwardOnly, adLockReadOnly
If .EOF Then
   
MsgBox "Registro não encontrado", vbExclamation, "  Sisnews Informções"
Limpa
FG1.TextMatrix(1, 0) = ""
FG1.TextMatrix(1, 1) = ""
FG1.TextMatrix(1, 2) = ""
FG1.TextMatrix(1, 3) = ""
 
Else
Limpa
Do Until .EOF
FG1.AddItem RS(0) & vbTab & RS(1) & vbTab & RS(2) & vbTab & RS(3)
.MoveNext
Loop
FG1.RemoveItem 1
End If
.Close
End With
End Sub
   
Alexandre.cg
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 04/11/2009 08:49 hs            
nilton, como disse o roberto,só fazer o between
 
Private Sub MontarLista()
Dim RS As New ADODB.Recordset
Dim SQL As String
Dim Criterio As String
FG1.TextMatrix(0, 0) = "CaixaID"
FG1.TextMatrix(0, 1) = "Vencimento"
FG1.TextMatrix(0, 2) = "Descrição do Lançamentos"
FG1.TextMatrix(0, 3) = "Crédito R$:"
 
Criterio = Chr$(39) & txtInicial & "%" & Chr(39)  <---------------(Aqui ta minha Duvida)
SQL = "SELECT CaixaID, Vence, Descricao, Credito FROM CadCaixasE WHERE CadCaixasE.Emissao between " & data1  & " and " & data2 & " ORDER BY Emissao"
On Error Resume Next
With RS
.Open SQL, CnSql, adOpenForwardOnly, adLockReadOnly
If .EOF Then
   
MsgBox "Registro não encontrado", vbExclamation, "  Sisnews Informções"
Limpa
FG1.TextMatrix(1, 0) = ""
FG1.TextMatrix(1, 1) = ""
FG1.TextMatrix(1, 2) = ""
FG1.TextMatrix(1, 3) = ""
 
Else
Limpa
Do Until .EOF
FG1.AddItem RS(0) & vbTab & RS(1) & vbTab & RS(2) & vbTab & RS(3)
.MoveNext
Loop
FG1.RemoveItem 1
End If
.Close
End With
End Sub
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 04/11/2009 11:23 hs            
bom primeiramente o tipo de campo deve ser mudado de texto para Data/Hora para que esta consulta funcione.
 
se você usar um campo texto para consulta entre, datas poderá ocorrer o seguinte
 
supondo que existam as seguintes datas:
 
03/02/2009
04/02/2009
25/02/2009
01/03/2009
 
e vc deseja fazer a consulta entre 01/02/2009 e 01/03/2009
ele só retornará a ultima data 01/03/2009
 
porque isto?
 
em modo textoa leitura é feita mais ou menos desta forma, a barra é ignorada ficando as datas com o seguinte formato
 
03022009
04022009
25022009
01032009
 
repare como ficaram os numeros, se estes fossem colocados em ordem ficariam assim
 
01032009 'viu pra onde veio 01/03/2009 pois como texto ele e menor que os demais
03022009
04022009
25022009
 
viu que confusão, então mude o tipo de campo para data e hora para consulta funcionar
 
e ainda assim existe uma consideração o access por padrão trata as datas no seguinte formato mm/dd/yyyy
 
então a sua query deve ficar assim:
 
SQL = "SELECT CaixaID, Vence, Descricao, Credito FROM CadCaixasE WHERE Emissao BETWEEN #" & Format(txtDataIni.Text,"mm/dd/yyyy") & "# AND #" & Format(txtDataFim.Text,"mm/dd/yyyy") & "# ORDER BY Emissao"
 
veja as seguintes regras que deve seguir.
 
para campos tipo texto você coloca a consulta entre aspas simples:
ex: ...WHERE nome = 'marcelo'
 
para campos do tipo numerico não se usa acentuação
ex: ...WHERE codigo = 1234
 
e para campos do tipo data e hora usa-se o Number '#'
ex: ...WHERE data = #02/30/2009#
 
e tudo sairá correto, lembre-se apenas de alterar o campo texto para data/hora.
 
até
 
TÓPICO EDITADO
 
Página(s): 1/1    


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