FILTRAR POR PERIDO DE DATA VB6
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]
Código para filtrar dados: | [/th]
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] |
Tópico encerrado , respostas não são mais permitidas