Blue_Wings Posted April 25, 2013 at 05:52 PM Report #504827 Posted April 25, 2013 at 05:52 PM (edited) 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 April 25, 2013 at 10:41 PM by Blue_Wings
Leonardo Pereira Posted April 25, 2013 at 06:02 PM Report #504830 Posted April 25, 2013 at 06:02 PM O que queres é que ao escreveres na textbox 1 e depois ao carregar no botao OK vá para a posição 1 ?
Blue_Wings Posted April 25, 2013 at 06:43 PM Author Report #504835 Posted April 25, 2013 at 06:43 PM (edited) 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 April 25, 2013 at 06:43 PM by Blue_Wings
Leonardo Pereira Posted April 25, 2013 at 07:00 PM Report #504837 Posted April 25, 2013 at 07:00 PM estas a usar bindingsource ?
Blue_Wings Posted April 25, 2013 at 07:34 PM Author Report #504839 Posted April 25, 2013 at 07:34 PM 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.
Leonardo Pereira Posted April 25, 2013 at 09:09 PM Report #504845 Posted April 25, 2013 at 09:09 PM solução: Tb..BindingSoure.Position = Tb..BindingSource.Find("ID... = '" & TextBox.. "'") Podes meter no evento TextChanged ou num botão
Blue_Wings Posted April 25, 2013 at 09:23 PM Author Report #504849 Posted April 25, 2013 at 09:23 PM (edited) 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 April 25, 2013 at 09:40 PM by Blue_Wings
Leonardo Pereira Posted April 25, 2013 at 09:53 PM Report #504857 Posted April 25, 2013 at 09:53 PM 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
Blue_Wings Posted April 25, 2013 at 09:55 PM Author Report #504858 Posted April 25, 2013 at 09:55 PM (edited) 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 April 25, 2013 at 10:39 PM by Blue_Wings
Leonardo Pereira Posted April 25, 2013 at 10:04 PM Report #504861 Posted April 25, 2013 at 10:04 PM (edited) 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 April 25, 2013 at 10:04 PM by Leonardo Pereira
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now