DBCLICK DO LISTVIEW
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.
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.
Você quer mostrar os 2 REGISTROS em um ÚNICO TEXTBOX?
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?
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.
ao inves de utilizar assim
Use assim
você passa por parametro, ai carrega novamente.
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.
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.
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.
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
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
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
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
È 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.
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.
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
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