AJUDAR COM CONDICAO DE BANCO MYSQL
Citação:Private Sub subBuscar()
Dim sSQL As String
Dim rs As New ADODB.Recordset
Dim l As Long
Dim i As Long
lista.ListItems.Clear
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] r.codigo, [Ô]
sSQL = sSQL & [Ô] r.valor, [Ô]
sSQL = sSQL & [Ô] r.local, [Ô]
sSQL = sSQL & [Ô] r.dia, r.mes, r.ano, [Ô]
sSQL = sSQL & [Ô] d.descricao, [Ô]
sSQL = sSQL & [Ô] r.obs [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] registros r [Ô]
sSQL = sSQL & [Ô] INNER JOIN [Ô]
sSQL = sSQL & [Ô] descricao d [Ô]
sSQL = sSQL & [Ô] ON(d.codigo=r.tipo) [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
If opt(0).Value = True Then
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 1 & [Ô][ô] [Ô]
Else
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 2 & [Ô][ô] [Ô]
End If
If rs.State = 1 Then rs.Clone
rs.Open sSQL, Conn, adOpenDynamic
Do While rs.EOF = False
l = l + 1
lista.ListItems.Add l, , rs(0)
lista.ListItems(l).SubItems(1) = Format(rs(1), [Ô]#,##0.00[Ô])
lista.ListItems(l).SubItems(2) = rs(2)
lista.ListItems(l).SubItems(3) = rs(3)
lista.ListItems(l).SubItems(4) = rs(4)
lista.ListItems(l).SubItems(5) = rs(5)
lista.ListItems(l).SubItems(6) = rs(6)
lista.ListItems(l).SubItems(7) = rs(7)
rs.MoveNext
i = i + 1
Loop
txt(3).Text = i
Call subSomar
End Sub
Como podem ver eu tenho uma condição ali seperando por tipos, ( tipo 1 = dinheiro e tipo 2 = cartão ), agora eu quero serpara da seguinte forma, data X até data Y, será que alguém poderia me dar uma mão no código?
ex: tenho cinco registros, dias 1,2,3,4,5 quero que busque do dia 2 até o dia 4.
PS: Lembrando que tenho três campos de data dia, mês e ano!
de preferencia antes do seu If opt(0).Value = True Then
Voc6e pdoeria postar um exemplo de como este dados devem ser filtrados e como eles estão carregados na base?
SELECT r.codigo, r.valor, r.local, r.dia, r.mes, r.ano, d.descricao, r.obs
FROM registros r
INNER JOIN descricao d
ON(d.codigo=r.tipo)
BETWEEN r.dia=[ô]02[ô], r.mes=[ô]01[ô]
AND r.dia=[ô]04[ô], r.mes=[ô]01[ô]
WHERE r.tipo=[ô]1[ô]
Com o código:
Citação:Private Sub subBuscar()
Dim sSQL As String
Dim rs As New ADODB.Recordset
Dim l As Long
Dim i As Long
lista.ListItems.Clear
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] r.codigo, [Ô]
sSQL = sSQL & [Ô] r.valor, [Ô]
sSQL = sSQL & [Ô] r.local, [Ô]
sSQL = sSQL & [Ô] r.dia, r.mes, r.ano, [Ô]
sSQL = sSQL & [Ô] d.descricao, [Ô]
sSQL = sSQL & [Ô] r.obs [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] registros r [Ô]
sSQL = sSQL & [Ô] INNER JOIN [Ô]
sSQL = sSQL & [Ô] descricao d [Ô]
sSQL = sSQL & [Ô] ON(d.codigo=r.tipo) [Ô]
sSQL = sSQL & [Ô] BETWEEN [Ô]
sSQL = sSQL & [Ô] r.dia=[ô][Ô] & txt(0).Text & [Ô][ô], [Ô]
sSQL = sSQL & [Ô] r.mes=[ô][Ô] & txt(1).Text & [Ô][ô] [Ô]
sSQL = sSQL & [Ô] AND [Ô]
sSQL = sSQL & [Ô] r.dia=[ô][Ô] & txt(7).Text & [Ô][ô], [Ô]
sSQL = sSQL & [Ô] r.mes=[ô][Ô] & txt(6).Text & [Ô][ô] [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
If opt(0).Value = True Then
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 1 & [Ô][ô] [Ô]
Else
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 2 & [Ô][ô] [Ô]
End If
If rs.State = 1 Then rs.Clone
rs.Open sSQL, Conn, adOpenDynamic
Do While rs.EOF = False
l = l + 1
lista.ListItems.Add l, , rs(0)
lista.ListItems(l).SubItems(1) = Format(rs(1), [Ô]#,##0.00[Ô])
lista.ListItems(l).SubItems(2) = rs(2)
lista.ListItems(l).SubItems(3) = rs(3)
lista.ListItems(l).SubItems(4) = rs(4)
lista.ListItems(l).SubItems(5) = rs(5)
lista.ListItems(l).SubItems(6) = rs(6)
lista.ListItems(l).SubItems(7) = rs(7)
rs.MoveNext
i = i + 1
Loop
txt(3).Text = i
Call subSomar
End Sub
o Resultado é ERRO
sSQL = sSQL & [Ô] WHERE DataComparacao between [ô][Ô] & Format$(dt_Inicial, [Ô]yyyy/MM/dd[Ô]) & [Ô][ô] AND [ô][Ô] & Format$(dt_Final, [Ô]yyyy/MM/dd[Ô]) & [Ô][ô]
se nao der avisa
Citação:sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] r.codigo, [Ô]
sSQL = sSQL & [Ô] r.valor, [Ô]
sSQL = sSQL & [Ô] r.local, [Ô]
sSQL = sSQL & [Ô] r.dia, r.mes, r.ano, [Ô]
sSQL = sSQL & [Ô] d.descricao, [Ô]
sSQL = sSQL & [Ô] r.obs [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] registros r [Ô]
sSQL = sSQL & [Ô] INNER JOIN [Ô]
sSQL = sSQL & [Ô] descricao d [Ô]
sSQL = sSQL & [Ô] ON(d.codigo=r.tipo) [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
If opt(0).Value = True Then
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 1 & [Ô][ô] AND [Ô]
Else
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 2 & [Ô][ô] AND [Ô]
End If
sSQL = sSQL & [Ô] dia [Ô]
sSQL = sSQL & [Ô] BETWEEN[Ô]
sSQL = sSQL & [Ô] [ô][Ô] & txt(0).Text & [Ô][ô] AND [Ô]
sSQL = sSQL & [Ô] [ô][Ô] & txt(7).Text & [Ô][ô] [Ô]
Esse código deu certo...
@DavidNunes
Vou tentar usar esse tipo de código seu, porque em vez de separar a data em três campos dia, mês e ano acho que só um campo [Ô]data[Ô] facilitara mais para o usuário.. jájá posto o fonte se der certo xD
Citação:Private Sub subBuscar()
Dim sSQL As String
Dim rs As New ADODB.Recordset
Dim l As Long
Dim i As Long
lista.ListItems.Clear
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] r.codigo, [Ô]
sSQL = sSQL & [Ô] r.valor, [Ô]
sSQL = sSQL & [Ô] r.local, [Ô]
sSQL = sSQL & [Ô] r.data, [Ô]
sSQL = sSQL & [Ô] d.descricao, [Ô]
sSQL = sSQL & [Ô] r.obs [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] registros r [Ô]
sSQL = sSQL & [Ô] INNER JOIN [Ô]
sSQL = sSQL & [Ô] descricao d [Ô]
sSQL = sSQL & [Ô] ON(d.codigo=r.tipo) [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
If opt(0).Value = True Then
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 1 & [Ô][ô] AND [Ô]
Else
sSQL = sSQL & [Ô] r.tipo=[ô][Ô] & 2 & [Ô][ô] AND [Ô]
End If
sSQL = sSQL & [Ô] data [Ô]
sSQL = sSQL & [Ô] BETWEEN[Ô]
sSQL = sSQL & [Ô] [ô][Ô] & Format(txt(0).Text, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] AND [Ô]
sSQL = sSQL & [Ô] [ô][Ô] & Format(txt(1).Text, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] [Ô]
If rs.State = 1 Then rs.Clone
rs.Open sSQL, Conn, adOpenDynamic
Do While rs.EOF = False
l = l + 1
lista.ListItems.Add l, , rs(0)
lista.ListItems(l).SubItems(1) = Format(rs(1), [Ô]#,##0.00[Ô])
lista.ListItems(l).SubItems(2) = Format(rs(2), [Ô]DD-MM-YYYY[Ô])
lista.ListItems(l).SubItems(3) = rs(3)
lista.ListItems(l).SubItems(4) = rs(4)
lista.ListItems(l).SubItems(5) = rs(5)
rs.MoveNext
i = i + 1
Loop
txt(3).Text = i
Call subSomar
End Sub
Aqui vai um print de como fica a tela com os filtros, grid e dois txts...
tópico fechado, obrigado a todos!