none
Llenar y seleccionar registro mediante un combobox RRS feed

  • Pregunta

  • Estimado amigos muy buenas tardes quisiera que me ayuden a llenar y seleccionar el nombre del documento en un combobox de 2 tablas relacionadas.

    Tengo los siguientes codigo:

    PROCEDIMIENTO ALMACENADO

    DROP PROCEDURE `Sp_Buscar_Cliente_x_Nombre`//
    CREATE DEFINER=`root`@`localhost` PROCEDURE `Sp_Buscar_Cliente_x_Nombre`(NomCliente varchar(200))
    BEGIN
    SELECT *FROM clientes INNER JOIN tipo_documentos ON Clientes.Tdo_Cliente = tipo_documentos.id_documentos 
    WHERE Nom_cliente LIKE CONCAT(NomCliente,'%') and Est_Cliente=1;
    END
    

    CAPA DATOS

    Imports CapaConexion
    Imports CapaEntidades
    Imports MySql.Data.MySqlClient
    Public Class DatCliente
        Public da As MySqlDataAdapter
        Public cmd As New MySqlCommand
        Public ds As DataSet
        Public dr As MySqlDataReader
        Dim objConexion As New ConexionBD
           
    Public Function Buscar_Cliente_x_Nombre(ByVal NombreCliente As String) As Cliente
            Dim lista As New List(Of Cliente)
            Dim lector As MySqlDataReader
            Dim objCliente As Cliente
            objCliente = New Cliente
            cmd.CommandType = CommandType.StoredProcedure
            'Nombre procedimiento almacenado
            cmd.CommandText = "Sp_Buscar_Cliente_x_Nombre"
            'obtener la conexion con la base de datos
            cmd.Connection = objConexion.obtenerConeccion
            With cmd.Parameters
                .Add("?nomCliente", MySqlDbType.VarChar).Value = NombreCliente
            End With
            If objConexion.obtenerConeccion.State = ConnectionState.Open Then
                objConexion.obtenerConeccion.Close()
            Else
                objConexion.obtenerConeccion.Open()
            End If
            lector = cmd.ExecuteReader
            While lector.Read
                objCliente = New Cliente
                objCliente.Cod_cliente = lector(1)
                objCliente.Nom_cliente = lector(2)
                objCliente.Tdo_cliente = lector(3)
                objCliente.Doc_cliente = lector(4)
                objCliente.Rep_cliente = lector(5)
                objCliente.Tel_cliente = lector(6)
                objCliente.Cre_cliente = lector(7)
                lista.Add(objCliente)
            End While
            Return objCliente
        End Function
        
    End Class
    

    CAPA NEGOCIOS

    Imports CapaDatos
    Imports CapaEntidades
    Public Class NegCliente
       
        Private objClientedat As DatCliente
        Public Sub New()
            objClientedat = New DatCliente
        End Sub
        
        Public Function Buscar_Cliente_x_Nombre(ByVal NombreCliente As String) As Cliente
            Return objClientedat.Buscar_Cliente_x_Nombre(NombreCliente)
        End Function
        
        
    End Class

    FORMULARIO

    Imports CapaEntidades
    Imports CapaNegocios
    
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            LlenarCboDocumentos()
            HabilitarCajas(False)
            habilitarBotones(True, False, False, False)
            
        End Sub
        Sub BuscarClienteNombre(ByVal NombreCliente As String)
            Dim objClienteNE As NegCliente
            objClienteNE = New NegCliente
            Dim objClienteE As New Cliente
            objClienteE = objClienteNE.Buscar_Cliente_x_Nombre(NombreCliente)
            If objClienteE.Nom_cliente = NombreCliente Then
                Me.txtCodCliente.Text = objClienteE.Cod_cliente
                Me.txtNomCliente.Text = objClienteE.Nom_cliente
                Me.ComboBox1.SelectedValue = "id_documentos"
                Me.txtTdoCliente.Text = objClienteE.Tdo_cliente
                Me.txtDocCliente.Text = objClienteE.Doc_cliente
                Me.txtRepCliente.Text = objClienteE.Rep_cliente
                Me.txtTelCliente.Text = objClienteE.Tel_cliente
                Me.txtCreCliente.Text = objClienteE.Cre_cliente
                Me.txtCodCliente.Enabled = False
            Else
                MsgBox("Datos No Encontrados Cliente")
                Me.txtCodCliente.Enabled = True
                Me.txtCodCliente.Clear()
                Me.txtCodCliente.Focus()
                btnBuscar.Enabled = True
            End If
        End Sub
        
    Sub LlenarCboDocumentos()
            Dim objDocumentosNE As NegDocumentos
            objDocumentosNE = New NegDocumentos
            Dim DocumentosE As New Documentos
            Dim objDocumentos As List(Of Documentos)
            objDocumentos = New List(Of Documentos)
            objDocumentos = objDocumentosNE.ListarDocumentos
            ComboBox1.DataSource = Nothing
            ComboBox1.DataSource = objDocumentos
            ComboBox1.DisplayMember = "des_Tdocumento"
            ComboBox1.ValueMember = "Id_documentos"
        End Sub
    
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
                 
                Try
                    If TextBox10.Text <> "" Then
                        Dim NombreCliente = Me.TextBox10.Text
                        HabilitarCajas(False)
    
                        BuscarClienteNombre(NombreCliente)
                    Else
                        MsgBox("Ingrese el Nombre del Cliente")
                    End If
                Catch ex As Exception
                    MsgBox("Dato no Encontrado")
                End Try
    
           
        End Sub
    
        
        
    Sub HabilitarCajas(ByVal estado)
            Me.txtCodCliente.Enabled = False
            Me.txtNomCliente.Enabled = estado
            Me.txtTdoCliente.Enabled = estado
            Me.txtDocCliente.Enabled = estado
            Me.txtRepCliente.Enabled = estado
            Me.txtTelCliente.Enabled = estado
            Me.txtCreCliente.Enabled = estado
            Me.txtEstCliente.Enabled = estado
            Me.txtNomCliente.Focus()
    End Sub
    Sub LimpiarCajas()
            Me.txtCodCliente.Clear()
            Me.txtNomCliente.Clear()
            Me.txtTdoCliente.Clear()
            Me.txtDocCliente.Clear()
            Me.txtRepCliente.Clear()
            Me.txtTelCliente.Clear()
            Me.txtCreCliente.Clear()
            Me.txtEstCliente.Clear()
    End Sub
    Sub habilitarBotones(ByVal btnNuevo As Boolean, ByVal btnAgregar As Boolean, ByVal btnActualizar As Boolean, ByVal btnCancelar As Boolean)
            Me.btnNuevo.Enabled = btnNuevo
            Me.btnGrabar.Enabled = btnAgregar
            Me.btnActualizar.Enabled = btnActualizar
            Me.btnCancelar.Enabled = btnCancelar
        End Sub
    
    End Class
    

    • Cambiado Enrique M. Montejo miércoles, 3 de diciembre de 2014 7:45 Pregunta relacionada con el acceso a datos.
    lunes, 1 de diciembre de 2014 23:18

Todas las respuestas

  • Nota: tipos de documentos

    1 DNI

    2 RUC

    La idea es que si por ejemplo guarde un cliente con un TIPO DOCUMENTO 2 al momento de consultar los datos del cliente me muestre RUC en el  COMBOBOX y si por error no era RUC sino DNI me permita Seleccionar DNI  o cualquier otro  para volver a GUARDARLO O MODIFICAR el registro.


    • Editado dany22_ lunes, 1 de diciembre de 2014 23:35
    lunes, 1 de diciembre de 2014 23:31