none
llenar textboxs desde un combobox hecha en sql RRS feed

  • Pregunta

  • buenas tardes a todos 
    estoy un poco mal en programacion y pido su ayuda..
    como puedo hacer para llevar varios textboxs al seleccionar un combo box...
    Es decir ya hice tengo una tabla llamada clientes, con campos id, nombre, nombre_P, nombre_M, etc. Ya enlace el campo id a mi cb pero no encuentro la forma de que al seleccionar algun id se llenen automaticamente los campos de nombre y apellidos..
    seria de gran ayuda cualquier sugerencia saludos 

    miércoles, 22 de febrero de 2017 5:16

Respuestas

  • Puedes usar el evento SelectionChangeCommited del combo:

    Private Sub ComboBox1_SelectionChangeCommitted (ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectionChangeCommitted
    
        Try
            Dim strSQL As String = "SELECT * FROM Tabla WHERE CampoId = @id"
            Dim Cmd As New SqlCommand(strSQL, con)
            Cmd.Parameters.AddWithValue("@id", CStr(ComboBox1.SelectedValue))
            Dim da As SqlDataAdapter = New SqlDataAdapter(Cmd)
            Dim dt As New DataTable
    
            da.Fill(dt)
    
            If dt.Rows.Count > 0 Then
                Dim row As DataRow = dt.Rows(0)
                TextBox1.Text = CStr(row("CampoNombre"))
    	    TextBox2.Text = CStr(row("CampoApellido"))
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    
    End Sub


    Saludos, Javier J

    • Propuesto como respuesta Joyce_ACModerator miércoles, 22 de febrero de 2017 15:46
    • Marcado como respuesta jesusjair miércoles, 22 de febrero de 2017 17:32
    miércoles, 22 de febrero de 2017 7:57
  • muchas gracias por la ayuda, tuve algunos errores y decidi cambiarlo por un SelectedIndexChanged y con eso funcino
    pero tu codigo me ayudo muchas gracias

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
            Try
                Dim strSQL As String = "use ventas SELECT * FROM cliente WHERE id = @id"
                Dim Cmd As New SqlCommand(strSQL, con)
                Cmd.Parameters.AddWithValue("@id ", CStr(ComboBox1.SelectedItem))
                Dim da As SqlDataAdapter = New SqlDataAdapter(Cmd)
                Dim dt As New DataTable
    
                da.Fill(dt)
    
                If dt.Rows.Count > 0 Then
                    Dim row As DataRow = dt.Rows(0)
                    TextBox3.Text = CStr(row("nombre"))
                    TextBox4.Text = CStr(row("apellido_p"))
                    TextBox5.Text = CStr(row("apellido_m"))
                    TextBox6.Text = CStr(row("direccion"))
                    TextBox7.Text = CStr(row("cel"))
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub

    miércoles, 22 de febrero de 2017 17:33

Todas las respuestas

  • Puedes usar el evento SelectionChangeCommited del combo:

    Private Sub ComboBox1_SelectionChangeCommitted (ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectionChangeCommitted
    
        Try
            Dim strSQL As String = "SELECT * FROM Tabla WHERE CampoId = @id"
            Dim Cmd As New SqlCommand(strSQL, con)
            Cmd.Parameters.AddWithValue("@id", CStr(ComboBox1.SelectedValue))
            Dim da As SqlDataAdapter = New SqlDataAdapter(Cmd)
            Dim dt As New DataTable
    
            da.Fill(dt)
    
            If dt.Rows.Count > 0 Then
                Dim row As DataRow = dt.Rows(0)
                TextBox1.Text = CStr(row("CampoNombre"))
    	    TextBox2.Text = CStr(row("CampoApellido"))
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    
    End Sub


    Saludos, Javier J

    • Propuesto como respuesta Joyce_ACModerator miércoles, 22 de febrero de 2017 15:46
    • Marcado como respuesta jesusjair miércoles, 22 de febrero de 2017 17:32
    miércoles, 22 de febrero de 2017 7:57
  • muchas gracias por la ayuda, tuve algunos errores y decidi cambiarlo por un SelectedIndexChanged y con eso funcino
    pero tu codigo me ayudo muchas gracias

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
            Try
                Dim strSQL As String = "use ventas SELECT * FROM cliente WHERE id = @id"
                Dim Cmd As New SqlCommand(strSQL, con)
                Cmd.Parameters.AddWithValue("@id ", CStr(ComboBox1.SelectedItem))
                Dim da As SqlDataAdapter = New SqlDataAdapter(Cmd)
                Dim dt As New DataTable
    
                da.Fill(dt)
    
                If dt.Rows.Count > 0 Then
                    Dim row As DataRow = dt.Rows(0)
                    TextBox3.Text = CStr(row("nombre"))
                    TextBox4.Text = CStr(row("apellido_p"))
                    TextBox5.Text = CStr(row("apellido_m"))
                    TextBox6.Text = CStr(row("direccion"))
                    TextBox7.Text = CStr(row("cel"))
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub

    miércoles, 22 de febrero de 2017 17:33