Visual Basic.NET - Cargar dato a un ComboBox que no tiene colección propia

 
Vista:
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 20/05/2020 00:37:44
Hola, buenas tardes.
Estoy atascado en un problema y no consigo salir. Os agradecería una ayuda.
Quiero cargar, en los TextBox y el ComboBox, los valores que tengo en una tabla (Clientes), donde tengo un campo llamado "Provincia".
Los datos en todos los campos que son TextBox no tengo ningún problema, el problema me surge cuando quiero cargar en el ComboBox el valor del campo Provincia de la tabla Clientes.
El ComboBox se carga, cuando quiero hacer una alta, de una tabla llamada TablaProv , es decir, no tiene Colección propia.
Qué estoy tratando de hacer; pues obtener el valor del campo Provincia de la tabla Clientes y buscarlo en la tabla TablaProv para cargarlo en el ComboBox.
Cuando ejecuto el programa me sale el dichoso error: System.Data.OlDb.OlDbException: “No se han especificado valores para algunos de los parámetros requeridos”
El error aparece cuando trato de llenar el DataAdapter....DataAdap.Fill(Tabla)
Os paso parte del programa donde me aparece el error.
Muchas gracias a todos por adelantado.
Saludos

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
Private Sub BtnBuscar_Click(sender As Object, e As EventArgs) Handles BtnBuscar.Click
 
    If TxtIdDNI.Text <> " " Then
        Consulta = "Select *From Clientes where IdDNI='" & TxtIdDNI.Text & "' "
        DataAdap = New OleDb.OleDbDataAdapter(Consulta, Conexion)
        DataSt = New DataSet
        DataAdap.Fill(DataSt, "Clientes")
        registro = DataSt.Tables("Clientes").Rows.Count
 
        If registro <> 0 Then
              …….
              …….
              …….
            TxtBungalow.Text = DataSt.Tables("Clientes").Rows(0).Item("Bungalow")
            TxtCodPostal.Text = DataSt.Tables("Clientes").Rows(0).Item("CodigoPostal")
 
 
            CargaCombo(DataSt.Tables("Clientes").Rows(0).Item("Provincia"))     ‘Llama al procedimiento mas abajo con valor MADRID
              …….
              …….
 
        Else
            MsgBox("No existe el DNI", vbCritical, "Aviso")
 
        End If
        TxtIdDNI.Focus()
    End If
End Sub
 
 
Private Sub CargaCombo(sender As Object)
    Consulta = "Select CBProvin From TablaProv WHERE CBProvin= " & sender  ‘Valor MADRID
    Dim Tabla As New DataTable("TablaProv ")
    DataAdap = New OleDbDataAdapter(Consulta, Conexion)
 
    DataAdap.Fill(Tabla)   ‘En esta fila me da el error:  System.Data.OlDb.OlDbException: “No se han especificado valores  para algunos de los parámetros requeridos”
 
 
    CBoxProvincias.DataSource = Tabla
    CBoxProvincias.DisplayMember = "CBProvin"
End Sub
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 20/05/2020 15:33:53
Hola
En las consultas, tienes que corregir el uso del ' (simple quote, apostrophe).
Si campo numerico, no poner el '. Ej. Campo Id.
..
Si campo String, poner los '.
Espero que este te ayudara ....
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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 20/05/2020 23:03:26
Hola Phil, gracias por contestar.
No entiendo muy bien lo que me dices.
Como verás en la consulta del programa utilizo doble comillas " y en este caso la variable sender es String.
Desconozco si el tipo de error que me da el programa es debido a la utilización de las comillas o del apóstrofe.
Te agradecería que me ayudaras.
Saludos y gracias de nuevo.
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 20/05/2020 23:22:45
Hola,

Pienso que hay errores de sintaxis.

Si IdDNI es numerico, debes escribir :
1
2
Consulta = "Select * From Clientes where IdDNI=" & TxtIdDNI.Text
' y no Consulta = "Select * From Clientes where IdDNI='" & TxtIdDNI.Text & "' "

Si CBProvin es String, debes escribir :
1
2
Consulta = "Select CBProvin From TablaProv WHERE CBProvin= '" & sender & "'"     ‘Valor MADRID
' y no Consulta = "Select CBProvin From TablaProv WHERE CBProvin= " & sender  ‘Valor MADRID

