Visual Basic.NET - ComboList con otra tabla de la base de datos

 
Vista:

ComboList con otra tabla de la base de datos

Publicado por Miguel Ángel casalisanchez@gmail.com (20 intervenciones) el 25/08/2019 11:59:48
Hola ! Debido a mi falta de experiencia con Visual Basic.net, recurro a UDs. para perdirles ayuda sobre el siguiente tema:

Quisiera poner un ComboList enlazado a una tabla la base de datos, donde el usuario al teclear le mostrara las coincidencias de la misma y que una vez seleccionada o terminara de escribir, este resultado quedara ya en la tabla, tanto en la del ComboList como en la tabla donde se intenta registrar el dato seleccionado o escrito y, que si no existe en el ComboList quedara también registrado para futuras selecciones. Sería algo así:
Campo Departamento de una tabla
DepartamentoTextBox.Text= ComboList.Selection ?
El TextBox.Text estaría vinculado a una tabla donde se registra el departamento al que pertenece el trabajador.
El ComboList contendría todos los departamentos de la empresa que se han ido insertando con anterioridad o que ya se hubieran insertado en otro momento en la tabla,

Hasta el momento, el TextBox del campo Departamento, ya registra las entradas en la Tabla de la Base de Datos, pero lo que quisiera hacer, sería un autocompletar el texto que se está escribiendo, para facilitar la tarea del usuario a la hora de introducir un departamento que ya existiera en el campo Departamento.

Mi intención, sería ponerlo en cualquier TextBox, donde se pudieran repetir el valor introducido, como por ejemplo:
Departamento, Sección, Categoría del trabajador, Tipo de Contrato... etc... cualquier campo donde se han de registrar valores repetidos y que el usuario pudiera modificar en otra tabla, a modo de histórico.

Muchas gracias !!!
Les agradezco enormemente su colaboración.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

ComboList con otra tabla de la base de datos

Publicado por Phil Rob (442 intervenciones) el 25/08/2019 18:06:55
Hola,

Adjunto el proyecto TestAccesDBSimpleConMostrar (el archivo TestAccesDBSimpleConMostrar.Zip también contiene un video a mirar).

Este proyecto mostrar como programar un ComboBox enlazado a una tabla la base de datos, también un ListBox, un DataGridView y un TextBox. El archivo también contiene la DB necesaria para probar (en Access).

Para el ComboBox, la introducción automática ha sido programada.

Espero te da buenas ideas …

DBComboAuto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ComboList con otra tabla de la base de datos

Publicado por Miguel Ángel casalisanchez@gmail.com (20 intervenciones) el 29/08/2019 20:32:00
Aunque no he podido visionar el código fuente de su proyecto, muchas gracias por su gran ayuda. Con el vídeo que ha enviado también, he conseguido imaginar el proceso.
Muy agradecido !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 1.836
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

ComboList con otra tabla de la base de datos

Publicado por Phil Rob (442 intervenciones) el 29/08/2019 22:38:56
Hola,

Como es posible de no visionar el código fuente de mi proyecto? Sin este, no interés!
El proyecto es hecho en VisualStuio2010. Puede ser leído con todas las versiones siguientes.
Este es el codigo del pragrama pero, tiene que abrir con VisualStudio para ejecutar y probar.

Si tienes necesidad, preguntas me ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
Imports System.Data.OleDb
 
Public Class FTestDB
 
    Dim MiConexion As New OleDbConnection
    Dim MiDatos As New DataSet
    Dim NombreTablaEnDB As String
 
    Private Sub FGestionStock_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        CargarLaTabla()
    End Sub
 
    Private Sub CargarLaTabla()
 
        'Dim NombreDBCompleto As String = "D:\Tmp\TestAccesDBSQLExpress\MonStock2003.mdb"   ' MiExistencia
        'MiConexion.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & NombreDBCompleto & ";"  ' Exécuter en x86
 
        Dim NombreDBCompleto As String = "D:\Tmp\TestAccesDBSQLExpress\MonStock2013.accdb"   ' MiExistencia
        MiConexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & NombreDBCompleto & ";"  ' Exécuter en x64
 
        Dim UnaTabla As New DataTable
 
        Dim Consulta As String
        NombreTablaEnDB = "TProduit"   ' este es LaTablaQueMeGusta, TProductos
 
        Consulta = "SELECT * FROM " & NombreTablaEnDB
 
        Dim MiAdapter As New OleDbDataAdapter(Consulta, MiConexion)
        MiAdapter.Fill(UnaTabla)
 
        UnaTabla.TableName = NombreTablaEnDB
        MiDatos.Tables.Add(UnaTabla)
 
        'DGVTest es un DataGridView
 
        DGVTest.DataSource = UnaTabla  ' Para ejemplo, todos campos
 
        'CBTest es un ComboBox
 
        CBTest.DataSource = UnaTabla
        CBTest.DisplayMember = "Article" ' este esElNombredelCampoQueMeGustaAqui, articulo
 
        ' *** Para introducción automática
 
        CBTest.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest
        CBTest.AutoCompleteSource = AutoCompleteSource.CustomSource
 
        Dim DatosParaAutoCompleteSource As New AutoCompleteStringCollection()
 
        For I As Integer = 0 To UnaTabla.Rows.Count - 1
            DatosParaAutoCompleteSource.Add(UnaTabla.Rows(I).Item("Article"))
        Next I
 
        CBTest.AutoCompleteCustomSource = DatosParaAutoCompleteSource
 
        ' *** 
 
        'LBTest es un ListBox
 
        LBTest.DataSource = UnaTabla
        LBTest.DisplayMember = "Article" ' este es ElNombredelCampoQueMeGustaAqui, articulo
 
        'TBTest es un TextBox
 
        TBTest.DataBindings.Add("Text", UnaTabla, "Stock") ' este es ElNombredelCampoQueMeGustaAqui, este es la cuantidad de articulos
 
        MiAdapter.Dispose()
        MiConexion.Close()
        MiConexion.Dispose()
 
    End Sub
 
    ' El bloque de gestión de lectura. Un solo procedimiente evento responde a 4 fuentes de Click : BPrimero, BAnterior, BSiguiente y BUltimo
    Private Sub LecturaCircular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BUltimo.Click, BAnterior.Click, BSiguiente.Click, BPrimero.Click
        ' No es necesario intentar un movimiento si el DataSet no contiene ninguna tabla.
        If MiDatos.Tables.Count > 0 Then
            ' El BindingContext pertenece a un contenedor, el formulario en este caso.
            With Me.BindingContext(MiDatos.Tables(NombreTablaEnDB))
                ' Modificacion de la propiedad Position segun el boton seleccionado.
                Select Case sender.Name
                    Case "BPrimero"
                        .Position = 0
                    Case "BAnterior"
                        If .Position = 0 Then
                            .Position = .Count - 1              ' Lectura circular (como un reloj pero al revés)
                        Else
                            .Position -= 1
                        End If
                    Case "BSiguiente"
                        If .Position = .Count - 1 Then
                            .Position = 0                       ' Lectura circular (como un reloj)
                        Else
                            .Position += 1
                        End If
                    Case "BUltimo"
                        .Position = .Count - 1
                End Select
            End With
        End If
    End Sub
 
End Class

Projet
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

ComboList con otra tabla de la base de datos

Publicado por Miguel Ángel casalisanchez@gmail.com (20 intervenciones) el 29/08/2019 23:03:21
Muy elaborado!!!
Muchísimas gracias !!!
He tomado nota
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar