Ir para conteúdo
Fórum Script Brasil
  • 0

VB6 + MYSQL - Relatório por intervalo de datas


Guest --Marco Antonio --

Pergunta

Guest --Marco Antonio --

Olá a todos.

Tenho um programa de cadastros que gera relatórios por intervalos entre. Os registros estão em um banco mysql.

Acontece que quando eu peço para listar registros dentro do mesmo mês, ele funciona normalmente. Mas quando eu peço para listar registros que começam em um mês e terminam em outro, ele não lista nada! Exemplo:

Data iniical = 20/08/2008 e Data final = 28/08/2008 -------> Funciona

Data Inicial = 20/08/2008 e Data final = 02/09/2008 -------> Não funciona

Já mudei o data type do campo das datas para integer, varchar(10), date, mas nada muda. Segue o código que eu uso no evento Iniciar do Data Report:

Private Sub DataReport_Initialize()

If myCon.State = adStateOpen Then myCon.Close

myCon.CursorLocation = adUseClient

'estou usando a conexão que já foi criada no dataenvironment

myCon.ConnectionString = DataEnvironment1.Connection1

'abre a conexão com o banco de dados

myCon.Open "DSN=odonto"

'pega as datas de inicio e de fim

With formdata

strInicio = .dataini.Value

strAte = .datafin.Value

End With

DataReport2.Title = "Período de: " & strInicio & " até: " & strAte

'define o comando SHAPE

sql = "SHAPE { "

sql = sql & "SELECT DISTINCT u.* "

sql = sql & "FROM unidade u INNER JOIN registro r ON u.codigo = r.cod "

sql = sql & "WHERE r.data1 "

sql = sql & "BETWEEN '" & strInicio & "' "

sql = sql & "AND '" & strAte & "' "

sql = sql & "ORDER BY u.codigo "

sql = sql & "} AS Command1 "

sql = sql & "APPEND ({ "

sql = sql & "SELECT registro.* "

sql = sql & "FROM registro "

sql = sql & "WHERE data1 "

sql = sql & " BETWEEN '" & strInicio & "' "

sql = sql & "AND '" & strAte & "' "

sql = sql & "ORDER BY data1 "

sql = sql & "} AS Command2 "

sql = sql & "RELATE 'codigo' TO 'cod') "

sql = sql & "AS Command2 "

myRS.Open sql, myCon, adOpenForwardOnly

'atribui o recordset gerado ao datareport

Set DataReport2.DataSource = myRS

End Sub

Agradeço a atenção desde já!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Guest --Marco Antonio --

Amigos, bom dia!

Consegui resolver a questão!

no campo data da tabela eu coloquei o tipo de dado como DATE.

Depois eu formatei a a strInicio e a strAte como:

Format(strInicio, "yyyy-mm-dd")

Format(strAte, "yyyy-mm-dd")

Com isso, eu consigo listar dados pertencentes a dois meses diferentes.

Obrigado a todos pela atenção!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...