FILTRAR POR PERIDO DE DATA VB6

TAUREUS 07/12/2011 07:26:48
#390756
Bom pessoal, ainda continuo sem saber onde está o problema, este problema (acredito que seja) na parte de filtrar por período pois o restante está funcionando normalmente. Então estou passando o código que faz a fitragem dos dados. Sobre as opções que vocês me passaram, quando eu tento um causa o erro [ô]Overflow[ô] quando tento outro causa o erro [Ô]Compile error: Wrong number of arguments or invalid ...[Ô].

[th][/th]
Código para filtrar dados:

Dim vData, vData1, vData2 As String
Dim vConsql As ADODB.Connection
Dim vRec As Recordset

[txt-color=#080808]Public Sub Conexão()[/txt-color]
Set vConsql = New ADODB.Connection
Set vRec = New ADODB.Recordset

vConsql.Open [Ô]Provider=SQLOLEDB.1;[Ô] & _
[Ô]Password=123456;[Ô] & _
[Ô]Integrated Security=SSPI;[Ô] & _
[Ô]Persist Security Info=False;[Ô] & _
[Ô]User ID=Ti;[Ô] & _
[Ô]Initial Catalog=DADOS_TST;[Ô] & _
[Ô]Data Source=192.168.1.103[Ô]

[txt-color=#080808]End Sub

Public Sub Mostrardados()[/txt-color]
Conexão

vData = [Ô]SELECT C6_NOTA AS Notas, C6_DATFAT AS Data FROM SC6000 WHERE C6_NOTA>0 ORDER BY C6_NOTA[Ô]
vRec.Open vData, vConsql
Set Me.MSHFlexGrid1.DataSource = vRec

[txt-color=#080808]End Sub
-Aqui é onde acho que está o problema, seria para filtrar por um périodo, assim teria as notas filtrada daquele determinado período
Private Sub cmdData_Click()[/txt-color]
[txt-color=#007100][ô]vData1 = txtData1.Text
[ô]vData2 = txtData2.Text
[ô]vData = [Ô]SELECT C6_NOTA AS Notas, C6_DATFAT AS Data FROM SC6000 WHERE C6_DATFAT BETWEEN (#Data1#) AND (#Data2#) ORDER BY C6_DATFAT[Ô]
[ô]vRec.Close vData[/txt-color]
vData1 = Format(txtData1, [Ô]yyyy/mm/dd[Ô])
vData2 = Format(txtData2, [Ô]yyyy/mm/dd[Ô])

[txt-color=#007100][ô]vData = [Ô]SELECT C6_NOTA AS Notas, C6_DATFAT AS Data FROM TABELA WHERE C6_DATFAT BETWEEN #[Ô] & vData1 & [Ô]# AND # [Ô] & vData2 & [Ô]#[Ô][/txt-color]
vData = [Ô]SELECT C6_NOTA AS Notas, C6_DATFAT AS Data FROM TABELA WHERE C6_DATFAT BETWEEN [ô][Ô] & vData1 & [Ô][ô] And [ô][Ô] & vData2 & [Ô][ô] ORDER BY C6_DATFAT[Ô]
vRec.Open vData, vConsql
vRec.Close vData, vConsql
Set MSHFlexGrid1.DataSource = vRec

[txt-color=#080808]End Sub[/txt-color]
-Filtra por número da nota
[txt-color=#080808]Private Sub cmdFiltrar_Click()[/txt-color]
Dim vCriterio As String
With MSHFlexGrid1
vCriterio = txt1.Text

If vCriterio > [Ô][Ô] Then
vRec.Close
vData = [Ô]SELECT C6_NOTA AS Notas , C6_DATFAT AS Data FROM SC6000 WHERE C6_NOTA = [Ô] & vCriterio & [Ô] ORDER BY C6_NOTA[Ô]
[txt-color=#007100][ô]vSql = [Ô]SELECT C6_NOTA, C6_DATFAT FROM SC6000[Ô] & _
[ô][Ô]WHERE ((() Between #[Ô] & vData1 & [Ô]# And #[Ô] & vData2 & [Ô]#));[Ô][/txt-color]
vRec.Open vData
Set .DataSource = vRec
txt1.SetFocus
End If
End With

cmdFiltrar.Visible = False
cmdRemoveFiltro.Visible = True

[txt-color=#080808]End Sub[/txt-color]
-Remove o filtro
[txt-color=#080808]Private Sub cmdRemoveFiltro_Click()[/txt-color]
With MSHFlexGrid1
vRec.Close
vData = [Ô]SELECT C6_NOTA AS Notas, C6_DATFAT AS Data FROM SC6000 WHERE C6_NOTA>0 ORDER BY C6_NOTA[Ô]
vRec.Open vData
Set .DataSource = vRec
txt1.SetFocus
End With

cmdFiltrar.Visible = True
cmdRemoveFiltro.Visible = False

[txt-color=#080808]End Sub[/txt-color]
-Quando apertar enter é bufferizado na tecla tab
[txt-color=#080808]Private Sub Form_KeyPress(KeyAscii As Integer)[/txt-color]
If KeyAscii = vbKeyReturn Then
SendKeys [Ô]{tab}[Ô]
KeyAscii = 0
End If

[txt-color=#080808]End Sub[/txt-color]
-Mostra os campos no Grid
[txt-color=#080808]Private Sub Form_Load()[/txt-color]
Mostrardados

[txt-color=#080808]End Sub[/txt-color]

Página 2 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas