Notifications
Clear all

Converter Data para Listagem no ListView

3 Posts
2 Usuários
0 Reactions
1,335 Visualizações
(@lcsilva)
Posts: 0
New Member
Topic starter
 

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
 
Postado : 10/11/2015 1:39 pm
(@suggos)
Posts: 0
New Member
 

O VBA reconhece datas na sequência "mm/dd/aaaa". Por isso, é necessário utilizar o seguinte comando para que o VBA reconheça a data no filtro format(Datas, "mm/dd/yyyy")

 
Postado : 14/11/2015 10:38 am
(@lcsilva)
Posts: 0
New Member
Topic starter
 

suggos, Boa tarde!

Grato, eu converti o campo no BD como Data ele refletiu já no List.

Valeu

 
Postado : 19/11/2015 10:40 am