Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda no ListView VB6 Conexão ADO


Flecha

Pergunta

Olá,

Tenho um formulário que contém um listView (lvwCustomer) e vários (23) Textbox para receber os dados do listview quando a linha do listview for clicada.

Quando o form é aberto o listview es os box são carregados pela sub abaixo:

Private Sub LoadCustomerListView() 'Carrega o listview
'-----------------------------------------------------------------------------
                                 
    Dim strSQL      As String
    Dim objCurrLI   As ListItem
    Dim strcep      As String
    Dim strPhone    As String
    Dim strPhoneCel As String
                                 
    strSQL = "SELECT NOME" _
           & "     , RG" _
           & "     , ENDEREÇO" _
           & "     , cidade" _
           & "     , estado" _
           & "     , cep" _
           & "     , TELRES" & ", TELCEL" _
           & "     , CPF" _
           & "     , Bairro" _
           & "     , Nacionalidade" _
           & "     , Naturalidade" _
           & "     , Dtnato" _
           & "     , Pai" _
           & "     , Mae" _
           & "     , Posiçao" _
           & "     , Numero" _
           & "     , Complemento" _
           & "     , Civil" _
           & "     , Obsa" _
           & "     , Cargo" & "     , Classe" _
           & "     , Exercicio" _
           & "     , CustID" _
           & "  FROM Customer " _
           & " ORDER BY RG" _
           & "        , NOME"
    
    mobjCmd.CommandText = strSQL
    Set mobjRst = mobjCmd.Execute
    
    lvwCustomer.ListItems.Clear
    
    With mobjRst
        Do Until .EOF
            strPhone = !TELRES & ""    'coloca PARENTESES nos dois primeiros digitos e hifen
            
            If Len(strPhone) > 0 Then
              strPhone = "(" & Left$(strPhone, 2) & ") " _
                       & Mid$(strPhone, 4, 4) & "-" _
                         & Right$(strPhone, 4)
          End If
          '--------------------------------------------------------------------------
          strPhoneCel = !TELCEL & ""
          
          If Len(strPhoneCel) > 0 Then
              strPhoneCel = "(" & Left$(strPhoneCel, 2) & ") " _
                       & Mid$(strPhoneCel, 4, 4) & "-" _
                         & Right$(strPhoneCel, 4)
          End If
           strcep = !cep & ""
             If Len(strcep) > 0 Then
                 strcep = "(" & Left$(strcep, 5) & ")" _
                         & Mid$(strcep, 4, 5) & "-" _
                         & Right$(strcep, 3)
             End If
           
          '-------------------------------------------------------------------------
          '
                
            Set objCurrLI = lvwCustomer.ListItems.Add(, , !nome & "", , "Custs")
            objCurrLI.SubItems(mlngCUST_RG_IDX) = !RG & ""
            objCurrLI.SubItems(mlngCUST_ENDEREÇO_IDX) = !ENDEREÇO & ""
            objCurrLI.SubItems(mlngCUST_cidade_IDX) = !cidade & ""
            objCurrLI.SubItems(mlngCUST_ESTADO_IDX) = !estado & ""
            objCurrLI.SubItems(mlngCUST_cep_IDX) = !cep & ""
            objCurrLI.SubItems(mlngCUST_CPF_IDX) = !CPF & ""
            objCurrLI.SubItems(mlngCUST_Bairro_IDX) = !Bairro & ""
            objCurrLI.SubItems(mlngCUST_Nac_IDX) = !Nacionalidade & ""
            objCurrLI.SubItems(mlngCUST_Nat_IDX) = !Naturalidade & ""
            objCurrLI.SubItems(mlngCUST_Nasc_IDX) = !Dtnato & ""
            objCurrLI.SubItems(mlngCUST_Pai_IDX) = !Pai & ""
            objCurrLI.SubItems(mlngCUST_Mae_IDX) = !Mae & ""
            objCurrLI.SubItems(mlngCUST_Pos_IDX) = !Posiçao & ""
            objCurrLI.SubItems(mlngCUST_Num_IDX) = !Numero & ""
            objCurrLI.SubItems(mlngCUST_Compl_IDX) = !complemento & ""
            objCurrLI.SubItems(mlngCUST_Civ_IDX) = !Civil & ""
            objCurrLI.SubItems(mlngCUST_TELRES_IDX) = strPhone
            objCurrLI.SubItems(mlngCUST_TELCEL_IDX) = strPhoneCel
            objCurrLI.SubItems(mlngCUST_Obs_IDX) = !Obsa & ""
            objCurrLI.SubItems(mlngCUST_Combo2_IDX) = !Cargo & ""
            objCurrLI.SubItems(mlngCUST_Combo3_IDX) = !Classe & ""
            objCurrLI.SubItems(mlngCUST_Combo1_IDX) = !Exercicio & ""
            objCurrLI.SubItems(mlngCUST_ID_IDX) = CStr(!Custid)
            .MoveNext
        
        Loop
    
    End With
    With lvwCustomer
        If .ListItems.Count > 0 Then
            Set .SelectedItem = .ListItems(1)
            lvwCustomer_ItemClick .SelectedItem
        End If
    End With
    
    Set objCurrLI = Nothing
    Set mobjRst = Nothing

End Sub

Eu quero colocar uma variável em um novo TextBox para quando for digitado uma letra nele o listview mostra o primeiro registro com a letra e se eu digitar outra ele vai filtrando para a seqüência da próxima diminuindo as coincidências no listview.

Alguém pode me ajudar no código ?

Flecha

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

você diz q quer fazer um filtro no listview??

não é melhor usar datagrid??

de qualquer forma, você vai ter q fazer, no evento change da textbox, pra ele fazer novamente o select no banco (usando o like pra pegar so pelo comeco da palavra), apagar todo o conteudo do list e incluir de novo so o q tiver voltado do filtro.

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi,

O Macoratti tem um exemplo de ListView com consulta dinãmica, e eu coloquei a parte de consulta no meu, só que para variar começou os erros,

pois ele usa um loop para carregar o list baseado no na consulta não estou conseguindo entender.

Parece que eu consegui

Descobri que no loop ele pega o campo no BD para colocar no Listview e tem que estar na mesma ordem os campos do BD com os do Listview, depois começou dar um erro de INVALID USE OF NULL e descobri que eram campos que estavam vazios no BD.

Vou ficar rodando o projeto e testando e se voltar o erro eu retorno aqui.

Abraços,

Flecha

Editado por Flecha
Link para o comentário
Compartilhar em outros sites

  • 0

o codigo acima evitaria o erro Invalid Use of Null.

tipo, se você fizer assim com um valor nulo:

objCurrLI.SubItems(mlngCUST_ENDEREÇO_IDX) = !ENDEREÇO
ai o erro deve acontcer. mas caso você faca assim:
objCurrLI.SubItems(mlngCUST_ENDEREÇO_IDX) = !ENDEREÇO & ""

ai não deve ter erro.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...