BUSCA EM UM MSHFLEXGRID
Prezados,
Bom dia,
Estou com uma dúvida e gostaria da ajuda de vocês.
Estou realizando uma busca através de um textbox retornando o resultado em uma MSHFlexGrid.
Configurei na MSHFlexGrid a opção editar ao dar um duplo clique em cima da linha, a sim o sistema envia as informações para o formulário para assim o usuário editar.
Porém tenho um problema, quando faço a busca o MSHFLexGrid só aparece as linhas que contem a condição que eu digitei e com isso os valores não retornam corretamente para os campos do formulário.
o código da da flex é:
If msfrprocbanco.Col <> 1 Then
msfrprocbanco.Col = 1
End If
frmcadbanco.txtcodigo.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
msfrprocbanco.Col = msfrprocbanco.Col + 1
frmcadbanco.txtcodbanco.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
msfrprocbanco.Col = msfrprocbanco.Col + 1
frmcadbanco.txtabrbanco.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
msfrprocbanco.Col = msfrprocbanco.Col + 1
frmcadbanco.txtnomebanco.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
Unload Me
Poderiam me auxiliar neste problema?
Detalhe: quando eu abro o formulário de consulta o Flex vem preenchida com todas as informações do banco. Neste momento se eu der um duplo click em cima da linha os campos retornam para o formulário corretamente.
Bom dia,
Estou com uma dúvida e gostaria da ajuda de vocês.
Estou realizando uma busca através de um textbox retornando o resultado em uma MSHFlexGrid.
Configurei na MSHFlexGrid a opção editar ao dar um duplo clique em cima da linha, a sim o sistema envia as informações para o formulário para assim o usuário editar.
Porém tenho um problema, quando faço a busca o MSHFLexGrid só aparece as linhas que contem a condição que eu digitei e com isso os valores não retornam corretamente para os campos do formulário.
o código da da flex é:
If msfrprocbanco.Col <> 1 Then
msfrprocbanco.Col = 1
End If
frmcadbanco.txtcodigo.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
msfrprocbanco.Col = msfrprocbanco.Col + 1
frmcadbanco.txtcodbanco.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
msfrprocbanco.Col = msfrprocbanco.Col + 1
frmcadbanco.txtabrbanco.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
msfrprocbanco.Col = msfrprocbanco.Col + 1
frmcadbanco.txtnomebanco.Text = msfrprocbanco.Text [ô]Transferir dados para tela de Cadastros
Unload Me
Poderiam me auxiliar neste problema?
Detalhe: quando eu abro o formulário de consulta o Flex vem preenchida com todas as informações do banco. Neste momento se eu der um duplo click em cima da linha os campos retornam para o formulário corretamente.
Coloque sua consulta de como esta fazendo, ai o pessoal vai lhe dar
uma resposta.
Valeu.
uma resposta.
Valeu.
Bom dia,
Estou fazendo a consulta na opção change do textbox, conforme abaixo:
Private Sub txtprocbanco_Change()
Dim CN_ProcBanco As New ADODB.Connection
Dim rsSelecaoBancoProcBanco As New ADODB.Recordset
Dim cnnComandoBanco_ProcBanco As New ADODB.Command
Dim ResultAbreviatura As String
CN_ProcBanco.Provider = [Ô]SQLOLEDB[Ô] [ô] Provedor de acesso ao SQL Server
CN_ProcBanco.Properties([Ô]Data Source[Ô]).Value = [Ô]ROGERIO-PC\SQLEXPRESS2008[Ô] [ô]Nome da Maquina\Instancia onde está instalado o BD
CN_ProcBanco.Properties([Ô]Initial Catalog[Ô]).Value = [Ô]SYSCONTROL[Ô] [ô]Nome do BD
CN_ProcBanco.Properties([Ô]User ID[Ô]).Value = [Ô]SYSCONTROL[Ô] [ô]Usuário para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Properties([Ô]Password[Ô]).Value = [Ô]sysdba[Ô] [ô]Senha para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Open [ô] Abrindo a conexão
Set rsSelecaoBancoProcBanco = New ADODB.Recordset
Set rsSelecaoBancoProcBanco.ActiveConnection = CN_ProcBanco
ResultAbreviatura = txtprocbanco.Text
If txtprocbanco.Text = [Ô][Ô] Then
msfrprocbanco.Rows = 2
[ô]rsSelecaoBancoProcBanco.Open [Ô]SELECT * FROM BANCO[Ô], CN_ProcBanco, adOpenStatic, adLockOptimistic
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 0) = [Ô][Ô]
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 1) = [Ô][Ô]
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 2) = [Ô][Ô]
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 3) = [Ô][Ô]
msfrprocbanco.Rows = msfrprocbanco.Rows - 1
Me.Caption = [Ô]Buscar Cliente[Ô]
Exit Sub
End If
msfrprocbanco.Rows = 2
rsSelecaoBancoProcBanco.Open [Ô]SELECT * FROM BANCO WHERE ABREVIATURA LIKE [ô][Ô] & txtprocbanco.Text & [Ô]%[ô][Ô], CN_ProcBanco, adOpenStatic, adLockOptimistic
Do While Not rsSelecaoBancoProcBanco.EOF
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 0) = rsSelecaoBancoProcBanco.Fields(0).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 1) = rsSelecaoBancoProcBanco.Fields(1).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 2) = rsSelecaoBancoProcBanco.Fields(2).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 3) = rsSelecaoBancoProcBanco.Fields(3).Value
msfrprocbanco.Rows = msfrprocbanco.Rows + 1
rsSelecaoBancoProcBanco.MoveNext
Loop
msfrprocbanco.Rows = msfrprocbanco.Rows - 1
regContador = CStr(rsSelecaoBancoProcBanco.RecordCount)
If msfrprocbanco.Rows = 2 Then
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
End If
End Sub
Estou fazendo a consulta na opção change do textbox, conforme abaixo:
Private Sub txtprocbanco_Change()
Dim CN_ProcBanco As New ADODB.Connection
Dim rsSelecaoBancoProcBanco As New ADODB.Recordset
Dim cnnComandoBanco_ProcBanco As New ADODB.Command
Dim ResultAbreviatura As String
CN_ProcBanco.Provider = [Ô]SQLOLEDB[Ô] [ô] Provedor de acesso ao SQL Server
CN_ProcBanco.Properties([Ô]Data Source[Ô]).Value = [Ô]ROGERIO-PC\SQLEXPRESS2008[Ô] [ô]Nome da Maquina\Instancia onde está instalado o BD
CN_ProcBanco.Properties([Ô]Initial Catalog[Ô]).Value = [Ô]SYSCONTROL[Ô] [ô]Nome do BD
CN_ProcBanco.Properties([Ô]User ID[Ô]).Value = [Ô]SYSCONTROL[Ô] [ô]Usuário para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Properties([Ô]Password[Ô]).Value = [Ô]sysdba[Ô] [ô]Senha para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Open [ô] Abrindo a conexão
Set rsSelecaoBancoProcBanco = New ADODB.Recordset
Set rsSelecaoBancoProcBanco.ActiveConnection = CN_ProcBanco
ResultAbreviatura = txtprocbanco.Text
If txtprocbanco.Text = [Ô][Ô] Then
msfrprocbanco.Rows = 2
[ô]rsSelecaoBancoProcBanco.Open [Ô]SELECT * FROM BANCO[Ô], CN_ProcBanco, adOpenStatic, adLockOptimistic
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 0) = [Ô][Ô]
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 1) = [Ô][Ô]
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 2) = [Ô][Ô]
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 3) = [Ô][Ô]
msfrprocbanco.Rows = msfrprocbanco.Rows - 1
Me.Caption = [Ô]Buscar Cliente[Ô]
Exit Sub
End If
msfrprocbanco.Rows = 2
rsSelecaoBancoProcBanco.Open [Ô]SELECT * FROM BANCO WHERE ABREVIATURA LIKE [ô][Ô] & txtprocbanco.Text & [Ô]%[ô][Ô], CN_ProcBanco, adOpenStatic, adLockOptimistic
Do While Not rsSelecaoBancoProcBanco.EOF
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 0) = rsSelecaoBancoProcBanco.Fields(0).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 1) = rsSelecaoBancoProcBanco.Fields(1).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 2) = rsSelecaoBancoProcBanco.Fields(2).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 3) = rsSelecaoBancoProcBanco.Fields(3).Value
msfrprocbanco.Rows = msfrprocbanco.Rows + 1
rsSelecaoBancoProcBanco.MoveNext
Loop
msfrprocbanco.Rows = msfrprocbanco.Rows - 1
regContador = CStr(rsSelecaoBancoProcBanco.RecordCount)
If msfrprocbanco.Rows = 2 Then
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Cliente - [Ô] & regContador & [Ô] clientes encontrados[Ô]
End If
End Sub
rsSelecaoBancoProcBanco.Open [Ô]SELECT * FROM BANCO WHERE ABREVIATURA LIKE [ô][Ô] & txtprocbanco.Text & [Ô]%[ô][Ô], CN_ProcBanco, adOpenStatic, adLockOptimistic
Do While Not rsSelecaoBancoProcBanco.EOF
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 0) = rsSelecaoBancoProcBanco.Fields(0).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 1) = rsSelecaoBancoProcBanco.Fields(1).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 2) = rsSelecaoBancoProcBanco.Fields(2).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 3) = rsSelecaoBancoProcBanco.Fields(3).Value
[txt-color=#e80000]Text2.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 0)
Text3.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)[/txt-color]
msfrprocbanco.Rows = msfrprocbanco.Rows + 1
rsSelecaoBancoProcBanco.MoveNext
Tente assim.
Tem forma mais simples de fazer com menos códigos.
Procure que tu vai achar.
Do While Not rsSelecaoBancoProcBanco.EOF
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 0) = rsSelecaoBancoProcBanco.Fields(0).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 1) = rsSelecaoBancoProcBanco.Fields(1).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 2) = rsSelecaoBancoProcBanco.Fields(2).Value
msfrprocbanco.TextMatrix(msfrprocbanco.Rows - 1, 3) = rsSelecaoBancoProcBanco.Fields(3).Value
[txt-color=#e80000]Text2.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 0)
Text3.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)[/txt-color]
msfrprocbanco.Rows = msfrprocbanco.Rows + 1
rsSelecaoBancoProcBanco.MoveNext
Tente assim.
Tem forma mais simples de fazer com menos códigos.
Procure que tu vai achar.
Bom dia Omar,
Primeiramente feliz ano novo para ti.
Com relação a sua resposta..não intendi muito bem com funciona.
Em meu projeto só tem um textbox responsável pela consulta, sendo ele txtprocbanco
Seguindo sua orientação eu coloquei assim:
txtprocbanco.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 0)
txtprocbanco.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
porem quando eu vou digitar alguma coisa no textbox de pesquisa já aparece a palavra código, acho que está buscando o nome da coluna no banco.
Poderia me auxiliar mais uma vez?
Primeiramente feliz ano novo para ti.
Com relação a sua resposta..não intendi muito bem com funciona.
Em meu projeto só tem um textbox responsável pela consulta, sendo ele txtprocbanco
Seguindo sua orientação eu coloquei assim:
txtprocbanco.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 0)
txtprocbanco.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
porem quando eu vou digitar alguma coisa no textbox de pesquisa já aparece a palavra código, acho que está buscando o nome da coluna no banco.
Poderia me auxiliar mais uma vez?
Aproveitei seu código e fiz de forma mais simples.
Private Sub Text1_Change()
Dim CN_ProcBanco As New ADODB.Connection
Dim rsSelecaoBancoProcBanco As New ADODB.Recordset
Dim cnnComandoBanco_ProcBanco As New ADODB.Command
Dim ResultAbreviatura As String
CN_ProcBanco.Provider = [Ô]SQLOLEDB.1[Ô] [ô] Provedor de acesso ao SQL Server
CN_ProcBanco.Properties([Ô]Data Source[Ô]).Value = [Ô]OMAR[Ô] [ô]Nome da Maquina\Instancia onde está instalado o BD
CN_ProcBanco.Properties([Ô]Initial Catalog[Ô]).Value = [Ô]Bras2014[Ô] [ô]Nome do BD
CN_ProcBanco.Properties([Ô]Integrated Security[Ô]).Value = [Ô]SSPI[Ô] [ô]Usuário para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Properties([Ô]Persist Security Info[Ô]).Value = [Ô]False[Ô] [ô]Senha para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Open [ô] Abrindo a conexão
CN_ProcBanco.CursorLocation = adUseClient
Set rsSelecaoBancoProcBanco = New ADODB.Recordset
Set rsSelecaoBancoProcBanco.ActiveConnection = CN_ProcBanco
rsSelecaoBancoProcBanco.Open [Ô]Select * From Usuarios Where NomeUsuario LIKE [ô][Ô] & Text1.Text & [Ô]%[ô] [Ô]
Set msfrprocbanco.DataSource = rsSelecaoBancoProcBanco
Text2.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
Text3.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 2)
rsSelecaoBancoProcBanco.Close
Set rsSelecaoBancoProcBanco = Nothing
End Sub
Private Sub Text1_Change()
Dim CN_ProcBanco As New ADODB.Connection
Dim rsSelecaoBancoProcBanco As New ADODB.Recordset
Dim cnnComandoBanco_ProcBanco As New ADODB.Command
Dim ResultAbreviatura As String
CN_ProcBanco.Provider = [Ô]SQLOLEDB.1[Ô] [ô] Provedor de acesso ao SQL Server
CN_ProcBanco.Properties([Ô]Data Source[Ô]).Value = [Ô]OMAR[Ô] [ô]Nome da Maquina\Instancia onde está instalado o BD
CN_ProcBanco.Properties([Ô]Initial Catalog[Ô]).Value = [Ô]Bras2014[Ô] [ô]Nome do BD
CN_ProcBanco.Properties([Ô]Integrated Security[Ô]).Value = [Ô]SSPI[Ô] [ô]Usuário para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Properties([Ô]Persist Security Info[Ô]).Value = [Ô]False[Ô] [ô]Senha para conexão no BD no SQL SERVER 2008
CN_ProcBanco.Open [ô] Abrindo a conexão
CN_ProcBanco.CursorLocation = adUseClient
Set rsSelecaoBancoProcBanco = New ADODB.Recordset
Set rsSelecaoBancoProcBanco.ActiveConnection = CN_ProcBanco
rsSelecaoBancoProcBanco.Open [Ô]Select * From Usuarios Where NomeUsuario LIKE [ô][Ô] & Text1.Text & [Ô]%[ô] [Ô]
Set msfrprocbanco.DataSource = rsSelecaoBancoProcBanco
Text2.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
Text3.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 2)
rsSelecaoBancoProcBanco.Close
Set rsSelecaoBancoProcBanco = Nothing
End Sub
Eu não intendi esse Text2.Text e Text3.Text.
O que seria?
No caso do meu projeto só realizo a busca em uma texbox no caso o text1.text.
O que seria?
No caso do meu projeto só realizo a busca em uma texbox no caso o text1.text.
O que é isto no seu formulário.
frmcadbanco.txtcodigo.Text
frmcadbanco.txtcodbanco.Text
frmcadbanco.txtabrbanco.Text
frmcadbanco.txtnomebanco.Text
Você quer que apareça a sua pesquisa nas caixas de texto.
Então.
frmcadbanco.txtcodigo.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
frmcadbanco.txtcodbanco.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 2)
E assim sucessivamente.
Text2.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
Text3.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 2)
Isto faz parte do meu formulário de teste.
Coloque isto para ver como se faz.
frmcadbanco.txtcodigo.Text
frmcadbanco.txtcodbanco.Text
frmcadbanco.txtabrbanco.Text
frmcadbanco.txtnomebanco.Text
Você quer que apareça a sua pesquisa nas caixas de texto.
Então.
frmcadbanco.txtcodigo.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
frmcadbanco.txtcodbanco.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 2)
E assim sucessivamente.
Text2.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 1)
Text3.Text = msfrprocbanco.TextMatrix(msfrprocbanco.Row, 2)
Isto faz parte do meu formulário de teste.
Coloque isto para ver como se faz.
Funcionou mais do que perfeito Omar.
Muito obrigado mesmo pelo apoio e feliz ano novo para você e sua famÃlia.
Muito obrigado mesmo pelo apoio e feliz ano novo para você e sua famÃlia.
Tópico encerrado , respostas não são mais permitidas