Caros, boa tarde!
Estou realizando um projeto que ao efetuar a pesquisa e mostrar no ListView o campo Data está gravado como Texto (no BD Access) e ao retornar e solicitar a ordenação pelo campo data ele não reconhece (o mês, ele coloca os dias em ordem, porém o mês não).
Como faço para converter a Data de Texto para Formato Data para que o filtro funcione corretamente?
Grato
Leandro
Código
Botão Pesquisar:
Private Sub cmdPesquisar_Click()
Dim sql As String
Dim i As Integer
'Cursor
Application.Cursor = xlWait
Application.StatusBar = "Aguarde... O sistema está processando as informações. "
Me.StatusBar2.Panels(1).Text = Application.StatusBar
ListView1.Sorted = False
ProcurarPor = Me.cboPesquisarPor.Text
OrdenarPor = Me.cboOrdenarPor.Text
With Me.ListView1
.ListItems.Clear
sql = "SELECT Código, Colaborador, Data_Suporte, Solicitante, Area_Solicitante, Celular, Comunicator, Email, Pessoalmente, Telefone, CAC, Corporativo, amaisBA, amaisPE, amaisPR, amaisRS, amaisSP, Fleury, LABS, Weinmann, Diagnoson, Felippe_Mattoso, amaisDF, Acao, Convenio, Detalhes_Assunto, Resolucao_Imediata FROM SuportePRAT"
If Me.chkPesquisa.Value = True Then
sql = sql & " WHERE " & ProcurarPor & " LIKE '%" & Me.txtPesquisa.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
'SQL = SQL & " WHERE " & ProcurarPor & " LIKE '%" & Me.txtPesquisa.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem
'ElseIf Me.chkPesquisa.Value = False Then
'SQL = SQL & " WHERE " & ProcurarPor & " LIKE " & Me.txtPesquisa.Value & "% ORDER BY " & OrdenarPor & " " & Ordem
End If
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic
For i = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0) 'Código
.ListItems(1).ListSubItems.Add 1, , banco(1) 'Colaborador
.ListItems(1).ListSubItems.Add 2, , banco(2) 'Data_Suporte
.ListItems(1).ListSubItems.Add 3, , banco(3) 'Solicitante
.ListItems(1).ListSubItems.Add 4, , banco(4) 'Area_Solicitante
.ListItems(1).ListSubItems.Add 5, , banco(5) 'Celular
.ListItems(1).ListSubItems.Add 6, , banco(6) 'Comunicator
.ListItems(1).ListSubItems.Add 7, , banco(7) 'Email
.ListItems(1).ListSubItems.Add 8, , banco(8) 'Pessoalmente
.ListItems(1).ListSubItems.Add 9, , banco(9) 'Telefone
.ListItems(1).ListSubItems.Add 10, , banco(10) 'CAC
.ListItems(1).ListSubItems.Add 11, , banco(11) 'Corporativo
.ListItems(1).ListSubItems.Add 12, , banco(12) 'amaisBA
.ListItems(1).ListSubItems.Add 13, , banco(13) 'amaisPE
.ListItems(1).ListSubItems.Add 14, , banco(14) 'amaisPR
.ListItems(1).ListSubItems.Add 15, , banco(15) 'amaisRS
.ListItems(1).ListSubItems.Add 16, , banco(16) 'amaisSP
.ListItems(1).ListSubItems.Add 17, , banco(17) 'Fleury
.ListItems(1).ListSubItems.Add 18, , banco(18) 'LABS
.ListItems(1).ListSubItems.Add 19, , banco(19) 'Weinmann
.ListItems(1).ListSubItems.Add 20, , banco(20) 'Diagnoson
.ListItems(1).ListSubItems.Add 21, , banco(21) 'Felippe_Mattoso
.ListItems(1).ListSubItems.Add 22, , banco(22) 'amaisDF
.ListItems(1).ListSubItems.Add 23, , banco(23) 'Resolução Imediata
.ListItems(1).ListSubItems.Add 24, , banco(24) 'Acao
.ListItems(1).ListSubItems.Add 25, , banco(25) 'Convenio
.ListItems(1).ListSubItems.Add 26, , banco(26) 'Detalhes_Assunto
End If
banco.MoveNext
Next i
Set banco = Nothing
'Volta o cursor ao normal
Application.Cursor = xlDefault
Application.StatusBar = False
Me.StatusBar2.Panels(1).Text = "Pronto"
cx.Desconectar
End With
Me.StatusBar1.Panels(1).Text = "Total de Itens Localizados: " & Me.ListView1.ListItems.Count
Me.StatusBar2.Panels(1).Text = ""
End Sub
Montagem do ListView
Private Sub UserForm_Initialize()
cmdEditar.Visible = False 'desabilita o botão
cmdExcluir.Visible = False 'desabilita o botão
txtPesquisa.SetFocus
With cboPesquisarPor
.AddItem "Acao"
.AddItem "Código"
.AddItem "Colaborador"
.AddItem "Data_Suporte"
.AddItem "Detalhes_Assunto"
.AddItem "Solicitante"
.ListIndex = 1
End With
chkPesquisa = True
cboOrdenarPor.List = cboPesquisarPor.List
cboOrdenarPor.ListIndex = 3
With cboOrdem
.AddItem "Crescente"
.AddItem "Descrescente"
.ListIndex = 1
End With
With Me.ListView1
.FullRowSelect = True
.View = lvwReport
.Gridlines = True
.Font.Size = 10
.ColumnHeaders.Add Text:="Código", Width:=50 'Código 1
.ColumnHeaders.Add Text:="Colaborador", Width:=100, Alignment:=0 'Colaborador 2
.ColumnHeaders.Add Text:="Data Suporte", Width:=75, Alignment:=2 'Data_Suporte 3
.ColumnHeaders.Add Text:="Solicitante", Width:=75, Alignment:=2 'Solicitante 4
.ColumnHeaders.Add Text:="Area Solicitante", Width:=80, Alignment:=2 'Area_Solicitante 5
.ColumnHeaders.Add Text:="Celular", Width:=65, Alignment:=2 'Celular 6
.ColumnHeaders.Add Text:="Comunicator", Width:=65, Alignment:=2 'Comunicator 7
.ColumnHeaders.Add Text:="Email", Width:=65, Alignment:=2 'Email 8
.ColumnHeaders.Add Text:="Pessoalmente", Width:=65, Alignment:=2 'Pessoalmente 9
.ColumnHeaders.Add Text:="Telefone", Width:=65, Alignment:=2 'Telefone 10
.ColumnHeaders.Add Text:="CAC", Width:=65, Alignment:=2 'CAC 11
.ColumnHeaders.Add Text:="Corporativo", Width:=65, Alignment:=2 'Corporativo 12
.ColumnHeaders.Add Text:="amais BA", Width:=65, Alignment:=2 'amaisBA 13
.ColumnHeaders.Add Text:="amais PE", Width:=65, Alignment:=2 'amaisPE 14
.ColumnHeaders.Add Text:="amais PR", Width:=65, Alignment:=2 'amaisPR 15
.ColumnHeaders.Add Text:="amais RS", Width:=65, Alignment:=2 'amaisRS 16
.ColumnHeaders.Add Text:="amais SP", Width:=65, Alignment:=2 'amaisSP 17
.ColumnHeaders.Add Text:="Fleury", Width:=65, Alignment:=2 'Fleury 18
.ColumnHeaders.Add Text:="LABS", Width:=65, Alignment:=2 'LABS 19
.ColumnHeaders.Add Text:="Weinmann", Width:=65, Alignment:=2 'Weinmann 20
.ColumnHeaders.Add Text:="Diagnoson", Width:=65, Alignment:=2 'Diagnoson 21
.ColumnHeaders.Add Text:="F. Mattoso", Width:=65, Alignment:=2 'Felippe_Mattoso 22
.ColumnHeaders.Add Text:="amais DF", Width:=65, Alignment:=2 'a+DF 23
.ColumnHeaders.Add Text:="Ação", Width:=200, Alignment:=2 'Acao 24
.ColumnHeaders.Add Text:="Convênio", Width:=65, Alignment:=2 'Convenio 25
.ColumnHeaders.Add Text:="Detalhes Assunto", Width:=200, Alignment:=2 'Detalhes_Assunto 26
.ColumnHeaders.Add Text:="Res Imediata", Width:=70, Alignment:=2 'RTesolução Ime 27
End With
Me.StatusBar1.Panels(1).Text = "Total de Itens Localizados: " & Me.ListView1.ListItems.Count
End Sub