Ola pessoal tenho um sistema feito em vb 6.0 e uso o mysql 4.1.22 como banco de dados, e utilizo mySql Connector 3.51 para fazer a conexão to com um problema na hora de fazer pesquisas por data tipo assim quando eu informo uma data distante por exemplo '01/08/2009' a '31/08/2009' ele traz o resultado da pesquisa certinho agora por exemplo se eu quero uma unica data '26/08/2009' a '26/08/2009' ele não fala que o banco não encontrou resultado algum. Estou fazendo da seguinte maneira.
Dim adores As New DBRecordset
Dim indice As Integer
Dim DataInicial As String
Dim DataFinal As String
If Not FormConsiste(Me) Then Exit Sub
DataInicial = Me.Controls((FormControl.GetIndex("PesDatIni")))
DataFinal = Me.Controls(FormControl.GetIndex("PesDatFim")).Text
DataFinal = (Year(DataFinal) & "-" & Month(DataFinal) & "-" & Day(DataFinal))
DataInicial = (Year(DataInicial) & "-" & Month(DataInicial) & "-" & Day(DataInicial))
Dim Sql As String
Sql = "SELECT * FROM Processos WHERE ProDatIni >= '" & Format(DataInicial, "YYYY-MM-DD HH:MM:SS") & _
"' OR ProDatFim <= '" & Format(DataFinal, "YYYY-MM-DD HH:MM:SS") & "' AND ProSta = 1 Order by ProDatIni"
adores.OpenRecordset DBCnx, Sql, CTForwardOnly, CLServer, LTReadOnly
lstField(LstIdxPro).ListItems.Clear
indice = 1
If adores.EOF Then
MsgAtt "Não foram encontrados processos neste periodo"
Exit Sub
Else
Do While Not adores.EOF
lstField(LstIdxPro).ListItems.Add , , adores.GetFieldValue("ProRec")
lstField(LstIdxPro).ListItems.Item(indice).Tag = adores.GetFieldValue("ProCod")
lstField(LstIdxPro).ListItems.Item(indice).SubItems(1) = adores.GetFieldValue("ProDatIni")
lstField(LstIdxPro).ListItems.Item(indice).SubItems(2) = adores.GetFieldValue("ProDatFim")
lstField(LstIdxPro).ListItems.Item(indice).SubItems(3) = Format(adores.GetFieldValue("ProPesPro"), "00000")
lstField(LstIdxPro).ListItems.Item(indice).SubItems(4) = Format(adores.GetFieldValue("ProPesRea"), "00000")
lstField(LstIdxPro).ListItems.Item(indice).SubItems(5) = adores.GetFieldValue("ProUsr")
adores.MoveNext
indice = indice + 1
Loop
End If
Pergunta
Clauido José
Ola pessoal tenho um sistema feito em vb 6.0 e uso o mysql 4.1.22 como banco de dados, e utilizo mySql Connector 3.51 para fazer a conexão to com um problema na hora de fazer pesquisas por data tipo assim quando eu informo uma data distante por exemplo '01/08/2009' a '31/08/2009' ele traz o resultado da pesquisa certinho agora por exemplo se eu quero uma unica data '26/08/2009' a '26/08/2009' ele não fala que o banco não encontrou resultado algum. Estou fazendo da seguinte maneira.
Dim adores As New DBRecordset Dim indice As Integer Dim DataInicial As String Dim DataFinal As String If Not FormConsiste(Me) Then Exit Sub DataInicial = Me.Controls((FormControl.GetIndex("PesDatIni"))) DataFinal = Me.Controls(FormControl.GetIndex("PesDatFim")).Text DataFinal = (Year(DataFinal) & "-" & Month(DataFinal) & "-" & Day(DataFinal)) DataInicial = (Year(DataInicial) & "-" & Month(DataInicial) & "-" & Day(DataInicial)) Dim Sql As String Sql = "SELECT * FROM Processos WHERE ProDatIni >= '" & Format(DataInicial, "YYYY-MM-DD HH:MM:SS") & _ "' OR ProDatFim <= '" & Format(DataFinal, "YYYY-MM-DD HH:MM:SS") & "' AND ProSta = 1 Order by ProDatIni" adores.OpenRecordset DBCnx, Sql, CTForwardOnly, CLServer, LTReadOnly lstField(LstIdxPro).ListItems.Clear indice = 1 If adores.EOF Then MsgAtt "Não foram encontrados processos neste periodo" Exit Sub Else Do While Not adores.EOF lstField(LstIdxPro).ListItems.Add , , adores.GetFieldValue("ProRec") lstField(LstIdxPro).ListItems.Item(indice).Tag = adores.GetFieldValue("ProCod") lstField(LstIdxPro).ListItems.Item(indice).SubItems(1) = adores.GetFieldValue("ProDatIni") lstField(LstIdxPro).ListItems.Item(indice).SubItems(2) = adores.GetFieldValue("ProDatFim") lstField(LstIdxPro).ListItems.Item(indice).SubItems(3) = Format(adores.GetFieldValue("ProPesPro"), "00000") lstField(LstIdxPro).ListItems.Item(indice).SubItems(4) = Format(adores.GetFieldValue("ProPesRea"), "00000") lstField(LstIdxPro).ListItems.Item(indice).SubItems(5) = adores.GetFieldValue("ProUsr") adores.MoveNext indice = indice + 1 Loop End IfLink para o comentário
Compartilhar em outros sites
16 respostass a esta questão
Posts Recomendados
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.