Bem, tenho um arquivo em Excel, onde roda um "micro-sistema" com form's para cadastro e consulta no banco Access (mdb). Todos os cadastros são feitos de maneira correta. No banco as datas estão certinhas (dd/mm/aaaa). O problema quando vou atualizar meu "micro-sistema". No form para atualizar, digito a data que quero que seja atualizada e, o Excel esta incertando a data. Por exemplo, quero trazer registros do MDB com data de 02/12/2015. Porem, o form entende como "12/02/2015" e não retorna nenhum valor. Se eu digitar "12/02/2015" ele entende como "02/12/2015" e me retorna os valores certos. Ou seja, ele esta inverto dd/mm/aaaa para mm/dd/aaaa. Li em outro fórum que eu deveria utilizar o DataValue(). (link do outro fórum) mas eu não faço a minima ideia de como fazer isso.
Na primeira parte do código, o form preenche três células dentro do EXCEL. Essas células eu uso para mostra na "aba painel" o período que eu estou mostrando no "micro-sistema". Já na segunda parte (abaixo de "Condição IF (SE)", são feitas as consultas no banco de dados e, onde são atualizadas as tabelas. Nesse momento, o Excel também faz a inversão da data, como citei no primeiro paragrafo.
Segue o código.
Private Sub cmdFiltroOperacao_Click()
'-----------------------------------------------------------------------------------------
' Preenche celula E3 com nome da operação, data de inicio e termino
'-----------------------------------------------------------------------------------------
Dim lngRow As Long
Application.ScreenUpdating = False
Sheets("AUX1".Select 'posiciona o cursor na planilha de cadastro
Range("E3:G3".Select
Selection.ClearContents
Range("E3".Select
ActiveCell.Value = Me.tOperacao.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.tInicio.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.tTermino.Text
ActiveCell.Offset(0, 1).Activate
'-----------------------------------------------------------------------------------------
' CONDIÇÃO IF (SE)
'-----------------------------------------------------------------------------------------
If Me.tOperacao = "" Or _
Me.tInicio = "" Or _
Me.tTermino = "" Then
MsgBox "Todos os campos são obriatórios!", vbCritical, "ALERTA"
Exit Sub
End If
'-----------------------------------------------------------------------------------------
' Cons_Turmas
'-----------------------------------------------------------------------------------------
Application.ScreenUpdating = False
Dim nConectar As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String
Set banco = New ADODB.Recordset
'DEFININDO INSTRUÇÃO A VARIÁVEL
sql = " SELECT * FROM Cons_Turmas "
sql = sql & " WHERE dOperacao LIKE '" & Me.tOperacao.Text & "%' "
sql = sql & " AND Inicio between #" & Me.tInicio.Text & "# And #" & Me.tTermino.Text & "#"
Sheets("ACOES".Select
Range("TAB_TURMAS".Select
Selection.ClearContents
Call DeletLine
'CONECTAR AO BANCO DE DADOS
nConectar.Conectar
'EXECUTAR A SQL
banco.Open sql, nConectar.Conn
'DECLARANDO VARIÁVEL PARA LOCAL QUE RECEBERÁ OS DADOS NA PLANILHA
Dim xls1 As Excel.Worksheet
Set xls1 = Sheets("ACOES"
xls1.Range("B6".CopyFromRecordset banco
'DESCONECTAR PARA LIBERAR MEMÓRIA
'nConectar.Desconectar
'-----------------------------------------------------------------------------------------
' Cons_PlanoAcao
'-----------------------------------------------------------------------------------------
Set banco = New ADODB.Recordset
'DEFININDO INSTRUÇÃO A VARIÁVEL
sql = " SELECT * FROM Cons_PlanoAcao "
sql = sql & " WHERE dOperacao LIKE '" & Me.tOperacao.Text & "%' "
sql = sql & " AND Inicio between #" & Me.tInicio.Text & "# And #" & Me.tTermino.Text & "#"
Sheets("PLANO".Select
Range("TAB_PLANO".Select
Selection.ClearContents
Call DeletLine
'CONECTAR AO BANCO DE DADOS
'nConectar.Conectar
'EXECUTAR A SQL
banco.Open sql, nConectar.Conn
'DECLARANDO VARIÁVEL PARA LOCAL QUE RECEBERÁ OS DADOS NA PLANILHA
Dim xls2 As Excel.Worksheet
Set xls2 = Sheets("PLANO"
xls2.Range("B6".CopyFromRecordset banco
'DESCONECTAR PARA LIBERAR MEMÓRIA
'nConectar.Desconectar
'-----------------------------------------------------------------------------------------
' Cons_Participantes
'-----------------------------------------------------------------------------------------
Set banco = New ADODB.Recordset
'DEFININDO INSTRUÇÃO A VARIÁVEL
sql = " SELECT * FROM Cons_Participantes "
sql = sql & " WHERE dOperacao LIKE '" & Me.tOperacao.Text & "%' "
sql = sql & " AND dData between #" & Me.tInicio.Text & "# And #" & Me.tTermino.Text & "#"
Sheets("PARTICIPANTES".Select
Range("TAB_OPERADORES".Select
Selection.ClearContents
Call DeletLine
'CONECTAR AO BANCO DE DADOS
'nConectar.Conectar
'EXECUTAR A SQL
banco.Open sql, nConectar.Conn
'DECLARANDO VARIÁVEL PARA LOCAL QUE RECEBERÁ OS DADOS NA PLANILHA
Dim xls3 As Excel.Worksheet
Set xls3 = Sheets("PARTICIPANTES"
xls3.Range("B6".CopyFromRecordset banco
Range("B6".Select
'DESCONECTAR PARA LIBERAR MEMÓRIA
'nConectar.Desconectar
'-----------------------------------------------------------------------------------------
' Grafic_Turmas
'-----------------------------------------------------------------------------------------
Set banco = New ADODB.Recordset
'DEFININDO INSTRUÇÃO A VARIÁVEL
sql = " SELECT * FROM Grafic_Turmas "
sql = sql & " WHERE dOperacao LIKE '" & Me.tOperacao.Text & "%' "
sql = sql & " AND Inicio between #" & Me.tInicio.Text & "# And #" & Me.tTermino.Text & "#"
Sheets("GRAFICOS".Select
Range("GraficoTurmas".Select
Selection.ClearContents
Call DeletLine2
'CONECTAR AO BANCO DE DADOS
'nConectar.Conectar
'EXECUTAR A SQL
banco.Open sql, nConectar.Conn
'DECLARANDO VARIÁVEL PARA LOCAL QUE RECEBERÁ OS DADOS NA PLANILHA
Dim xls4 As Excel.Worksheet
Set xls4 = Sheets("GRAFICOS"
xls4.Range("A2".CopyFromRecordset banco
Range("A2".Select
'DESCONECTAR PARA LIBERAR MEMÓRIA
'nConectar.Desconectar
'-----------------------------------------------------------------------------------------
' Cons_Grupos
'-----------------------------------------------------------------------------------------
Set banco = New ADODB.Recordset
'DEFININDO INSTRUÇÃO A VARIÁVEL
sql = " SELECT * FROM Cons_Grupos "
sql = sql & " WHERE dOperacao LIKE '" & Me.tOperacao.Text & "%' "
sql = sql & " AND Inicio between #" & Me.tInicio.Text & "# And #" & Me.tTermino.Text & "#"
Sheets("GRUPOS".Select
Range("Grupos".Select
Selection.ClearContents
Call DeletLine2
'CONECTAR AO BANCO DE DADOS
'nConectar.Conectar
'EXECUTAR A SQL
banco.Open sql, nConectar.Conn
'DECLARANDO VARIÁVEL PARA LOCAL QUE RECEBERÁ OS DADOS NA PLANILHA
Dim xls5 As Excel.Worksheet
Set xls5 = Sheets("GRUPOS"
xls5.Range("A2".CopyFromRecordset banco
Range("A2".Select
'DESCONECTAR PARA LIBERAR MEMÓRIA
nConectar.Desconectar
'--FIM-DA-SQL-DE-ATUALIZAÇÃO-DAS-TABELAS--------------------------------------------------
Sheets("PAINEL".Select
MsgBox "Arquivo atualizado!", vbInformation, "Atualização"
Unload Me
End Sub