CONSULTA

ROBSONSLZ 15/06/2013 12:15:59
#424841
Bom Dia a todos!!!

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,
FILMAN 16/06/2013 12:37:34
#424849
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
ROBSONSLZ 16/06/2013 13:21:11
#424852
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...
OMAR2011 16/06/2013 13:39:33
#424854
Resposta escolhida
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
ROBSONSLZ 16/06/2013 21:23:06
#424858
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,


ROBSONSLZ 16/06/2013 21:48:22
#424859
Olá...

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,
FILMAN 17/06/2013 12:30:28
#424875
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!!!
ROBSONSLZ 17/06/2013 13:52:41
#424883
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!
OMAR2011 17/06/2013 18:57:04
#424899
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.
ROBSONSLZ 19/06/2013 22:18:07
#424999
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.
OMAR2011 19/06/2013 23:03:30
#425001
Eu não uso deste tipo descrito,e sim pego apenas o código faço uma consulta e preencho as caixas de texto.
Bem simples,mas uso o Listview por ser mais rápido.

Tópico encerrado , respostas não são mais permitidas