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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  RecordCount com datas, tá difícil!!!
justicar
RIO DE JANEIRO
RJ - BRASIL
Postada em 24/05/2008 01:16 hs            
Olá amigos,

    Sou novo no VB, to tentando me iniciar pelo Editor do Access que sei é bem mais simplório.
    Há dias venho tentando contar registros aplicando RecordCount numa tabela usando como critério uma instrução SQL inserida no OpenRecordSet, o problema é que eu preciso de uma inputbox e a instrução precisa filtrar data, mas não consigo de geito maneira.

segue o código.

Private Sub osmes_Click()

'Declarando variáveis
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim numreg As Integer

'Declarando os critérios
Dim data1, data2, Titulo, Padrao

'Setando aplicação
Set db = CurrentDb()

'Exposição de critérios
Titulo = "Filtrando por Datas"
Padrao = "Insira data aqui, entre /.  Exemplo xx/xx/xx"
data1 = InputBox("Informe data inicial", Titulo, Padrao, 100, 100)
data2 = InputBox("Informe data final", Titulo, Padrao, 100, 100)

'Setando filtro SQL
Set rs = db.OpenRecordset("SELECT * FROM [ordem]" _
                        & "WHERE [data_os]" _
                        & "BETWEEN '" & data1 & "' AND '" & data2 & "';")
                        
rs.MoveMax
numreg = rs.RecordCount

MsgBox "Total de Ordens de Serviço emitidas no período: " & numreg
    
End Sub


Alguém dá uma luz!
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 24/05/2008 13:58 hs            
O problema está na forma da inserção da data, quando o usuário inserir a data no formato "dd/mm/yyyy", voce precisa trnasforma-la no formato "yyyy/mm/dd" ou "mm/dd/yyyy", faça isto vai na bucha.
Agora veja a data deve ser neste formato e como STRING.
 
vliu//
     
justicar
não registrado
ENUNCIADA !
Postada em 24/05/2008 20:02 hs   
fala amigo,

obrigado pela força. veja, fiz o seguinte, mas continua dando erro:

Private Sub osmes_Click()

'Declarando variáveis
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim numreg As Integer

'Declarando os critérios
Dim data1, data2 As String
Dim Titulo, Padrao

'Setando aplicação
Set db = CurrentDb()

'Exposição de critérios
Titulo = "Filtrando por Datas"
Padrao = "Insira data aqui, entre /.  Exemplo xx/xx/xx"
data1 = InputBox("Informe data inicial", Titulo, Padrao, 3000, 3000)
data2 = InputBox("Informe data final", Titulo, Padrao, 3000, 3000)

'Setando filtro SQL
Set rs = db.OpenRecordset("SELECT * FROM [ordem]" _
                        & " WHERE [data_os]" _
                        & " BETWEEN '" & Format(data1, "mm/dd/yyyy") & "' AND '" & Format(data2, "mm/dd/yyyy") & "';")
rs.MoveMin
rs.MoveMax
numreg = rs.RecordCount

MsgBox "Total de Ordens de Serviço emitidas no período: " & numreg
    
End Sub

uma dúvida: será que eu não preciso usar #data# ( cerquilhas entre as datas ), outra, to declarando a data como string mas continua dando erro.
será que vc tem alguma luz? derrepente não teria o mesmo efeito eu usar o where e depois colocar o >= AND <=... ?

obrigadão.
   
justicar
não registrado
ENUNCIADA !
Postada em 24/05/2008 20:07 hs   
fala amigo, de novo eu.... rrsrsrs

tirei
rs.MoveMin
rs.MoveMax

e parou de dar erro, mas agora dá sempre zero o valor.
   
José Ari
MANAUS
AM - BRASIL
ENUNCIADA !
Postada em 25/05/2008 12:01 hs            
cara, o DAO as vezes dá esse problema, tenta usar ADO:


Dim DB As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim SQL As String

DB.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & CaminhoBancoDeDados & ";DefaultDir=" & App.Path & ";Uid=;Pwd=;"

SQL = "SELECT * FROM ...."
RS.Open sSQL, DB, adOpenKeyset, adLockReadOnly

espero ter ajudado...

================================================================
O Aprendizado é Direito de Todos. O Saber é Privilégio de Poucos.

Começando a estudar VB.NET. Realmente é incrível!!!!

   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 25/05/2008 15:46 hs            
Tenta assim colega
 
usando DAO mesmo
 
Private Sub osmes_Click()

'Declarando variáveis
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim numreg As Integer

'Declarando os critérios
Dim data1, data2 As String
Dim Titulo, Padrao

'Setando aplicação
Set db = CurrentDb()

'Exposição de critérios
Titulo = "Filtrando por Datas"
Padrao = "Insira data aqui, entre /.  Exemplo xx/xx/xx"
data1 = InputBox("Informe data inicial", Titulo, Padrao, 3000, 3000)
data2 = InputBox("Informe data final", Titulo, Padrao, 3000, 3000)

'Setando filtro SQL
Set rs = db.OpenRecordset("SELECT count(*) AS TOTAL  FROM ordem" _
                        & " WHERE data_os" _
                        & " BETWEEN #" & Format(data1, "mm/dd/yyyy") & "# AND #" & Format(data2, "mm/dd/yyyy") & "#;")

MsgBox "Total de Ordens de Serviço emitidas no período: " & rs("TOTAL")
    
End Sub

   
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