ricduarte Posted April 22, 2013 at 03:58 PM Report #504346 Posted April 22, 2013 at 03:58 PM boas! tenho mais um problema. tou a fazer um projeto de final de curso e queria fazer uma coisa mas nao tou a conseguri safar-me. o que queria fazer é o seguinte: tenho uma datagridview e uma caixa de pesquisa e eu queria que ao pesquisar por um só nome, me aparecessem todos os resultados que tenham esse nome. por exemplo, pesquisavba por Manuel e queria que me aparecessem todos os nomes que tenham Manuel. será que me podem ajudar??
NunoDinis Posted April 22, 2013 at 04:37 PM Report #504357 Posted April 22, 2013 at 04:37 PM O que queres é, que à medida que digitas o filtro vá sendo executado ? Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
ricduarte Posted April 22, 2013 at 04:55 PM Author Report #504363 Posted April 22, 2013 at 04:55 PM o que quero é: escrevo o nome na textbox, de seguida clico no botao para pesquisar e depois de clicar no botao queria que me aparecessem os vários resultados com o nome com que a pesquisa foi feita
NunoDinis Posted April 22, 2013 at 07:48 PM Report #504389 Posted April 22, 2013 at 07:48 PM Está bom. Já tens algum código ? Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
ricduarte Posted April 22, 2013 at 08:26 PM Author Report #504396 Posted April 22, 2013 at 08:26 PM o código que tenho é pa pesquisar um so valor Dim query As String = "SELECT * FROM Clientes WHERE Nome = @Nome" Dim command As New OleDbCommand(query, ConnectionString) command.Parameters.Add("@Nome", OleDbType.Char).Value = pesquisanome.Text Dim DataAdapter As New OleDbDataAdapter(command) Dim MyData As New DataSet DataAdapter.Fill(MyData, "Clientes") ConnectionString.Open() Dim dr As OleDbDataReader = command.ExecuteReader(CommandBehavior.SingleRow) If pesquisanome.Text = "" Then MsgBox("Nenhum nome foi inserido!", vbExclamation, "Erro!") GoTo Loop_Strat End If If dr.HasRows Then dr.Read() idtb.Text = dr.Item(0).ToString nometb.Text = dr.Item(1).ToString moradatb.Text = dr.Item(2).ToString cptb.Text = dr.Item(3).ToString localidadetb.Text = dr.Item(4).ToString telefonetb.Text = dr.Item(5).ToString telemoveltb.Text = dr.Item(6).ToString contribuintetb.Text = dr.Item(7).ToString Me.tabela.DataSource = MyData.Tables("Clientes") Else Dim testMsg As Integer testMsg = MsgBox("Registo não encontrado!", vbExclamation, "Erro!") End If ConnectionString.Close() command = Nothing Loop_Strat:
NunoDinis Posted April 22, 2013 at 08:55 PM Report #504400 Posted April 22, 2013 at 08:55 PM Ao invés de =, usa LIKE. http://www.w3schools.com/sql/sql_like.asp Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
ricduarte Posted April 23, 2013 at 08:31 AM Author Report #504442 Posted April 23, 2013 at 08:31 AM ah so mais uma coisinha, esqueci-me de dizer que a base de dados é em access
bezegol Posted April 23, 2013 at 10:06 AM Report #504463 Posted April 23, 2013 at 10:06 AM Dim query As String = "SELECT * FROM Clientes WHERE [Nome] LIKE ?+'&' "
ricduarte Posted April 23, 2013 at 01:30 PM Author Report #504532 Posted April 23, 2013 at 01:30 PM ja tentei das duas formas e nao deu resultado
NunoDinis Posted April 23, 2013 at 02:58 PM Report #504542 Posted April 23, 2013 at 02:58 PM "SELECT * FROM Clientes WHERE Nome = Like '%" & pesquisanome.Text & "%'" Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
ricduarte Posted April 24, 2013 at 03:16 PM Author Report #504689 Posted April 24, 2013 at 03:16 PM (edited) boas! NunoDinis ja experimentei alterar o meu codigo por aquele que me deste mas mesmo assim deu erro. ja nao sei o que fazer Edited April 24, 2013 at 03:17 PM by ricduarte
bioshock Posted April 24, 2013 at 04:21 PM Report #504696 Posted April 24, 2013 at 04:21 PM Estás à espera que adivinhemos qual é o erro?
ricduarte Posted May 7, 2013 at 02:57 PM Author Report #506116 Posted May 7, 2013 at 02:57 PM quando faço a pesquisa, ja com o codigo colocado, o VB dá-me um erro a dizer que a OleDbException não foi manipulada. alguem sabe o que fazer? nao tenho conseguido encontrar nada em outros foruns na net
NunoDinis Posted May 8, 2013 at 08:01 AM Report #506210 Posted May 8, 2013 at 08:01 AM Coloca o código que tens aqui, com as tags direitinhas, senão é muito complicado para interpretarmos o código. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
ricduarte Posted May 8, 2013 at 09:02 AM Author Report #506221 Posted May 8, 2013 at 09:02 AM Private Sub pesquisa_Click(sender As Object, e As EventArgs) Handles pesquisa.Click Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Ricardo\Desktop\Agrigest\Agrigest.accdb") Dim query As String = "SELECT * FROM Clientes WHERE Nome = LIKE '%" & pesquisanome.text & "%'" Dim command As New OleDbCommand(query, ConnectionString) command.Parameters.Add("@Nome", OleDbType.Char).Value = pesquisanome.Text Dim DataAdapter As New OleDbDataAdapter(command) Dim MyData As New DataSet DataAdapter.Fill(MyData, "Clientes") ConnectionString.Open() Dim dr As OleDbDataReader = command.ExecuteReader(CommandBehavior.SingleRow) If pesquisanome.Text = "" Then MsgBox("Nenhum nome foi inserido!", vbExclamation, "Erro!") GoTo Loop_Strat End If ConnectionString.Close() command = Nothing Loop_Strat:
Tiago Simões Marques Posted May 26, 2013 at 10:42 PM Report #509084 Posted May 26, 2013 at 10:42 PM Private Sub pesquisa_Click(sender As Object, e As EventArgs) Handles pesquisa.Click Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Ricardo\Desktop\Agrigest\Agrigest.accdb") Dim query As String = "SELECT * FROM Clientes WHERE Nome = LIKE '%" & pesquisanome.text & "%'" Dim command As New OleDbCommand(query, ConnectionString) command.Parameters.Add("@Nome", OleDbType.Char).Value = pesquisanome.Text Dim DataAdapter As New OleDbDataAdapter(command) Dim MyData As New DataSet DataAdapter.Fill(MyData, "Clientes") ConnectionString.Open() Dim dr As OleDbDataReader = command.ExecuteReader(CommandBehavior.SingleRow) If pesquisanome.Text = "" Then MsgBox("Nenhum nome foi inserido!", vbExclamation, "Erro!") GoTo Loop_Strat End If ConnectionString.Close() command = Nothing Loop_Strat: Acho que não é preciso tanta coisa, a uma linha de código que te filtra directo no datagridview. Se quiseres tenho para aqui algures. Tiago Simões Marques
bioshock Posted May 27, 2013 at 09:28 AM Report #509110 Posted May 27, 2013 at 09:28 AM A tua query está mal..estás-lhe a dizer (Nome = Like) e deve ser (Nome LIKE), entre outras coisas: Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Ricardo\Desktop\Agrigest\Agrigest.accdb") Dim query As String = "SELECT * FROM Clientes WHERE Nome LIKE '%@nome%'" Dim command As New OleDbCommand(query, ConnectionString) command.Parameters.Add("@nome", OleDbType.Char).Value = pesquisanome.Text connection.Open() Dim reader As SqlDataReader = command.ExecuteReader() While reader.Read MsgBox(reader(0).ToString()) End While connection.Close()
ricduarte Posted July 3, 2013 at 09:19 AM Author Report #516940 Posted July 3, 2013 at 09:19 AM Boas pessoal! já tentei todas as soluções que foram propostas neste tópico mas infelizmente nenhuma delas funcionou. Já nao sei mais o que fazer! Preciso URGENTEMENTE de ajuda!!!
whize13 Posted July 3, 2013 at 09:58 AM Report #516963 Posted July 3, 2013 at 09:58 AM SELECT * FROM Clientes WHERE Nome LIKE '%" & pesquisanome.text & "%'" tenta assim, só tens uma tabela ?
ricduarte Posted July 3, 2013 at 01:35 PM Author Report #517009 Posted July 3, 2013 at 01:35 PM whize13 tentei con este código e simplesmente nao fez nada, nao deu erro, nao deu nada, é como se o botão nao tivesse código.
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