Añadir información a un combobox de una tabla de Access desde Visual Basic (con videotutorial)

Bienvenidos a Vertutoriales.com, siguiendo con una respuesta que nos hizo una lectura del blog, vamos a ver como acceder a la información guardada en nuestra base de datos de Microsoft Access utilizando código de Visual Basic 6.

Antes de nada hemos de crear la base de datos con Access y también haber registrado unas librerías que se indican en este otro tutorial de como crear una conexión a Access desde Visual Basic.

Una vez tengamos preparada esta parte, podremos proceder a conectar con la base de datos y cargarla, en el primer videotutorial que os enlazo es para crear la base de datos desde 0 y en el siguiente de los pasos necesarios antes de realizar la consulta a la base de datos y leer la tabla de Access.

Así que dicho esto, vamos al lío, aunque el vídeo es bastante claro, pongamos la parte más interesante, si ya habéis seguido los otros tutoriales no os de resultar complicado realizar la lectura, pero nos faltaría añadirla a un objeto, en este caso un combobox de vb6, veamos entonces:

Dim ConexBD as string ‘declaramos una variable de tipo texto

ConexBD = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mibasededatosacces.mdb; Jet OLEDB:Database” ‘aquí debemos de poner nuestra base de datos con su ruta

Dim BD As ADODB.Connection ‘declaramos los objetos de base de datos y recordset (que será el que recorramos más adelante)
Dim Rs As ADODB.Recordset

‘Crear los objetos

Set BD = New ADODB.Connection
Set Rs = New ADODB.Recordset

‘conecto con la base de datos
BD.Open ConexBD

Rs.Open “SELECT * FROM Almacen ORDER BY inventario”, BD, adOpenDynamic, adLockOptimistic ‘aquí es donde hacemos la consulta a la tabla de la base de datos Access

while Rs.EOF = false

cbComboBox.AddItem Rs!almacen

Rs.MoveNext

wend

Rs.Close

 

Explicando este código bastante resumido (ya que tiene también los comentarios al lado de casi cada linea), lo que hacemos es declarar las variables y objetos necesarios para realizar la conexión, una vez realizada la conexión, continuamos y lanzamos una consulta «SELECT» a nuestra tabla en Access llamada «inventario». El resto son parámetros que no voy a profundizar en explicar.

A continuación viene lo más interesante, rellenar nuestro combobox con la información leída en la consulta del SELECT:

while Rs.EOF = false

cbComboBox.AddItem Rs!almacen

Rs.MoveNext

wend

En este bucle While, estamos diciéndole a Vb6 que repita hasta que encuentre el final del Rs (recordset donde hemos guardado el resultado de la consulta del SELECT) y en cada iteración, que añada un item al objeto cbComboBox con el valor del campo del RecordSet llamado «almacen». Añadido el item al objeto combobox, avanzamos un paso en el recordset con:

Rs. Movenext

Y listo! Ya tendríamos nuestro combobox con la información de nuestra tabla en Access utilizando Visual Basic 6!

Espero que os sirva esta aclaración de código!

Si tenéis alguna duda podéis realizar cualquier consulta desde los comentarios! Agradezco que compartáis!

Un saludo!

Carlos Dk

Apasionado por la enseñanza y el SEO

20 comentarios sobre “Añadir información a un combobox de una tabla de Access desde Visual Basic (con videotutorial)

  • Pingback:Cargar información en un combobox al seleccionar una opción en otro combobox | Vertutoriales

  • el 6 diciembre, 2015 a las 2:10 pm
    Permalink

    Segui todos los pasos, pero sigo sin entender, por q me tira este error?? 3001,argumentos incorrectos, fuera del intervalo permitido, o en conflicto con otros. Es urgente ! Gracias. Cuando ejecuto me tira error en la clausula FROM, adLockOptimistic (Vacio)

    Respuesta
    • el 9 diciembre, 2015 a las 4:07 pm
      Permalink

      Pues alguno no estará bien del todo. revisa las comillas, si has copiado y pegado, posiblemente te esté dando error de esa manera.

      Un saludo

      Respuesta
    • el 18 abril, 2016 a las 3:11 pm
      Permalink

      ¿has escrito bien Additem? 😀 sin más información poco te podré ayudar!

      Respuesta
  • el 16 octubre, 2016 a las 4:54 am
    Permalink

    Hola talvez puedas ayudarme, logre cargar en un combo box los datos de una tabla de una BD de SQL, la consulta que hago con el recordset es nombre y codigo de vendedor, en el combo muestro los nombres de los vendedores pero necesito que al seleccionar el vendedor me pueda guardar el codigo del mismo para despues grabar ese dato. Espero haber sido lo mas claro posible y que puedas ayudarme

    Respuesta
    • el 24 octubre, 2016 a las 10:52 am
      Permalink

      Una manera, es utilizar el valor dentro de la propia lista, aunque es poco «elegante». También puedes guardarlo en un array y luego recorrerlo para sacar el id que corresponda al valor seleccionado en texto del combo.

      No conozco ninguna forma «directa» que relacione como por ejemplo un select de html.
      Espero que te sirva.

      Respuesta
  • el 26 octubre, 2016 a las 11:20 pm
    Permalink

    cuando ejecuto me salta el error el objeto no admite esta propiedad y me resalta combo2.AddItem Rs.Value

    Sub LLenarCombo()
    Set cn = New ADODB.Connection
    Set Rs = New ADODB.Recordset
    With cn
    .Provider = «microsoft.jet.oledb.4.0»
    .ConnectionString = «Data Source=C:\Dropbox (CIP)\Carpeta del equipo de CIP\Base de Datos\MRACCESS.mdb»
    .Open
    End With

    Set Rs = cn.Execute(«SELECT CANALES FROM CANALES;»)

    Do While Rs.EOF = False
    combo2.AddItem Rs.Value
    Rs.MoveNext
    Loop
    cn.Close
    End Sub

    Respuesta
    • el 28 octubre, 2016 a las 6:50 am
      Permalink

      Lo más fácil es que pongas un punto de ruptura y puedas evaluar los valores. Sino recuerdo mal, tienes que decirle qué valor del recordset, es decir, rs[0].value rs[‘nombreCampo’].value o incluso rs!nombreCampo, cualquiera de estas formas creo que te devuelve el valor de la bbdd en vb6

      Respuesta
      • el 23 noviembre, 2016 a las 11:30 pm
        Permalink

        Gracias
        por este detalle del «0» en el recordset no me salia
        Slds

        Respuesta
          • el 26 noviembre, 2016 a las 6:36 pm
            Permalink

            Hola un favor me puedes ayuda con una duda como puedo realizar una pregunta al foro
            Gracias

  • el 12 marzo, 2017 a las 7:13 pm
    Permalink

    como lleno un combobox con dos campos de una tabla acces

    Respuesta
    • el 14 marzo, 2017 a las 1:34 pm
      Permalink

      Tendrás que utilizar una concatenación, de manera que realmente se utilice como un solo campo. por ejemplo
      paraCombo = Variable1 & » / » & variable2
      combo.add paraCombo

      Respuesta
  • el 24 abril, 2017 a las 2:16 am
    Permalink

    Buenas noches estoy haciendo un sistema automatizado, con base de datos, y me gustaria que me mandaran un correo para enviarles lo que tengo hasta ahora, Gracias

    Respuesta
  • el 4 julio, 2018 a las 3:05 pm
    Permalink

    saludos amigo necesuta una ayuda si se puede. necesito llenar un segundo combobox dependiendo del primero asi como provincias y municipios. soy medio nuevo en esto utilizo acces me conecto con ADODB solo necesito un simple ejemplo para guiarme y poder realizarlo. en la tabla de acces tengo dos tablas la primera con los MUNICIPIOS que son como 12 y en otra tabla COMUNIDADES tengo las comunidades y las tengo separadas por el numero correspondiente al municipio ejemplo el id del municipio GUACARA es 5 y en las comunidades tengo 6 de ellas y todas el id es 5. ya el sistema me funcionaba pero se me daño el arranque del rprograma para hacer mis correciones y tuve q hacerlo todo de nuevo y no recuerdo como hiice esa parte saludos

    Respuesta

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.