Quizá no es suficiente para tu problema, este es solamente una parte de solución.

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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 20/05/2020 23:25:04
Uiss, perdona pero no había visto tu respuesta
Gracias y efectivamente era lo que decías
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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 20/05/2020 23:23:13
Hola de nuevo Phil
Después de revisar tu respuesta, he entendido lo que me quieres decir, y efectivamente ese era el problema al error.
Solucionado el problema del error, sigo teniendo otro problema y es que en el ComboBox no me aparecen los datos, que están en la tabla del ComboBox y que tendría que coincidir con lo buscado, es decir el valor MADRID que trato de buscar en la tabla que llena el ComboBox, y que existe, no me lo carga en el Combo.
De todas formas, gracias por solucionarme el problema del mensaje de error.
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 20/05/2020 23:55:30
Miro tu codigo y veo un problema.

Llamas CargarCombo con un parametro de tipo Object. Este siempre fuente de problemas. Aqui, este es un tipo String.
Das un nombre a la tabla pero no es necesario en este caso. Pero si escribes este nombre, no poner caracter blanco.

Rescribo tu codigo :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub CargaCombo(ByRef sender As String)  ' no sender puede ser vacia
    Dim Tabla As New DataTable
 
   Consulta = "Select CBProvin From TablaProv WHERE CBProvin= '" & sender  & "'"   ‘Valor MADRID
 
   DataAdap = New OleDbDataAdapter(Consulta, Conexion)
 
   DataAdap.Fill(Tabla)
 
 
    CBoxProvincias.DataSource = Tabla
    CBoxProvincias.DisplayMember = "CBProvin"
 
End Sub

No veo otro error en este codigo. Si ComboBox es vacia, quizá no hay registros igual a sender. Atencion : misma manera de escribir (mayusculo, minusculo).

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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 21/05/2020 00:12:46
Hola Phil
Lo he intentado sin pasar parámetros y le quito el nombre en el momento de declarar el New DataTable, buenos consejos, pero sigo sin obtener el valor en el Combo.
El dato existe en la ACCESS, pues busco un registro creado con el mismo programa, no obstante como hago muchas modificaciones he revisado la BD y existe el dato que quiero cargar al Combo.
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 21/05/2020 00:31:36
En la consulta, puedes testar de reemplazar = por LIKE.
SI no funciona, envias tu proyecto con la DB y miraré mañana.
Ahora, voy dormir ...
Buenas noches
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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 21/05/2020 00:41:56
Gracias Phil, lo haré.
Ya le he dado vueltas a todo y creo que estoy metido en un bucle.
Gracias sinceras
Descansa
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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 21/05/2020 01:29:31
Hola Phil
Adjunto mi proyecto, no es importante pues lo estoy haciendo como algo personal.
Está incompleto, pues lo hago poco a poco y seguramente verás instrucciones que se puedan mejorar, pero hacia alguna cosilla en VBA y voy aprendiendo poco a poco. VB.NET
El problema lo tengo en el Form FORMBUSCACT.VD
En la línea 48 llamo al procedimiento, el nombre de las variables están cambiadas con respecto al ejemplo que mandé.
Si ejecutas el programa y pulsas el botón Buscar Actualizar podrás buscar en DNI el 111 (es el Id de un registro de la tabla Clientes) y verás que el Combo no se llena.
Gracias por emplear parte de tu tiempo en ayudar
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 21/05/2020 09:15:30
Hola Candido,

Dices “…y seguramente verás instrucciones que se puedan mejorar,…”
Nunca voy estudiar todo el programa, soy demasiado perezosa ...
Pero voy una grande influencia de VBA. Cuando quieres escribir solamente VB.Net, debes desactivar la referencia a la librería Microsoft.VisualBasic (Mira la primera imagen). De esta manera, estas obligado de escribir en VB.Net.

Sobre tu problema, hay solamente un pequeño error, un carácter espacio tras el LIKE.

Este es el código corregido :

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub BuscarenCombo()
        Dim Prov As String = DataSt.Tables("Clientes").Rows(0).Item("Provincia")
        '      Consulta = "Select Provincia From Provincias WHERE Provincia LIKE ' " & Prov & "'" '**Selecciona la tabla MUNICIPIOS
        Consulta = "Select Provincia From Provincias WHERE Provincia LIKE '" & Prov & "'" '**Selecciona la tabla MUNICIPIOS
        Dim Tabla As New DataTable
        DataAdap = New OleDbDataAdapter(Consulta, Conexion)
        DataAdap.Fill(Tabla)
 
        CBoxProvincias.DataSource = Tabla
        CBoxProvincias.DisplayMember = "Provincia"
        '      CBoxProvincias.ValueMember = "Provincia"     ' No siempre necesario ...
        CBoxProvincias.Text = Prov
    End Sub

SinVisualBasic

La ejecucion de tu programa :
Candido

