none
Buscar y registrar desde un texbox

    Pregunta

  • Espero me puedan ayudar:

    trabajo con visual basic 2015 y una base de access, tengo un formulario con textbox y datagrid donde estoy colocando datos por ejemplo registro en un textbox el número de cédula y en el datagrid debe aparecer el número de cédula y el nombre de la persona obviamente tengo una tabla donde esta registrado cada persona con número de cédula y el nombre, no se como hacer para que muestre, espero me puedan ayudar.

    de antemano gracias

    viernes, 12 de enero de 2018 19:33

Respuestas

  • Y lo que queres es que al terminar de ingresar el texto, sin necesidad de un botón te aparezca el texto en el dtadrid?

    Adaptalo a tu access:

    'Funcion de busqueda
     Public Sub Buscar()
            conectaEjemplo()
            Try
                Dim QUERY As String = "SELECT * FROM tabla where Texto='" & textbox1.text & "'"
                Dim _adaptador = New MySqlDataAdapter(QUERY, _conectaEjemplo)
                Dim TDGV = New DataTable
                _adaptador.Fill(TDGV)
                me.DGV.DataSource = TDGV
                me.DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
                me.DGV.ReadOnly = True
                With me.DGV
                    .RowsDefaultCellStyle.BackColor = Color.LightGray
                    .AlternatingRowsDefaultCellStyle.BackColor = Color.White
                End With
                me.DGV.Columns(1).Width = 54
                me.DGV.Columns(2).Width = 75
                me.DGV.Columns(3).Width = 280
                me.DGV.Columns(4).Width = 50
                me.DGV.Columns(5).Width = 50
                me.DGV.Columns(6).Width = 50
                me.DGV.Columns(7).Width = 50
            Catch ex As Exception
            Finally
                _conectaEjemplo.Close()
            End Try
        End Sub


    esa funcion la llamas desde :

    Private Sub Textbox1_KeyPress(sender As Object, e As EventArgs) Handles Textbox1.KeyPress
    If e.KeyChar = Chr(13) Then
    Buscar()
    end if
    End Sub
    

    Al presionar la tecla ENTER llamas a la funcion y te tira el resultado en el DGV.

    Espero te sirva


    viernes, 12 de enero de 2018 19:59
  • "jedimasterxxx" escribió:

    > tengo un formulario con textbox y datagrid donde estoy colocando datos
    > por ejemplo registro en un textbox el número de cédula y en el datagrid
    > debe aparecer el número de cédula y el nombre de la persona ... no se
    > como hacer para que muestre, ...
    >
    > lo tengo asi el código pero aun no me muestra, por ultimo agregue un
    > texbox llamado Descripcion_hacienda_reg, esperando que el resultado del
    > query lo muestre en el texbox pero no me sale nada
    >
    > Dim query As String = "select * from haciendas where n_hacienda_h'" & Hacienda_regTextBox.Text & "'"

    Hola:

    Si tu intención es mostrar en el control DataGridView los registros de la tabla Haciendas donde el valor del campo n_hacienda_h se corresponda con el valor especificado en el control TextBox llamado Hacienda_regTextBox, mira a ver si el resultado es satisfactorio ejecutando el siguiente código en el evento Click de un control Button:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If (Hacienda_regTextBox.TextLength = 0) Then MessageBox.Show("No se ha especificado el valor de la Hacienda." ' Abandonar el procedimiento Return End If ' Construir la cadena de conexión con la base de ' datos de Access llamada 'plantaciones.mdb' ' Dim cadenaConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Sistemas\bases\plantaciones.mdb" Try ' Establecer una conexión con la base de datos de Access Using conexion As New OleDbConnection(cadenaConexion) ' Crear el comando que vamos a ejecutar Dim comando As OleDbCommand = conexion.CreateCommand() ' Indicamos la consulta SQL de selección que vamos a ejecutar comando.CommandText = "SELECT * FROM Haciendas " & _ "WHERE n_hacienda_h = @nombreHacienda" ' Insertar el único parámetro de entrada que necesita ' la consulta SQL de selección especificada, donde su ' valor lo tomamos del valor existente en el control ' TextBox llamado 'Hacienda_regTextBox' ' comando.Parameters.AddWithValue("@nombreHacienda", Hacienda_regTextBox.Text) ' Creamos un adaptador de datos pasándole el ' comando que hemos configurado. Dim adaptador As New OleDbDataAdapter(comando) ' Creamos un nuevo objeto DataTable Dim tdgv As New DataTable() ' Rellenamos el objeto DataTable adaptador.Fill(tdgv) ' Configuramos el control DataGridView ' Me.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.Fill Me.DataGridView1.ReadOnly = True Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.LightGray Me.DataGridView1.Columns(1).Width = 54 Me.DataGridView1.Columns(2).Width = 75 Me.DataGridView1.Columns(3).Width = 280 Me.DataGridView1.Columns(4).Width = 75 Me.DataGridView1.Columns(5).Width = 75 ' A la propiedad DataSource del control le asignamos el ' objeto DataTable que contiene los datos recuperados ' de la base de datos. ' Me.DataGridView1.DataSource = tdgv End Using ' Se cerrará y destruirá la conexión. Catch ex As Exception ' Se ha producido un error MessageBox.Show(ex.Message)

    End Try End Sub


    Si todo ha ido bien, se mostrará en el control DataGridView los registros que se correspondan con el nombre de la Hacienda especificado en el control TextBox.

    Te advierto que al utilizar el proveedor Microsoft.Jet.OLEDB.4.0 en la cadena de conexión, tu aplicación de Visual Basic la tendrás que compilar, sí o sí, para ejecutarse exclusivamente en plataformas de 32 bits (x86). Si deseas compilar el proyecto para que se pueda ejecutar en plataformas de 64 bits (x64), entonces utiliza el proveedor que aparece en la siguiente cadena de conexión:

        ' Construir la cadena de conexión con la base de
        ' datos de Access llamada 'plantaciones.mdb'
        '
        Dim cadenaConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Sistemas\bases\plantaciones.mdb"

    En este caso, ni que decir tiene que el equipo donde se vaya a ejecutar tu aplicación necesitará tener instalada la versión de 64 bits del proveedor 'Microsoft.ACE.OLEDB.12.0'.

    Eso es todo.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    martes, 16 de enero de 2018 8:20
    Moderador
  • Conecta ejemplo es la conexión a tu base de datos access

     Public Sub conectaEjemplo()
            Try
                _cadenaEjemplo= ("user id=nombre;password=clave;database=BaseDeDatos")
                _conectaEjemplo= New OdbcConnection(_cadenaEjemplo)
            Catch ex As odbcException
                MessageBox.Show(ex.Message)
            Finally
                _conectaEjemplo.Close()
            End Try
        End Sub




    viernes, 12 de enero de 2018 20:36

Todas las respuestas

  • Y lo que queres es que al terminar de ingresar el texto, sin necesidad de un botón te aparezca el texto en el dtadrid?

    Adaptalo a tu access:

    'Funcion de busqueda
     Public Sub Buscar()
            conectaEjemplo()
            Try
                Dim QUERY As String = "SELECT * FROM tabla where Texto='" & textbox1.text & "'"
                Dim _adaptador = New MySqlDataAdapter(QUERY, _conectaEjemplo)
                Dim TDGV = New DataTable
                _adaptador.Fill(TDGV)
                me.DGV.DataSource = TDGV
                me.DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
                me.DGV.ReadOnly = True
                With me.DGV
                    .RowsDefaultCellStyle.BackColor = Color.LightGray
                    .AlternatingRowsDefaultCellStyle.BackColor = Color.White
                End With
                me.DGV.Columns(1).Width = 54
                me.DGV.Columns(2).Width = 75
                me.DGV.Columns(3).Width = 280
                me.DGV.Columns(4).Width = 50
                me.DGV.Columns(5).Width = 50
                me.DGV.Columns(6).Width = 50
                me.DGV.Columns(7).Width = 50
            Catch ex As Exception
            Finally
                _conectaEjemplo.Close()
            End Try
        End Sub


    esa funcion la llamas desde :

    Private Sub Textbox1_KeyPress(sender As Object, e As EventArgs) Handles Textbox1.KeyPress
    If e.KeyChar = Chr(13) Then
    Buscar()
    end if
    End Sub
    

    Al presionar la tecla ENTER llamas a la funcion y te tira el resultado en el DGV.

    Espero te sirva


    viernes, 12 de enero de 2018 19:59
  • una consulta el ¨conectaejemplo() que sería como debo expresarlo
    viernes, 12 de enero de 2018 20:15
  • Conecta ejemplo es la conexión a tu base de datos access

     Public Sub conectaEjemplo()
            Try
                _cadenaEjemplo= ("user id=nombre;password=clave;database=BaseDeDatos")
                _conectaEjemplo= New OdbcConnection(_cadenaEjemplo)
            Catch ex As odbcException
                MessageBox.Show(ex.Message)
            Finally
                _conectaEjemplo.Close()
            End Try
        End Sub




    viernes, 12 de enero de 2018 20:36
  • no entiendo, le conectada a una base de access, que es el tdgv
    viernes, 12 de enero de 2018 20:39
  • TDGV es una tabla que armo para mandarle la información (de tu consulta a access) al DataGridView 
    viernes, 12 de enero de 2018 20:44
  • mi base se llama plantaciones bases.mdb, esta en c:\sistemas\bases, como debo ponerlo en la conexion

    _cadena ejemplo me imagino que es el nombre?



    viernes, 12 de enero de 2018 21:27
  • lo tengo asi el código pero aun no me muestra, por ultimo agregue un texbox llamado Descripcion_hacienda_reg, esperando que el resultado del query lo muestre en el texbox pero no me sale nada

    Try
                Dim query As String = "select * from haciendas where n_hacienda_h'" & Hacienda_regTextBox.Text & "'"
                Dim adaptador = New OleDbDataAdapter(query, conexion)
                Dim tdgv = New DataTable
                adaptador.Fill(tdgv)
                Descripcion_hacienda_regTextBox.Text = query
                Me.DataGridView1.DataSource = query
                Me.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.Fill
                Me.DataGridView1.ReadOnly = True
                With Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.LightGray

                    Me.DataGridView1.Columns(1).Width = 54
                    Me.DataGridView1.Columns(2).Width = 75
                    Me.DataGridView1.Columns(3).Width = 280
                    Me.DataGridView1.Columns(4).Width = 75
                    Me.DataGridView1.Columns(5).Width = 75
                End With
            Catch ex As Exception
            End Try
            If e.KeyChar = ChrW(Keys.Enter) Then
                e.Handled = True
                SendKeys.Send("{tab}")
            End If


    sábado, 13 de enero de 2018 4:03
  • "jedimasterxxx" escribió:

    > tengo un formulario con textbox y datagrid donde estoy colocando datos
    > por ejemplo registro en un textbox el número de cédula y en el datagrid
    > debe aparecer el número de cédula y el nombre de la persona ... no se
    > como hacer para que muestre, ...
    >
    > lo tengo asi el código pero aun no me muestra, por ultimo agregue un
    > texbox llamado Descripcion_hacienda_reg, esperando que el resultado del
    > query lo muestre en el texbox pero no me sale nada
    >
    > Dim query As String = "select * from haciendas where n_hacienda_h'" & Hacienda_regTextBox.Text & "'"

    Hola:

    Si tu intención es mostrar en el control DataGridView los registros de la tabla Haciendas donde el valor del campo n_hacienda_h se corresponda con el valor especificado en el control TextBox llamado Hacienda_regTextBox, mira a ver si el resultado es satisfactorio ejecutando el siguiente código en el evento Click de un control Button:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If (Hacienda_regTextBox.TextLength = 0) Then MessageBox.Show("No se ha especificado el valor de la Hacienda." ' Abandonar el procedimiento Return End If ' Construir la cadena de conexión con la base de ' datos de Access llamada 'plantaciones.mdb' ' Dim cadenaConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Sistemas\bases\plantaciones.mdb" Try ' Establecer una conexión con la base de datos de Access Using conexion As New OleDbConnection(cadenaConexion) ' Crear el comando que vamos a ejecutar Dim comando As OleDbCommand = conexion.CreateCommand() ' Indicamos la consulta SQL de selección que vamos a ejecutar comando.CommandText = "SELECT * FROM Haciendas " & _ "WHERE n_hacienda_h = @nombreHacienda" ' Insertar el único parámetro de entrada que necesita ' la consulta SQL de selección especificada, donde su ' valor lo tomamos del valor existente en el control ' TextBox llamado 'Hacienda_regTextBox' ' comando.Parameters.AddWithValue("@nombreHacienda", Hacienda_regTextBox.Text) ' Creamos un adaptador de datos pasándole el ' comando que hemos configurado. Dim adaptador As New OleDbDataAdapter(comando) ' Creamos un nuevo objeto DataTable Dim tdgv As New DataTable() ' Rellenamos el objeto DataTable adaptador.Fill(tdgv) ' Configuramos el control DataGridView ' Me.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.Fill Me.DataGridView1.ReadOnly = True Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.LightGray Me.DataGridView1.Columns(1).Width = 54 Me.DataGridView1.Columns(2).Width = 75 Me.DataGridView1.Columns(3).Width = 280 Me.DataGridView1.Columns(4).Width = 75 Me.DataGridView1.Columns(5).Width = 75 ' A la propiedad DataSource del control le asignamos el ' objeto DataTable que contiene los datos recuperados ' de la base de datos. ' Me.DataGridView1.DataSource = tdgv End Using ' Se cerrará y destruirá la conexión. Catch ex As Exception ' Se ha producido un error MessageBox.Show(ex.Message)

    End Try End Sub


    Si todo ha ido bien, se mostrará en el control DataGridView los registros que se correspondan con el nombre de la Hacienda especificado en el control TextBox.

    Te advierto que al utilizar el proveedor Microsoft.Jet.OLEDB.4.0 en la cadena de conexión, tu aplicación de Visual Basic la tendrás que compilar, sí o sí, para ejecutarse exclusivamente en plataformas de 32 bits (x86). Si deseas compilar el proyecto para que se pueda ejecutar en plataformas de 64 bits (x64), entonces utiliza el proveedor que aparece en la siguiente cadena de conexión:

        ' Construir la cadena de conexión con la base de
        ' datos de Access llamada 'plantaciones.mdb'
        '
        Dim cadenaConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Sistemas\bases\plantaciones.mdb"

    En este caso, ni que decir tiene que el equipo donde se vaya a ejecutar tu aplicación necesitará tener instalada la versión de 64 bits del proveedor 'Microsoft.ACE.OLEDB.12.0'.

    Eso es todo.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    martes, 16 de enero de 2018 8:20
    Moderador
  • Muchas gracias si me funcionó
    hace 15 horas 56 minutos