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 ConexBDRs.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!
Comments
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)
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
me sale un error con AddItem
¿has escrito bien Additem? 😀 sin más información poco te podré ayudar!
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
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.
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
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
Gracias
por este detalle del “0” en el recordset no me salia
Slds
Nada, para eso se comparte y escribimos 😉
Hola un favor me puedes ayuda con una duda como puedo realizar una pregunta al foro
Gracias
como lleno un combobox con dos campos de una tabla acces
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
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
Gracias por querer enviarnos código… ¿pero qué necesitas? 🙂
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
La respuesta la tenemos documentada
http://vertutoriales.com/como-se-hace/como-hacer-una-dependencia-de-un-combobox2-de-combobox1-en-vb-6-0/
A ver si te vale 😉
Gracias el primer video no existe y el segundo no me funciona por que quiero que me muestre los de la base de dato por si algun dia hace falta una provincia o comunidad solo la agreguen desde acces o les hago un formulario para agregar
Disculpa, me equivoqué de enlace
http://vertutoriales.com/cargar-informacion-en-un-combobox-al-seleccionar-una-opcion-en-otro-combobox/
En este sí se ve 🙂