Cargar items de tabla access en combobox

He conseguido agregar items desde un form a un combobox de otro form. Y estos items guardarlos por medio de ado en una tabla access.

Ahora lo que quiero es cargar esos items de la tabla acces en mi combobox.

Tengo este codigo pero me da fallo (me dice que no se puede encontrar el archivo)

Private Sub Form_Load()
Dim ConexBD As String 'declaramos una variable de tipo texto

'aquí debemos de poner nuestra base de datos con su ruta
ConexBD = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Proyecto BBDD.mdb; Jet OLEDB:Database"
'declaramos los objetos de base de datos y recordset (que será el que recorramos más adelante)
Dim BD As ADODB.Connection
Dim Rs As ADODB.Recordset

'Crear los objetos
Set BD = New ADODB.Connection
Set Rs = New ADODB.Recordset

'conecto con la base de datos
'aqui me da error y me dice "error en tiempo de ejecucion y que no se puede encontrar el archivo D:\Proyecto BBDD.mdb
' pero esa es la ruta donde tengo mi access
BD. Open ConexBD

'aquí es donde hacemos la consulta a la tabla de la base de datos Access
Rs. Open "SELECT * FROM plataformas ORDER BY plataformas", BD, adOpenDynamic, adLockOptimistic

While Rs.EOF = False
cbx_plataforma. AddItem Rs! Plataformas
Rs. MoveNext
Wend
Rs. Close

End sub

1 respuesta

Respuesta
2

Vaya por delante que de ADO poco controlo, pero prueba a poner el nombre del archivo entre comillas simples, así:

ConexBD = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source='D:\Proyecto BBDD.mdb'; Jet OLEDB:Database"

Ni con comillas simples ni dobles, ni quitando el "D:\". Si lo quito me da error que no se puede encontrar en disco C.

¿Alguna otra forma de conectar cbx_plataforma a la tabla access plataformas?

En esta web, te dice cómo hacer las cadenas de conexiones entre distintos programas:

https://www.connectionstrings.com/ 

Mi consejo es que no uses nombres de archivo con espacios, si puedes renombra la BD a por ejemplo, ProyectoBBDD.mdb, o Proyecto_BBDD.mdb, y pruebes así (estaba equivocado, es sin comillas simples):

ConexBD = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\ProyectoBBDD.mdb; Jet OLEDB:Database"

ó

ConexBD = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Proyecto_BBDD.mdb; Jet OLEDB:Database"

Nada, el mismo error. Lo renombre de las dos formas que me dijiste.

Ufff. Poco pirulo de programación. Me suena a chino todo eso!

Acabo de replicar lo que tienes y ese código me funciona sin problemas (incluso con el nombre de la BD original: Proyecto BBDD.mdb)

Lo único que se me ocurre que pueda original el error es que el archivo no se llame Proyecto BBDD.mdb, y sea, Proyecto BBDD. Accdb, por ejemplo. Comprueba que el nombre y extensión que pones en la cadena de conexión sean los correctos.

Nada, el mismo error.

Lo coloque en el Private Sub Form_Load() y me tira el error

Insisto, el código es correcto (y replicando lo que tienes a mi me funciona).

Si el mensaje de error te dice que no se encuentra el archivo, el error está o bien en el nombre, o en la extensión o en la ruta del archivo.

Me seguía dando error. Moví el proyecto al escritorio. Volví a hacer las conexiones de ado y todo ok. Guarde varias items, y se cargaban en el combobox sin problema

Cerre y abri el visual basic, comprobe y me da el mismo error en el mismo sitio.

NO LO ENTIENDO!

Pues ya no sé qué más decirte... Si con la nueva prueba te funciona y al cerrar Visual y volver abrirlo te deja de funcionar, igual el error lo tienes en el propio programa Visual Basic...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas