Jump to content
Blue_Wings

[Resolvido] Pesquisa em Textbox com botão, retorna registos da BD noutras textbobx´s

Recommended Posts

Blue_Wings

Boas tardes a todos,

Tenho o seguinte código que funciona para pesquisar através de uma combobox e retornar os valores da base de dados nessa posição para as outras textbox´s que tenho.

Exemplo:

Private Sub btnOKNumero_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOKNumero.Click
 Dim pesquisaP As Integer

 pesquisaP = Me.cboNumP.SelectedIndex
 With Me.BindingContext(Me.DsProcessos1, "Processos")
	 .Position = pesquisaP
 End With
End Sub

Alguém me pode dizer como faço uma pesquisa deste género mas para utilizar uma textbox validada premindo num botão (para usar o que foi inserido ai e retornar a posição em que está registada da base de dados, mostrando esses mesmos dados nas outras textbox que têm databinds?)

É que andei a pesquisar e não consegui encontrar forma de arranjar um "SelectedIndex" para uma textbox.

Obrigado :)

Edited by Blue_Wings

Share this post


Link to post
Share on other sites
Leonardo Pereira

O que queres é que ao escreveres na textbox 1 e depois ao carregar no botao OK vá para a posição 1 ?

Share this post


Link to post
Share on other sites
Blue_Wings

O que eu pretendia era o seguinte: tenho um Windows Form com várias texbox´s com informações de uma pessoa (nome, morada, número de empregado, etc)

Queria poder pesquisar em outra textbox por "numero de empregado" para aparecerem todos os detalhes dessa pessoa (os dados das pessoas que estou a usar estão todos na mesma tabela), caso não exista na base de dados, que retornasse uma mensagem a avisar disso.

Edited by Blue_Wings

Share this post


Link to post
Share on other sites
Blue_Wings

estas a usar bindingsource ?

Sim todas as informações das várias textbox´s estão ligadas a várias bindingsource´s até já tenho botões de navegação para o primeiro, registo seguinte, anterior e ultimo registo a funcionar, só me falta é ter uma texbox á parte (ao lado) para pesquisar e ir diretamente para a pessoa pretendida em vez de "navegar" nos registos de todas as pessoas.

Share this post


Link to post
Share on other sites
Leonardo Pereira

solução:

Tb..BindingSoure.Position = Tb..BindingSource.Find("ID... = '" & TextBox.. "'")

Podes meter no evento TextChanged ou num botão

Share this post


Link to post
Share on other sites
Blue_Wings

O que significa Tb ? Table?

Estou a tentar fazer isso mas está a dar-me alguns erros, podes dar-me um exemplo prático ?

Até agora estava a tentar assim:


Private Sub btnPNCSearchEmployeeNr_Click(sender As Object, e As EventArgs) Handles btnPNCSearchEmployeeNr.Click

 BindingSource.Position = BindingSource.Find("EMPLOYEE_NR = '" & txtbxPNCSearchByEmplyeeNr.Text"'")

End Sub

Assim não me dá erro mas também não funciona:

Private Sub btnPNCSearchEmployeeNr_Click(sender As Object, e As EventArgs) Handles btnPNCSearchEmployeeNr.Click

 PNCBindingSource.Position = PNCBindingSource.Find("EMPLOYEE_NR", txtbxPNCSearchByEmplyeeNr.Text)

End Sub

Edited by Blue_Wings

Share this post


Link to post
Share on other sites
Leonardo Pereira

Private Sub btnPNCSearchEmployeeNr_Click(sender As Object, e As EventArgs) Handles btnPNCSearchEmployeeNr.Click

 PNCBindingSource.Position = PNCBindingSource.Find("EMPLOYEE_NR", txtbxPNCSearchByEmplyeeNr.Text)

End Sub

é assim mesmo , devia funcionar

Share this post


Link to post
Share on other sites
Blue_Wings

Já funciona... mas teve de ser assim:

Private Sub btnPNCSearchEmployeeNr_Click(sender As Object, e As EventArgs) Handles btnPNCSearchEmployeeNr.Click
 With Me.BindingContext(Uniforms_SoftwareDataSet, "PNC")
	 .Position = PNCBindingSource.Find("EMPLOYEE_NR", txtbxPNCSearchByEmplyeeNr.Text)
 End With
End Sub

Por acaso sabes porquê? Só mesmo para eu ter uma ideia e tentar perceber melhor e aprender :)

Porque consegui por a funcionar mas não entendi o porquê da maneira que explicaste não funcionou.

E se eu quiser mostrar uma mensagem ao utilizador a avisar que a pesquisa que está a tentar fazer não se encontra na base de dados?

É assim:

É necessário declarar fora desta secção: Dim foundIndex As Integer

Private Sub btnPNCSearchEmployeeNr_Click(sender As Object, e As EventArgs) Handles btnPNCSearchEmployeeNr.Click
 With Me.BindingContext(Uniforms_SoftwareDataSet, "PNC")
	 foundIndex = PNCBindingSource.Find("EMPLOYEE_NR", txtbxPNCSearchByEmplyeeNr.Text)
	 If foundIndex > -1 Then
		 .Position = foundIndex
	 Else
		 MessageBox.Show("Record not found.")
	 End If
 End With
End Sub

Edited by Blue_Wings

Share this post


Link to post
Share on other sites
Leonardo Pereira

Nunca usei essa função (bindingcontext) por isso não te posso esclarecer essa duvida...

Dá de várias maneiras, mas não estou a ver a mais fácil neste caso xD

Edited by Leonardo Pereira

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.