Vídeo recomendado
https://youtu.be/diWPPPhW-9E

[Resolvido] Copiar dados dos listview para outro formulário

Discussões sobre a integração do Excel com o Banco de Dados Access

Moderador: joseA

João N
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Sáb Mai 07, 2016 11:12 am

[Resolvido] Copiar dados dos listview para outro formulário

Mensagem por João N »

Olá pessoal!

Estou com dificuldade em transferir os dados de um listview (form1) para outro formulário (form2).
O processo é o seguinte:

1) Seleciono uma linha do listview (form1) através do checkbox
2) Ao selecionar este checkbox, abre-se o form2 com os campos para recepção dos dados

Acontece que na primeira vez que seleciono o checkbox no form1, os campos do form2 aparecem em branco. Os dados somente serão transferidos para o form2 se este for fechado, se eu desmarcar o checkbox e selecioná-lo novamente. Aí sim, os dados aparecerão nos campos do form 2. Achei estranho! Não sei se vocês conseguiram me entender. Segue o código.

Código: Selecionar todos


Private Sub listview1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
    form2.Show
    With form2
        
        .txt1.Value = form1.listview1.SelectedItem
        .txt2.Value = form1.listview1.SelectedItem.SubItems(1)
        .txt3.Value = form1.listview1.SelectedItem.SubItems(2)
        .txt4.Value = form1.listview1.SelectedItem.SubItems(3)
        .txt5.Value = form1.listview1.SelectedItem.SubItems(4)
        .txt6.Value = form1.listview1.SelectedItem.SubItems(5)

    End With
End sub
Desde já, agradeço
Editado pela última vez por João N em Sex Mar 02, 2018 2:47 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


sandrojrs
Colaborador
Colaborador
Mensagens: 38
Registrado em: Seg Fev 19, 2018 5:32 pm

Re: Copiar dados dos listview para outro formulário

Mensagem por sandrojrs »

pode enviar a planilha amigo


sandrojrs
Colaborador
Colaborador
Mensagens: 38
Registrado em: Seg Fev 19, 2018 5:32 pm

Re: Copiar dados dos listview para outro formulário

Mensagem por sandrojrs »

Por que não tenta assim:

Private Sub listview1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
form2.Show
With form2

.txt1.Value = form2.listview1.SelectedItem
.txt2.Value = form2.listview1.SelectedItem.SubItems(1)
.txt3.Value = form2.listview1.SelectedItem.SubItems(2)
.txt4.Value = form2.listview1.SelectedItem.SubItems(3)
.txt5.Value = form2.listview1.SelectedItem.SubItems(4)
.txt6.Value = form2.listview1.SelectedItem.SubItems(5)

End With
End sub


João N
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Sáb Mai 07, 2016 11:12 am

Re: Copiar dados dos listview para outro formulário

Mensagem por João N »

Não, porque o listview encontra-se no formulário 1 e não no formulário 2 conforme você colocou.
Vou enviar a planilha.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Copiar dados dos listview para outro formulário

Mensagem por srobles »

João N,
Experimente a rotina que deixo abaixo :

Código: Selecionar todos

Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
    'Criamos uma lista de dados
    'para armazenarmos o valor de cada coluna do ListView
    Dim retornoValores(1 To 4) As String
    
    'Definimos a variável pública com o indice do item selecionado
    idItemSelecionado = Item.Index
    
    'Se o item selecionado estiver flagado (marcado)
    If Me.ListView1.ListItems(Item.Index).Checked = True Then
        'Armazenamos o valor de cada coluna do ListView
        'em cada uma das variáveis da lista
        retornoValores(1) = Me.ListView1.ListItems(Item.Index).Text
        retornoValores(2) = Me.ListView1.ListItems(Item.Index).SubItems(1)
        retornoValores(3) = Me.ListView1.ListItems(Item.Index).SubItems(2)
        retornoValores(4) = Me.ListView1.ListItems(Item.Index).SubItems(3)
        
        'Carregamos o UserForm2
        Load UserForm2
        'Preenchemos os campos
        With UserForm2
            .TextBox1 = retornoValores(1)
            .TextBox2 = retornoValores(2)
            .TextBox3 = retornoValores(3)
            .TextBox4 = retornoValores(4)
        End With
        'Exibimos o UserForm2
        UserForm2.Show
        
        'Limpamos as variáveis da lista
        retornoValores(1) = ""
        retornoValores(2) = ""
        retornoValores(3) = ""
        retornoValores(4) = ""
    End If
End Sub
Todavia, deixo abaixo um modelo para estudar o código.

Abs
Anexos
modelo_JOAO_N.zip
(31.58 KiB) Baixado 375 vezes


João N
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Sáb Mai 07, 2016 11:12 am

Re: Copiar dados dos listview para outro formulário

Mensagem por João N »

Saulo, problema resolvido graças a você.
A solução estava simplesmente no comando "Load Useform2". Tentei seu código e funcionou. Depois tentei o meu código acrescido do comando "Load Userform2" (no início) e funcionou também. Com o meu código não estava funcionando porque primeiro vinha o comando Useform2.Show para abrir o formulário e depois o comando para transferências dos dados.

Muito, muito obrigado!!
Qualquer coisa estamos aí!
João N


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder