Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Einstein

Consulta SQL VBA

Recommended Posts

Ola pessoal tudo bem?

 

Estou com um problema, estou fazendo um estatistica por intervalo de data pelo VBA, mas ele nao esta dando as informacoes corretas Ex:

 

tabela manutencao

setor_codigo

setor_desc

 

tabela manutencao

manu_codigo

manu_setor

manu_data

 

Fazendo a contagem de registro com criterio de periodo de data (data1 = 01/07/2010) e (data2 = 01/07/2010)

Teria que me mostrar as informaçoes abaixo

 

setor: Total

engenharia 02

manutencao 03

 

Ao contrario disso, ele nao me mostra nada.

 

Porem se eu coloco (data1 = 01/07/2010) e (data2 = 31/07/2010)

ele me mostra o total de tudo, o qual nessa situacao, está correto

 

setor: Total

engenharia 07

manutencao 08

 

 

Abaixo segue meu codigo, onde estou errando para ele fazer o calculo correto?

 

Private Sub cmdcalcular_Click()

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim sql As String

Dim mensagem As String

Dim data1 As String

Dim data2 As String

 

 

data1 = "#" & txtdata1 & "#"

data2 = "#" & txtdata2 & "#"

 

Set db = CurrentDb()

sql = "SELECT tb_setor.setor_desc, Count(tb_manutencao.manu_cod)AS total "

sql = sql & "FROM tb_setor INNER JOIN (tb_manutencao) ON (tb_setor.setor_codigo) = (tb_manutencao.manu_setor)"

sql = sql & "WHERE (((tb_manutencao.manu_data) between " & (data1) & " And " & (data2) & " )) "

sql = sql & "GROUP BY (tb_setor.setor_desc)"

 

Set rs = db.OpenRecordset(sql)

rs.MoveFirst

mensagem = "HG - TOTAL DE SOLICITACAO POR SETOR" & Chr(13) & Chr(10)

mensagem = mensagem & "****************************************************" & Chr(13) & Chr(10)

 

Do While Not rs.EOF

mensagem = mensagem & rs.Fields("setor_desc") & " = "

mensagem = mensagem & FormatNumber(rs.Fields("total")) & Chr(13) & Chr(10)

rs.MoveNext

Loop

 

Me![txt_estat_setor].Value = mensagem

Me![txt_estat_setor].ScrollBars = 2

Me![txt_estat_setor].SetFocus

 

Grato

Edson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na primeira situação, você deve conferir se o período de datas é inclusivo, o que quero dizer é que se você quer pegar o dia 3,4,5,6 você deve colocar entre 2 e 7...

 

O que quero dizer é que ele pega, maior que e menor que, e não maior ou igual a e menor ou igual a....

 

 

Testa fazendo o seguinte na primeira situação, entre 30/06/2010 e 02/07/2010...

 

E vê se você acha o resultado desejado.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na primeira situação, você deve conferir se o período de datas é inclusivo, o que quero dizer é que se você quer pegar o dia 3,4,5,6 você deve colocar entre 2 e 7...

 

O que quero dizer é que ele pega, maior que e menor que, e não maior ou igual a e menor ou igual a....

 

 

Testa fazendo o seguinte na primeira situação, entre 30/06/2010 e 02/07/2010...

 

E vê se você acha o resultado desejado.....

 

Daniel,

 

 

Acho que voce nao entendeu minha pergunta.

Nao quero colocar a data, pois isso ja fiz e deu certo, minha duvida é como pegar a variavel data1 e data2 e na funcao select ele ler que data1 é uma data e na data2 é outra data e nisso mostrar o resultado entre os periodos.

O que voce disse. Between e and significa entre datas (inicial e final), entretanto na funcao select, nao consegue entender que data1 e data2 são variaveis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.