CONSULTA
Como faço ao fazer a consulta e ao selecionar o nome do sócio (no MSFlexGrid1) , o mesmo
retorna para o (cadastrado) selecionado com o nome.? (conforme a pesquisa).
Grato,
Segue anexo
Citação::
Mudei a função Carrega do formulário principal e no formulário de busca eu retirei as variáveis vCodigo e vNome e coloquei no modulo como publico. No botão Consultar do formulário principal e alterei também.
Segue anexo
Compreendi...
O que queria na realidade, era fazer a consulta (FormConsulta) e ao informar o nome do sócios dentro do formulário,
o mesmo o usuário dava um clique e retornaria para o (FormCadastrado) com o sócio SELECIONADO, podendo fazer a ALTERAÇÃO e/ou EXCLUIR. etc...
Botão de consulta tem que está habilitado,como quer jogar os dados do flexgrid para caixa de texto.
txtUf.text e txtPrinome.text não existe. Erro acontece.
Private Sub MSFlexGrid1_Click()
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
Unload Me
End Sub
ou
Private Sub txtMatricula_Change()
[txt-color=#e80000]Isto fica no final da rotina[/txt-color]
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
End Sub
ou Também
Private Sub TxtNome_Change()
[txt-color=#e80000]Isto fica no final da rotina[/txt-color]
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
End Sub
Citação::
Você colocou 21 picturebox achando que é caixa de texto,acredito eu.Isto não vai da certo
Botão de consulta tem que está habilitado,como quer jogar os dados do flexgrid para caixa de texto.
txtUf.text e txtPrinome.text não existe. Erro acontece.
Private Sub MSFlexGrid1_Click()
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
Unload Me
End Sub
ou
Private Sub txtMatricula_Change()
[txt-color=#e80000]Isto fica no final da rotina[/txt-color]
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
End Sub
ou Também
Private Sub TxtNome_Change()
[txt-color=#e80000]Isto fica no final da rotina[/txt-color]
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
End Sub
Olá...
Não coloquei (21 Picturebox)
Descompacte o arquivo em anexo.
Após, você abre a pasta onde estão os componentes
(Na pasta OCX) copie e cole para a pasta, C:\windows\system32 (no meu esta no windows xp)
(São 2 componentes ACTIVETEXT.OCX e ImagemBD.ocx)
Grato,
Testei o código citado, [Ô]deu certo[Ô]... Ficou faltando a posição correta ao clicar no flexgrid e selecionar
o sócio conforme a consulta para ser mostrado no form cadastro.
txtPriNome
txtIdade
txtFoto
Inclusive o (lblRegistros) tambem tem que esta acompanhando.
Grato,
Caso queira que ao clicar no flex já feche a tela de consulta então é só colocar no final do evento de duplo click do flex a expressão UnLoad Me
já vai fechar e retornar com os dados preenchidos na tela de cadastro acho que você não viu isso no exemplo que te passei
faz um teste que vai dar certo!!!
Citação::
Cara a modificação que eu fiz foi que ao carregar o FlexGrid e você identificar o cadstro que quer dê um duplo clique e clique em fechar que vai retornar para a tela de cadastro com os dados preenchidos.
Caso queira que ao clicar no flex já feche a tela de consulta então é só colocar no final do evento de duplo click do flex a expressão UnLoad Me
já vai fechar e retornar com os dados preenchidos na tela de cadastro acho que você não viu isso no exemplo que te passei
faz um teste que vai dar certo!!!
Analise novamente...
Ao consultar, repare que os dados (Matricula - Admissão e Nome) é informado corretamente.
Nos outros campos os DADOS não pertence ao que foi consultado.
Wlw!
Private Sub Form_Load()
Connect
MSFlexGrid1.ColWidth(0) = 400
MSFlexGrid1.ColAlignment(0) = 4
MSFlexGrid1.ColWidth(1) = 800
MSFlexGrid1.ColWidth(2) = 1200
MSFlexGrid1.ColWidth(3) = 1200
MSFlexGrid1.TextMatrix(0, 0) = [Ô]MatrÃcula[Ô]
MSFlexGrid1.TextMatrix(0, 1) = [Ô]Admissão[Ô]
MSFlexGrid1.TextMatrix(0, 2) = [Ô]Nome[Ô]
MSFlexGrid1.TextMatrix(0, 3) = [Ô]Endereço[Ô]
End Sub
Private Sub MSFlexGrid1_Click()
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
vcodigos = MSFlexGrid1.TextMatrix(Posit, 2)
cod = MSFlexGrid1.TextMatrix(Posit, 3)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
frmCadastro.txtAdmissao.Text = vcodigos
frmCadastro.txtEndereco.Text = cod
Unload Me
End Sub
Private Sub txtMatricula_Change()
If txtMatricula.Text = [Ô][Ô] Then
MSFlexGrid1.Enabled = False
vCodigo = [Ô][Ô]
vNome = [Ô][Ô]
Else
MSFlexGrid1.Enabled = True
End If
If txtMatricula.Text = [Ô][Ô] And txtNome.Text = [Ô][Ô] Then
MSFlexGrid1.Rows = 2
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = [Ô][Ô]
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
Me.Caption = [Ô]Buscar Sócio[Ô]
Exit Sub
End If
MSFlexGrid1.Rows = 2
Connect
Rs.Open [Ô]SELECT * FROM TabCadastro WHERE CodMat Like [ô]%[Ô] & txtMatricula.Text & [Ô]%[ô][Ô], Con, adOpenStatic, adLockOptimistic
Do While Not Rs.EOF
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = Rs.Fields(0).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = Rs.Fields(1).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = Rs.Fields(2).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = Rs.Fields(3).Value
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
Rs.MoveNext
Loop
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
regContador = CStr(Rs.RecordCount)
If MSFlexGrid1.Rows = 2 Then
Me.Caption = [Ô]Buscar Sócio - [Ô] & regContador & [Ô] sócios encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Sócio - [Ô] & regContador & [Ô] sócios encontrados[Ô]
End If
Disconnect
End Sub
Registrei a Ocx e deu resultado.
Citação::
Vai ter que adicionar todos os campos da tabela com o Msflexgrid.
Private Sub Form_Load()
Connect
MSFlexGrid1.ColWidth(0) = 400
MSFlexGrid1.ColAlignment(0) = 4
MSFlexGrid1.ColWidth(1) = 800
MSFlexGrid1.ColWidth(2) = 1200
MSFlexGrid1.ColWidth(3) = 1200
MSFlexGrid1.TextMatrix(0, 0) = [Ô]MatrÃcula[Ô]
MSFlexGrid1.TextMatrix(0, 1) = [Ô]Admissão[Ô]
MSFlexGrid1.TextMatrix(0, 2) = [Ô]Nome[Ô]
MSFlexGrid1.TextMatrix(0, 3) = [Ô]Endereço[Ô]
End Sub
Private Sub MSFlexGrid1_Click()
Dim Posit As Single
Posit = MSFlexGrid1.Row
vCodigo = MSFlexGrid1.TextMatrix(Posit, 0)
vNome = MSFlexGrid1.TextMatrix(Posit, 1)
vcodigos = MSFlexGrid1.TextMatrix(Posit, 2)
cod = MSFlexGrid1.TextMatrix(Posit, 3)
frmCadastro.txtNome.Text = vNome
frmCadastro.txtMatricula.Text = vCodigo
frmCadastro.txtAdmissao.Text = vcodigos
frmCadastro.txtEndereco.Text = cod
Unload Me
End Sub
Private Sub txtMatricula_Change()
If txtMatricula.Text = [Ô][Ô] Then
MSFlexGrid1.Enabled = False
vCodigo = [Ô][Ô]
vNome = [Ô][Ô]
Else
MSFlexGrid1.Enabled = True
End If
If txtMatricula.Text = [Ô][Ô] And txtNome.Text = [Ô][Ô] Then
MSFlexGrid1.Rows = 2
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = [Ô][Ô]
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = [Ô][Ô]
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
Me.Caption = [Ô]Buscar Sócio[Ô]
Exit Sub
End If
MSFlexGrid1.Rows = 2
Connect
Rs.Open [Ô]SELECT * FROM TabCadastro WHERE CodMat Like [ô]%[Ô] & txtMatricula.Text & [Ô]%[ô][Ô], Con, adOpenStatic, adLockOptimistic
Do While Not Rs.EOF
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = Rs.Fields(0).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = Rs.Fields(1).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = Rs.Fields(2).Value
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = Rs.Fields(3).Value
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
Rs.MoveNext
Loop
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
regContador = CStr(Rs.RecordCount)
If MSFlexGrid1.Rows = 2 Then
Me.Caption = [Ô]Buscar Sócio - [Ô] & regContador & [Ô] sócios encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Sócio - [Ô] & regContador & [Ô] sócios encontrados[Ô]
End If
Disconnect
End Sub
Registrei a Ocx e deu resultado.
Ficou muito grande os dados (frmConsulta).
E... Complicou.
Bem simples,mas uso o Listview por ser mais rápido.