FILTRO PERIODO NA PLANILHA

GEROEANE 30/10/2012 20:31:30
#413207
ola pessoal, problemas não estou conseguindo montar a sql para filtrar um periodo:

No acess uso uma sql, mas no excel para filtrar as datas estou apanhando, sera que alguem pode ajudar:

tentei o codigo abaixo:
sql = [Ô]SELECT Descricao,Codigo_Ferramenta,Materia_Prima, Data FROM [CadastroFerramentas$]where (([Data]>= #DataInicial#) and ([Data] <=#DataFinal#)) order by Data desc[Ô]   


No acess : tenho o seguinte codigo, mas não funciona quanto a planilha e o banco de dados:
sql=[Ô]select * from estoqueconsumo where DescricaoC like [ô]*[Ô] & Descricao.Text & [Ô]*[ô] and DataC >= #[Ô] & Format(DataInicial, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and DataC <= #[Ô] & Format(DataFinal, [Ô]mm/dd/yyyy[Ô]) & [Ô]# order by DataC asc[Ô]   


Como fazer funcionar.....:(
IRENKO 31/10/2012 07:35:25
#413221
Resposta escolhida
Tente assim:

sql=[Ô]select * from [estoqueconsumo$] where [DescricaoC] like [ô]*[Ô] & Descricao.Text & [Ô]*[ô] and [DataC] >= #[Ô] & Format(DataInicial, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and [DataC] <= #[Ô] & Format(DataFinal, [Ô]mm/dd/yyyy[Ô]) & [Ô]# order by [DataC] asc[Ô]
GEROEANE 31/10/2012 11:05:56
#413252
ola, obrigado pela dica mais os dados não estão sendo carregados :
Segue o codigo que estou usando :

  Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String
Dim I As Integer

Set conn = New ADODB.Connection
With conn

[ô].Provider = [Ô]Microsoft.JET.OLEDB.4.0[Ô] [ô] versão excel 2003
.Provider = [Ô]Microsoft.ACE.OLEDB.12.0[Ô] [ô] versão excel 2007
.ConnectionString = [Ô]Data Source=[Ô] & ThisWorkbook.FullName & [Ô];Extended Properties=Excel 8.0;[Ô]
.Open
End With

sql = [Ô]SELECT Descricao, Codigo_ferramenta,Materia_Prima,Data FROM [CadastroFerramentas$]where [Data] >= #[Ô] & Format(DataInicial, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and [Data] <= #[Ô] & Format(DataFinal, [Ô]mm/dd/yyyy[Ô]) & [Ô]# order by [Data] desc[Ô]


Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenDynamic, _
adLockBatchOptimistic
End With

I = 2

Do While Not rst.EOF
If Not IsNull(rst(0).Value) Then

Worksheets([Ô]Plan2[Ô]).Range([Ô]A[Ô] & I).Value = rst!Descricao
Worksheets([Ô]Plan2[Ô]).Range([Ô]B[Ô] & I).Value = rst!Codigo_Ferramenta
Worksheets([Ô]Plan2[Ô]).Range([Ô]C[Ô] & I).Value = rst!Materia_Prima
Worksheets([Ô]Plan2[Ô]).Range([Ô]D[Ô] & I).Value = rst!Data


End If
I = I + 1
rst.MoveNext

Loop

[ô] Fecha o conjunto de registros.
Set rst = Nothing
[ô] Fecha a conexão.
conn.Close
IRENKO 31/10/2012 13:33:27
#413275
coloque em anexo sua planilha ou um pequeno exemplo.
GEROEANE 31/10/2012 15:11:32
#413281
Ok segue em anexo... formulario historico

IRENKO 31/10/2012 15:20:34
#413283
Uai! Aqui carregou normalmente.
GEROEANE 31/10/2012 19:34:16
#413308
Então ferou....
GEROEANE 31/10/2012 19:39:34
#413309
irenko mais algumas alterações alguns teste :
    Dim MeuBD As Database
Dim SQL As String
Dim MinhaTabela As Recordset
Dim DataInicial, DataFinal As Date
Dim i As Integer

DataInicial = TextBox1.Text
DataFinal = TextBox2.Text

SQL = [Ô]SELECT NOME, Data FROM [CadastroFerramentas$] WHERE Data >= #[Ô] & Format(DataInicial, [Ô]mm/dd/yyyy[Ô]) & [Ô]# AND Data <= #[Ô] & Format(DataFinal, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]

Set MeuBD = OpenDatabase(ThisWorkbook.Path & [Ô]/[Ô] & ThisWorkbook.Name, False, False, [Ô]Excel 8.0[Ô])
Set MinhaTabela = MeuBD.OpenRecordset(SQL)

Do While Not MinhaTabela.EOF
ComboBox1.AddItem MinhaTabela!NOME
MinhaTabela.MoveNext
Loop
MeuBD.Close
End Sub
Tópico encerrado , respostas não são mais permitidas