Que tenga un muy buen día
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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 21/05/2020 18:25:27
Gracias Phil, me parece mentira lo que puede hacer una separación entre un apóstrofe y unas comillas dobles, jejejeje, que pueda funcionar o no un programa.
Efectivamente tienes razón, siempre he hecho mis aplicaciones en VBA, pero espero ir mejorando en VB.Net
Miraré a ver donde puedo desactivar las referencias a las librerías, pues no lo sé.
Muchas gracias por tu ayuda, y por tu paciencia.
Saludos
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 21/05/2020 18:40:31
Hola,

" ... Miraré a ver donde puedo desactivar las referencias a las librerías, pues no lo sé." : Mira la imagen que he insertada en mi ultimo mensaje.

Este es en las Propiedades del proyecto, en la pestaña "Referencias"

Buenas tardes

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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 21/05/2020 19:02:53
Sí, ya lo he localizado y no está activada esa referencia.
He activado la referencia: Microsoft Visual Studio .Net Project Model (7.1)
He leído algo sobre esta referencia y pone que es utilizada por los desarrolladores, no sé que opinas tú.
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 21/05/2020 19:45:17
Hola,

No activas ninguna referencia a VisualBasic. En tu proyecto, lo es activado porque sin este, no compilas sin error.
Mira la video : https://www.dropbox.com/s/nywczhcurk0zdi8/SinVisualBasic.mp4?dl=0
Por ejemplo, con VisualBasic, están aceptado Ucase, MsgBox, … Estas herramientas no están VB.Net y no están controlados de misma manera por el sistema. DotNet es mas seguro.
En VB.Net, utilizamos ToUpper, MessageBox.Show, …

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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 21/05/2020 22:26:51
Hola Phil
Le echare un vistazo a ese vídeo.
Gracias nuevamente, por toda la ayuda.
Una pregunta, en este foro puedo elegir a la persona que me gustaría que me ayudara?
Si es así, y a ti no te molesta me gustaría recibir tu ayuda.
Prometo no ser muy pesado, jejeje.
Saludos
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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 21/05/2020 22:31:14
Leches, pero si es un vídeo de como tengo que hacerlo, eres genial.
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: 2.985
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Phil Rob (843 intervenciones) el 21/05/2020 22:55:51
" ... Si es así, y a ti no te molesta me gustaría recibir tu ayuda...." Como quieres pero respondo solamente cuando conozco (o que creo conocer)
" ... eres genial " Si. Esto, lo sé !
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
sin imagen de perfil
Val: 5
Ha aumentado su posición en 12 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Raúl Mejía (27 intervenciones) el 20/05/2020 20:36:51
Estimado Cándido, buenas tardes desde México.

La forma en que lleno yo un combobox es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Sub Full_CmbEmpress()
    Try
        Using cnx As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dSn)
            Dim MyCommand As OleDb.OleDbCommand
            Dim MyAdapter As New OleDb.OleDbDataAdapter
            Dim MyConexion As New OleDb.OleDbConnection
            MyCommand = cnx.CreateCommand
            MyCommand.CommandText = "SELECT * FROM EMPRESAS"
            MyAdapter.SelectCommand = MyCommand
            Dim Dt_Cliente As New DataTable
            MyAdapter.Fill(Dt_Cliente)
            cmbEmpresa.DataSource = Dt_Cliente
            cmbEmpresa.DisplayMember = "EMPRESA"
            cmbEmpresa.ValueMember = "NUMEMP"
        End Using
    Catch ex As Exception
        MessageBox.Show("Error : " + ex.Message + "", "¡Ocurrio el siguiente Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
End Sub

dsn es una variable que contiene la ubicación de la base de datos.
La tabla EMPRESAS contiene el número de empresa y el nombre de la empresa por eso selecciono todo, pero solo despliego el nombre de la empresa.

Espero te sirva mi ejemplo, saludos cordiales.
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
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar dato a un ComboBox que no tiene colección propia

Publicado por Candido (12 intervenciones) el 20/05/2020 22:54:11
Hola Raul
Gracias por contestar.
Mi problema no es la carga de todos datos en el ComboBox, lo tengo en otra parte del programa y lo utilizo para las ALTAS, mi problema está en cargar solamente uno de los datos de esta tabla en el ComboBox, cuando utilizo la opción de BUSQUEDA.
En tu ejemplo es muy útil para cuando quieres visualizar todos los datos de la tabla.
Si tienes algún ejemplo de BUSQUEDA donde en el ComboBox cargues los datos que estén guardados en otra tabla y donde haya datos elegidos en su momento en el ComboBox, te agradecería que me lo enseñaras.
De nuevo gracias por contestar.
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

Cargar dato a un ComboBox que no tiene colección propia

Publicado por omar (30 intervenciones) el 21/05/2020 01:54:26
utiliza un listbox el cual cargara los datos que deseas de tu base de datos
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