SISTEMA DE PESQUISA

ACLEMPES 04/03/2011 15:45:09
#367264
Boas galera olha eu aqui enchendo de novo, ja procurei aqui no forum porem não achei nada para me ajudar. tenho 2 forms um de pesquise e um onde exib os dados ja tentei varios codigos porem não estou consequindo fazer funcionar tipo no forme de pesquisa eu digito o nome do equipamento e quando clico no botão pesquisar ele me retorna o form 2 com os campos preenchidos

banco de dados foi feito no acces
TECLA 04/03/2011 16:58:48
#367270
Experimente criar um MéTODO CONSTRUTOR no FORM que irá mostrar os valores com base no critério de pesquisa.

No FORM1, você escreve o código abaixo no evento CLICK do botão PESQUISAR:
Dim _form As New Form2(TextBox1.Text)
_form.Show()


No FORM2:
Public Class Form2
Private _Parametro As String

Public Sub New(ByVal Param As String)
InitializeComponent()
_Parametro = Param
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = _Parametro
End Sub
End Class


Pronto! Pra testar, digite um valor no TEXTBOX, e clique no botão de pesquisa.
Perceba que o FORM2 ao abrir, mostrará o texto digitado na BARRA DE TÍTULO.
ACLEMPES 04/03/2011 18:01:51
#367282
tecla tentei fazer do jeito que vc falow mas deu erro vou postar a imagem da outra tela onde meus forms chamam consplaca.vb e placa.vb tenho um banco de dados feitos no access chamado gerencia.mdb com a tabela equip os nomes dos campos são iquais os que aparecem na imagem tipo digito onome do equipamernto ai sera feita uma busca no banco de dados e retorna o resultado no form palca.vb
TECLA 04/03/2011 18:26:07
#367285
Qual o erro?
WEBSTERGONTIJO 05/03/2011 07:31:39
#367301
Amigo tente o seguinte


cria um modulo nele vc cria as variasveis publicas


ai na tela de pesquisa , vc quando achar o resultado procurado vc manda ele jogar o resultado em uma variavel publica,

ai depois vc volta para o form chamador do form de pesquisa e pega os valores que ta na varialvel publica e joga para seu form

logo em seguinda vc limpa a varialvel publica.....


outra coisa abra o formulario da pesquisa em modal, para que ele pare o form chamador para abrir o form de pesquisa, para que ele pare o codigo ali ate que vc feche o form de pesquisa....




faço assim, se tiveres duvida, ou se achar um geito mas facil, me avisa!!!!!!



abraços

se ajudo encerre o topico!!!!
ACLEMPES 10/03/2011 13:29:07
#367671
amigos não to conseguindo montar o codigo de pesquisa pois ainda sou novo na linguagem de vc, visto que esse projeto é para a facu e estou vendo vb nesse semestre, se alguem puder me ajudar ja com os codigos, tipo tecla eu consegui fazer seu codigo funcionar mas ele retornou o que escrevi na caixa de texto e o que quero que retorne os dados do banco de dados se o nome do equipamento existir, sei que sou muito chato so que como fui transferido de cidade e comecei agora na facu não tenho grupo e to fazendo o projeto sozinho, ja tenho ele quase todo pronto porem so faltando mesmo essa parte da pesquisa desde ja eu agradeço pela ajuda de todos.
PEGUDO 10/03/2011 20:32:01
#367714
Resposta escolhida
Cara, é meio complicado mesmo.
tente uma Function dentro de uma Classe:

Crie uma Classe e deixe-a com o nome Class1

Na Classe coloque:

[txt-color=#0000f0]Public Class [/txt-color]Class1
[txt-color=#0000f0] Public Function [/txt-color]Pesquisar([txt-color=#0000f0]Byval[/txt-color] QualValor [txt-color=#0000f0]As String[/txt-color]) [txt-color=#0000f0]As Collection[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] RecSet [txt-color=#0000f0]As[/txt-color] ADODB.RecordSet
[txt-color=#0000f0]Dim[/txt-color] NovaColecao [txt-color=#0000f0]As New Collection[/txt-color]

[txt-color=#007100][ô]Abra sua conexão com o banco de dados aqui
[ô]Neste exemplo eu vou usar esta aqui em baixo[/txt-color]

C.Open(Conexao)

[txt-color=#007100][ô]Como você não deu nome de tabela nem por qual coluna você faz a pesquisa, eu utilizarei nomes fictícios: TABELA: tblEquipamento e PARÂMETRO: Coluna idEquipamento[/txt-color]

RecSet = C.Execute([txt-color=#e80000][Ô]SELECT * FROM tblEquipamento where idEquipamento=[ô] [Ô][/txt-color] & QualValor & [txt-color=#e80000][Ô] [ô] )[Ô][/txt-color] )

[txt-color=#007100][ô]Abaixo, Em vermelho, estão os nomes das colunas da minha tabela fictícia[/txt-color]
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]idEquipamento[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]servico[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]equipamento[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]nome[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]vizinhoA[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]portaA[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]vizinhoB[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]portaB[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]area[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]nsap[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]prestador[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]empresa[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]data[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]gerencia[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]status[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]quantPorta[Ô][/txt-color]).Value.ToString)
NovaColecao.Add(RecSet([txt-color=#e80000][Ô]obs[Ô][/txt-color]).Value.ToString)

RecSet = [txt-color=#0000f0]Nothing[/txt-color]
C.Close()

Pesquisar = NovaColecao
NovaColecao.Clear

[txt-color=#0000f0]Return[/txt-color] Pesquisar
[txt-color=#0000f0]End Function
End Class[/txt-color]

DE VOLTA AO CLICK DO BOTÃO UM:

[txt-color=#0000f0]Private Sub[/txt-color] Button1_Click([txt-color=#0000f0]byval[/txt-color] .........) [txt-color=#0000f0]Handles[/txt-color] Button1.Click
[txt-color=#0000f0]Dim[/txt-color] ObjClasse [txt-color=#0000f0]As New[/txt-color] Class1
[txt-color=#0000f0]Dim[/txt-color] Dados [txt-color=#0000f0]As New Collection[/txt-color]

Dados = ObjClasse.Pesquisar(Textbox1.Text)

[txt-color=#007100][ô]VOU USAR NOMES FIVTÍCIOS PARA AS TEXTBOXES, MUDE PARA OS NOMES DAS SUAS[/txt-color]

txtIdEquipamento.Text = Dados(0)
txtServico.Text = Dados(1)
txtEquipamento.Text = Dados(2)
txtNome.Text = Dados(3)
txtVizinhoA.Text = Dados(4)
txtPortaA.Text = Dados(5)
txtVizinhoB.Text = Dados(6)
txtPortaB.Text = Dados(7)
txtArea.Text = Dados(8)
txtNSAP.Text = Dados(9)
txtPrestador.Text = Dados(10)
txtEmpresa.Text = Dados(11)
txtData.Text = Dados(12)
txtGerencia.Text = Dados(13)
txtStatus.Text = Dados(14)
txtIQuantPorta.Text = Dados(15)
txtObs.Text = Dados(16)

[txt-color=#0000f0]End Sub[/txt-color]

Cara, Eu to fazendo este exemplo sem o VB aqui no notebook, então qualquer problema poste aí
E não se esqueça de mudar os meus nomes fictícios para os nomes que você colocou em seus campos e na tabela do seu banco de dados.

Espero ter ajudado.
ACLEMPES 11/03/2011 13:23:52
#367773
como ficaria esse codigo usando oledb que é o que estou usando no meu projeto
ACLEMPES 11/03/2011 15:13:53
#367799
PEGUDO
blz deixa tirar uma duvida
primeiro o codigo ficou assim

Imports ADODB
Public Class Class1
Public Function Pesquisar(ByVal QualValor As String) As Collection
Dim RecSet As ADODB.RecordSet
Dim NovaColecao As New Collection

[txt-color=#e80000]C.Open(Conexao)[/txt-color]

RecSet = C.Execute([Ô]SELECT * FROM equip where equip =[ô] [Ô] & QualValor & [Ô] [ô] )[Ô])

[ô]Abaixo, Em vermelho, estão os nomes das colunas da minha tabela fictícia
NovaColecao.Add(RecSet([Ô]id_equip[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]tiposervico[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]tipoequip[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]equip[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]vizinhoa[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]portaa[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]vizinhob[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]portab[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]area[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]nsap[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]prestador[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]empresa[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]data[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]tecgerencia[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]status[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]portaquant[Ô]).Value.ToString)
NovaColecao.Add(RecSet([Ô]obs[Ô]).Value.ToString)

RecSet = Nothing
C.Close()

Pesquisar = NovaColecao
NovaColecao.Clear()

Return Pesquisar
End Function
End Class
ele não esta reconhecendo a letra C ela é uma variavel que tenho que declarar?

segundo no form 1 onde tem o botão pesquisar coloco aquele segundo codido mas como faço para retornar no form 2 pois la ele retornaria no fom 1 mesmo
PEGUDO 11/03/2011 20:57:51
#367845
Como eu expliquei, no ponto onde tem C.Open(Conexao) era pra você abrir a SUA conexão com o BD, Ali eu usei esta só para exemplo.
Mas ficaria assim:

[txt-color=#0000f0]Dim[/txt-color] C [txt-color=#0000f0]As New [/txt-color]ADODB.Connection

C.Open(Conexao)

Onde Conexao seria minha string de conexão com o BD

Você pode criar uma Collection pública (pode ser no módulo mesmo) que seja visível em toda solução.
Então, onde eu coloquei:

[txt-color=#0000f0]Private Sub [/txt-color]Button1_Click([txt-color=#0000f0]byval[/txt-color] .........) Handles Button1.Click
[txt-color=#0000f0]Dim[/txt-color] ObjClasse [txt-color=#0000f0]As New [/txt-color]Class1
[txt-color=#0000f0]Dim[/txt-color] Dados [txt-color=#0000f0]As New [/txt-color]Collection

Você exclui: [txt-color=#0000f0]Dim[/txt-color] Dados [txt-color=#0000f0]As New Collection[/txt-color]
Coloque no módulo: [txt-color=#0000f0]Public[/txt-color] Dados [txt-color=#0000f0]As New Collection[/txt-color]

No botão ficaria assim:

[txt-color=#0000f0]Private Sub [/txt-color]Button1_Click([txt-color=#0000f0]byval[/txt-color] .........) [txt-color=#0000f0]Handles[/txt-color] Button1.Click
[txt-color=#0000f0]Dim[/txt-color] ObjClasse [txt-color=#0000f0]As New [/txt-color]Class1

Dados = ObjClasse.Pesquisar(Textbox1.Text)

Form2.Show()
[txt-color=#0000f0]End Sub[/txt-color]

No Load Form2 ficaria algo como:

[txt-color=#0000f0]Private Sub [/txt-color]Form2_Load([txt-color=#0000f0]ByVal[/txt-color] sender [txt-color=#0000f0]As[/txt-color] System.Object, [txt-color=#0000f0]ByVal[/txt-color] e [txt-color=#0000f0]As[/txt-color] System.EventArgs) [txt-color=#0000f0]Handles[/txt-color] MyBase.Load
[txt-color=#0000f0]For Each [/txt-color]Caixa [txt-color=#0000f0]As[/txt-color] TextBox [txt-color=#0000f0]In Me[/txt-color].Controls.OfType([txt-color=#0000f0]Of[/txt-color] TextBox)()[txt-color=#007100] [ô]Aqui vai limpar todas as Textboxes caso contenham algum conteúdo[/txt-color]
[txt-color=#0000f0]If Not [/txt-color]Caixa.Text =[txt-color=#e80000] [Ô][Ô] [/txt-color][txt-color=#0000f0]Then[/txt-color] Caixa.Text =[txt-color=#e80000] [Ô][Ô][/txt-color]
[txt-color=#0000f0]Next[/txt-color]

txtIdEquipamento.Text = Dados(0)
txtServico.Text = Dados(1)
txtEquipamento.Text = Dados(2)
txtNome.Text = Dados(3)
txtVizinhoA.Text = Dados(4)
txtPortaA.Text = Dados(5)
txtVizinhoB.Text = Dados(6)
txtPortaB.Text = Dados(7)
txtArea.Text = Dados(8)
txtNSAP.Text = Dados(9)
txtPrestador.Text = Dados(10)
txtEmpresa.Text = Dados(11)
txtData.Text = Dados(12)
txtGerencia.Text = Dados(13)
txtStatus.Text = Dados(14)
txtIQuantPorta.Text = Dados(15)
txtObs.Text = Dados(16)

[txt-color=#007100] [ô]Se você for utilizar a Collection [Ô]Dados[Ô] de novo, retire a linha abaixo pois ela limpará a collection[/txt-color]
Dados.Clear()

[txt-color=#0000f0]End Sub[/txt-color]


Volto a informar que não estou com o VB aqui, então qq coisa poste aí.
Valeu
Tópico encerrado , respostas não são mais permitidas