DBCLICK DO LISTVIEW

GUTO 17/04/2010 17:17:25
#339670
Ola boa tarde pessoal,

estou com um problema aqui que não teho ideia de como resolver, e gostaria da ajuda de voces.
Eu tenho um formulario com um listview que uso para consultar um formulario de contatos, para interligar os dois eu uso está rotina:

No botão Consultar:

[ô]este Codigo leva para a consulta em listview
fCarrega.Config [Ô]Consulta de Cadastrados[Ô], [Ô]propr[Ô]
Recebe

E tenho um sub Chamada Recebe onde eu carrego os dados do registro.

Private Sub Recebe() [ô]preenche os campos com os dados do registro selecionado
On Error Resume Next
rspropri.MoveFirst
Dim i As Integer

For i = 1 To rspropri.RecordCount

If rspropri!CodigoAuto = (CODI.Text * 1) Then

txtcodauto.Text = [Ô][Ô] & rspropri!CodigoAuto
txtcod.Text = [Ô][Ô] & rspropri!codigo
txtproprietario.Text = [Ô][Ô] & rspropri!nome
txtnacional.Text = [Ô][Ô] & rspropri!Nacionalidade
TxtProfissao.Text = [Ô][Ô] & rspropri!Profissao

Else
rspropri.MoveNext
End If
DoEvents
Next
end sub


Até aqui tudo bem, eu aperto o botão e entra no formulario fcarrega, e os dados estão lá, só que este formulario tem dois registros e quando eu clico no ultimo registro, ele sóc arrega o 1°, não sei porque...

O codigo do dbclick do Fcarrega é este:

[ô]instrucao que faz o click do listview levando para o
[ô]formulario corresponde ao item clicado no codigo
[ô]do registro escolhido
If lsv.ListItems.Count = 0 Then Exit Sub
Select Case FRef


Case [Ô]propr[Ô]: FrmProprietarios.CODI.Text = lsv.SelectedItem.Text



End Select
Me.Hide


Se alguem puder me ajudar agradeço, nao sei roque o registro 2 nao esta sendo carregado, no formulario de contato.

Agradeço qualquer ajuda.
TECLA 17/04/2010 19:54:15
#339674
Você quer mostrar os 2 REGISTROS em um ÚNICO TEXTBOX?
JESUEL.OLIVEIRA 17/04/2010 19:59:46
#339676
Amigo, verifiquei seu exemplo

pelo que entendi quando você muda de Proprietário na no outro form vc não esta passa para recarregar o dados.

este seu código abaixo passa o parametro para a pesquisa no caso código 2 mas quem executa?

 Case [Ô]propr[Ô]: FrmProprietarios.CODI.Text = lsv.SelectedItem.Text 


crie uma sub onde carrega os dados e cada vez que vc fizer consulta para por parametro não precisa colocar um text invisil para isso.
   

sub carregar_List(Proprietario as integer )

usa o código que você faz para carregar

End Sub


ao inves de utilizar assim
 Case [Ô]propr[Ô]: FrmProprietarios.CODI.Text = lsv.SelectedItem.Text 


Use assim

 Case [Ô]propr[Ô]: carregar_List lsv.SelectedItem.Text 


você passa por parametro, ai carrega novamente.
GUTO 18/04/2010 01:03:45
#339680
Tecla:

Não, seria um por vez mesmo, mas tipo quando eu clico na segunda linha do listiview, ele carrega a primeia no form, eu não consigo clciar no registro com codigo 2 e carregar no form o registro de acordo...


Jesual Oliveira:

A sub que carrega os dados seria a [Ô]Recebe[Ô]

mas Ela carrega os dados normalmente só não acerta o registro certo na hora de clxciar na linha, vou testar a sua ideia e ja posto.

Obrigado a todos, muito obrigado!

e eu uso este txt dentro do form contato CODI pelo seguinte, porque eu posso usar este memos listiview para muitos formularios, e eu identifico cada um por este txt.
GUTO 18/04/2010 01:13:02
#339681
Deu muitos erros deste jeito irmao.
Desta forma parece ser melhor, acho eu, porque identifica o form onde eu inicio a consulta pelo CODI e no listiview ao clicar mostra o destino do carregamento. desculpa a ignorancia não etendi muito bem o seu codigo eu acho.


Case [Ô]propr[Ô]: FrmProprietarios.CODI.Text = lsv.SelectedItem.Text
JILNEY 18/04/2010 10:10:27
#339682
Cara pelo que entendi vc quer carregar os textbox com os dados da linha selecionada no Listview que ja esta preenchido, se for isso mesmo faça + ou - isso:

txtcodauto.Text = listview1.selecteditem [ô]para primeira coluna da linha selecionada
txtcod.Text = listview1.selecteditem.subitems(1) segunda
txtproprietario.Text = listview1.selecteditem.subitems(2) etc
txtnacional.Text = listview1.selecteditem.subitems(3) etc
TxtProfissao.Text = listview1.selecteditem.subitems(4)etc

Se o listview esta em outro form coloque o nome do form antes, assim: Form_cadastro.Listview1.selecteditem


GUTO 19/04/2010 12:22:31
#339711
È mais facil fazer isto

Case [Ô]propr[Ô]: FrmProprietarios.CODI.Text = lsv.SelectedItem.Text

ele só nao está carregando o registro certo, só carrega o registro com o codigo 1, se tievr 3 registros , só o primeiro do recordset é carregado.
GUTO 19/04/2010 15:42:19
#339730
O rpoblema que me disseram aqui era na sub Recebe, ela deveria ficar assim:

Private Sub Recebe() [ô]preenche os campos com os dados do registro selecionado
On Error Resume Next
rspropri.MoveFirst
Dim i As Integer

For i = 1 To rspropri.RecordCount

If rspropri!Codigo = CDbl(0 & CODI.Text) Then
LimparControles

Else
rspropri.MoveNext
End If
Next
End Sub

E no form_actvate()

deveria tirar esta instrução

[ô]cmdprimeiro_Click
Tópico encerrado , respostas não são mais permitidas