Buenas foreros. Tengo el siguiente codigo:
Dim BDD As Database 'Objeto para manejar la base de datos
Dim TBL As Recordset 'Objeto para manejar la Tabla
Set BDD = OpenDatabase("Pladur.mdb") 'Abre la base de datos
Dim SQL As String
SQL = "SELECT * FROM muros"
Set TBL = BDD.OpenRecordset(SQL) 'TBL almacena todos los valores de la tabla
TBL.MoveFirst 'nos posicionamos en el primer registro de la tabla
Do Until TBL.EOF ''La propiedad EOF se pone TRUE cuando se a llegado al final de la tabla
List1.AddItem TBL("material")
TBL.MoveNext 'pasamos al siguiente registro
Loop
Me da un error de que no coinciden los tipos en la linea:
Set TBL = BDD.OpenRecordset(SQL) 'TBL almacena todos los valores de la tabla
Si no me equivoco la sonsulta la hace bien ya que si en la sentencia SQL intento buscar en una tabla que no existe me dice que esa tabla no se puede encontrar.
Creo que el fallo esta al hacer la asignacion pero no se como solucionarlo.
Por ultimo decir que la base de datos es de access 2000.
Gracias por todo.
Te pongo lo que pone el msdn:
Para los objetos Connection y Database:
Set variable = objeto.OpenRecordset (origen, tipo, opciones, bloquearmodificaciones)
Valores
Puede utilizar una de las siguientes constantes para el argumento tipo.
Constante Descripción
dbOpenTable Abre un objeto Recordset de tipo Table (sólo espacios de trabajo Microsoft Jet).
DbOpenDynamic Abre un objeto Recordset de tipo Dynamic, que es parecido a un cursor dinámico ODBC (sólo espacios de trabajo ODBCDirect)
dbOpenDynaset Abre un objeto Recordset de tipo Dynaset, que es parecido a un cursor de conjunto de claves ODBC.
dbOpenSnapshot Abre un objeto Recordset de tipo Snapshot, que es parecido a un cursor estático ODBC.
dbOpenForwardOnly Abre un objeto Recordset de tipo Forward-only.
Nota Si abre un objeto Recordset en un espacio de trabajo Microsoft Jet y no especifica un tipo, el método OpenRecordset crea una objeto Recordset de tipo Table, si es posible. Si especifica una tabla vinculada o una consulta, el método OpenRecordset crea un objeto Recordset.de tipo Dynaset. En un espacio de trabajo ODBCDirect, el valor predeterminado es dbOpenForwardOnly.
Se supone que te crea un objeto recordset de tipo table.....si es posible claro. Prueba con:Set TBL = BDD.OpenRecordset(SQL, dbOpenTable)
y a partir de aquí, si no te funciona, prueba con todos.
Suerte.
Poniendo :
----------------------------------------
Dim BDD As Database
TablaSet BDD = OpenDatabase("Pladur.mdb")
Dim SQL As String
SQL = "SELECT * FROM muros"
Set TBL = BDD.OpenRecordset(SQL)
TBL.MoveFirst
Do Until TBL.EOF
List1.AddItem TBL("material")
TBL.MoveNext
Loop
---------------------------------------
...tiene que andar...fijate si estas referenciando el Proyecto a ADO 3.51...
o quiza tenes que referenciarlo a SQL Parser...una vez me paso eso e hice esto y listo...
Slds.-