none
Busqueda Filtrada por textbox... RRS feed

  • Pregunta

  • Hola Gente ! una nueva duda ya logre hacer que me busque por coincidencia lo que ingreso en un Textbox.. ahora mi duda es una ves que me muestra los resultados en el Datagridview como hago para al seleccionar el deseado me lo refleje en otros textbox.. por ejemplo 

    Busco : Pantalon levis clasico.. y que al seleccionarlo en el datagridview me refleje en textboxs las columnas de mi tabla .. 

    Producto :   Pantalon levis clasico

    Stock :15

    Detalle : etc,etc

    Precio :500

    Graciass ! espero puedan guiarme un saludo !

    Juan.

    jueves, 24 de marzo de 2016 2:42

Todas las respuestas

  • Hola,

    Primero en tu DGV activa estás propiedades

    'Selecciona toda la fila
    SelectionMode = FullRowSelect
    
    'Permitir solo seleccionar una fila
    MultiSelect = False

    Luego en el evento SelectionChanged obtienes la fila seleccionada y cargas los valores a los TextBox.

       Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged
    
            Dim fila As Integer = DataGridView1.SelectedRows(0).Index
    
            'Donde Cells(valor) -> valor representa a la columna
            'Cells(0) -> columna 1 y asi sucesivamente
            txtProducto.Text = DataGridView1.Rows(fila).Cells(0).Value
            txtStock.Text = DataGridView1.Rows(fila).Cells(1).Value
            txtDetalle.Text = DataGridView1.Rows(fila).Cells(2).Value
            txtPrecio.Text = DataGridView1.Rows(fila).Cells(3).Value
    
        End Sub

    Saludos.


    JC NaupaCrispín

    jueves, 24 de marzo de 2016 2:57
  • Hola Joel ! Gracias por responder. 

    En el Evento SelectionChanged me sale : form1.load

                                                             JfbprodBindingNavigatorSaveItem_Click

                                                             ProductoTextBox1_TextChanged   (que es el que uso para buscar)

    no entiendo como es el codigo:( soy muy nuevo.. en cells(valor) que va por ejemplo ? y en Cells(0) tambien disculpa la molestia 

     'Donde Cells(valor) -> valor representa a la columna
            'Cells(0) -> columna 1 y asi sucesivamente
            txtProducto.Text = DataGridView1.Rows(fila).Cells(0).Value
            txtStock.Text = DataGridView1.Rows(fila).Cells(1).Value
            txtDetalle.Text = DataGridView1.Rows(fila).Cells(2).Value
            txtPrecio.Text = DataGridView1.Rows(fila).Cells(3).Value
    

    jueves, 24 de marzo de 2016 3:39
  • Hola,

    En el Evento SelectionChanged me sale : form1.load

    Solo tienes que seleccionar tu DGV, ir a eventos, buscar SelectionChanged y dar doble click

    Como puedes ver mi DGV tienes 4 columnas, siempre las posiciones comienzan de 0

    Column1 -> posición 0
    Column2 -> posición 1
    Column3 -> posición 2
    Column4 -> posición 3


    'Rows(fila) ---> la fila que seleccionaste

    'Cells(0) ---> Representa a l columna, según mi DGV Column1 (posición 0) txtProducto.Text = DataGridView1.Rows(fila).Cells(0).Value

    o también puedes poner el nombre de la columna

     txtProducto.Text = DataGridView1.Rows(fila).Cells("Column1").Value

    Saludos.


    JC NaupaCrispín

    jueves, 24 de marzo de 2016 3:53
  • entonces quedaria asi ? 

    Dim fila As Integer = DataGridView1.SelectedRows(0).Index

    prodtextbox.text = DatagridView1.rows(fila).cells ("Productos").value
    Stocktextbox.text =DatagridView1.rows(fila).cells ("Stock").value

    y asi hasta completar mis columnas ?
    jueves, 24 de marzo de 2016 4:02
  • Hola,

    Si, siempre y cuando hayas declarado así tus nombres de columnas.

    Pruébalo y comentas como te va.

    Saludos.


    JC NaupaCrispín

    jueves, 24 de marzo de 2016 4:05
  • :S me dice que no encuentra una columna llamada Producto pero ese es el nombre que tienen ... 
    jueves, 24 de marzo de 2016 4:17
  • Hola,

    Puedes intentar poniendo los índices (0, 1 , 2, etc),

    Tus columnas los agregas en tiempo de diseño??, porque es diferente el nombre de columna y el texto que se muestra.

    Si no es la solución deberías mostrar como llenas los datos, datatable, lista, etc..

    Saludos.


    JC NaupaCrispín

    jueves, 24 de marzo de 2016 4:22
  • Hola ! tengo las tablas echas en access .. 

    mira intente asi ..  

     Dim fila As Integer = JfbprodDataGridView.SelectedRows(0).Index
            
            ProductoTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(0).Value
            DetalleRichTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(1).Value
            StockTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(2).Value
            Precio__TextBox.Text = JfbprodDataGridView.Rows(fila).Cells(3).Value

    refleja los datos en los textbox pero al querer buscar algo sale ese error :    Dim fila As Integer = JfbprodDataGridView.SelectedRows(0).Index

    El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index



    • Editado JuanJfb jueves, 24 de marzo de 2016 4:38
    jueves, 24 de marzo de 2016 4:29
  • Hola,

    Ese error es porque seguro al buscar, tu DGV se queda sin filas, y el seleccionado se pierde y queda en -1, valida antes de obtener los datos.

            If JfbprodDataGridView.Rows.Count > 0 Then
    
                Dim fila As Integer = JfbprodDataGridView.SelectedRows(0).Index
    
                ProductoTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(0).Value
                DetalleRichTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(1).Value
                StockTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(2).Value
                Precio__TextBox.Text = JfbprodDataGridView.Rows(fila).Cells(3).Value
    
            End If

    Saludos.


    JC NaupaCrispín

    jueves, 24 de marzo de 2016 4:43
  • sigue igual .. es al querer escribir algo para buscar al colocar la primer letra ya tira el error. se ven en la datagrid todo lo que contiene la tabla y los puedo seleccionar
    jueves, 24 de marzo de 2016 4:50
  • Hola,

    Entonces pon tu código del TextChanged, para ver como tomas filtras la data.

    Saludos.


    JC NaupaCrispín

    jueves, 24 de marzo de 2016 4:58
  • te paso todo el form3...

    Imports System.Data.OleDb
    
    Public Class Form3
        Dim con As New OleDb.OleDbConnection("PROVIDER = MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE = C:\DATABASES\jfb.mdb")
    
    
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: This line of code loads data into the 'JfbDataSet.jfbprod' table. You can move, or remove it, as needed.
            Me.JfbprodTableAdapter.Fill(Me.JfbDataSet.jfbprod)
            CARGADATOS()
    
        End Sub
    
    
        Sub CARGADATOS()
            Dim carga As New OleDbDataAdapter("SELECT * FROM jfbprod", con)
            Dim ds As New DataSet
            carga.Fill(ds, "jfbprod")
            JfbprodDataGridView.DataSource = ds.Tables("jfbprod")
    
        End Sub
    
        Sub FILTRAR()
            Dim carga As New OleDbDataAdapter("SELECT * FROM jfbprod WHERE Producto LIKE '%" & ProductoTextBox1.Text & "%'", con)
    
            Dim ds As New DataSet
            carga.Fill(ds, "jfbprod")
            JfbprodDataGridView.DataSource = ds.Tables("jfbprod")
    
        End Sub
    
        Private Sub JfbprodBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Me.Validate()
            Me.JfbprodBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.JfbDataSet)
    
        End Sub
    
        
    
        
        Private Sub JfbprodDataGridView_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles JfbprodDataGridView.SelectionChanged
            Me.JfbprodTableAdapter.Fill(Me.JfbDataSet.jfbprod)
            If JfbprodDataGridView.Rows.Count > 0 Then
                Dim fila As Integer = JfbprodDataGridView.SelectedRows(0).Index
                IdTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(0).Value
                ProductoTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(1).Value
                DetalleRichTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(2).Value
                StockTextBox.Text = JfbprodDataGridView.Rows(fila).Cells(3).Value
                Precio__TextBox.Text = JfbprodDataGridView.Rows(fila).Cells(4).Value
    
    
            End If
        End Sub
    
        Private Sub ProductoTextBox1_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProductoTextBox1.TextChanged
            FILTRAR()
    
        End Sub
    End Class
    

    jueves, 24 de marzo de 2016 5:01