
16/05/2004, 12:13
|
 | | | Fecha de Ingreso: abril-2002 Ubicación: Morelia México
Mensajes: 356
Antigüedad: 22 años, 9 meses Puntos: 1 | |
Que tal:
por lo que me dices pienso que el problema esta en la linea antes del .open la de .ConnectionString
Asegurate que la instruccion "Cnn.ConnectionString ..." este en una misma línea y en otra linea el Cnn.Open
Si te das cuenta en la instruccion del ConnectionString hay un comando "App.Path" eso indica que tratas de abrir una base de datos que se encuentra en el mismo folder (ruta en disco) que tu proyecto o ejecutable. Si no es asi, sustituye la instruccion "App.Path" por tu Ruta en disco, ejemplo "C:\Bases\Prueba.mdb"
'Esto seria cuando tu base esta en el mismo folder que el proyecto
Cnn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\Prueba.mdb"
Cnn.Open
'Esto cuando esta en otra Ruta
Cnn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Bases\Prueba.mdb"
Cnn.Open
'No utilices la instruccion ON ERROR RESUME NEXT en estos casos ya que de haber un error al conectarte a la base pues no lo vas a detectar y simplemente no abrira la base de datos.
Y como no abre bien la base de datos pues es obvio que al querer abrir el el recordset genere un error de la misma manera
.Open "Select TITULO from PELIS"
ya que el recordset se basa en la Conexion Cnn.
Haz lo que te indico arriba y ya veras que te funciona.
De lo que me dices del listbox, si es que este se encuentra en otro formulario hay 2 opciones.
---------------------------------------------------------------------------------
1.- Suponiendo que las variables y la apertura de la base lo pusiste en el formulario FORM1 y que el boton y el listbox se encuentran en el FORM2.
En el Form2 en el codigo del Boton Command1 pon lo siguiente
Private Sub Command1_Click()
Dim Contador As Integer
For Contador = 1 To Form1.Rst.RecordCount
List1.AddItem Form1.Rst.Fields(0)
Form1.Rst.MoveNext
Next
End Sub
---------------------------------------------------------------------------------
2.- Yo preferiria esta opcion ya que es mucho mas eficiente
Agrega un modulo a tu proyecto y declara ahi tus variables para la conexion y el recordset
'Declaracion de variables para abrir la base de datos
Public Cnn As New ADODB.Connection
Public Rst As New ADODB.Recordset
y despues de eso, en el mismo modulo pon lo siguiente
Sub main()
Cnn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\Prueba.mdb"
Cnn.Open
With Rst
.ActiveConnection = Cnn
.LockType = adLockReadOnly
.CursorType = adOpenStatic
.Open "Select * from Tabla1"
End With
Form1.Show
End Sub
Ahora en el Menu PORYECTO -> PROPIEDADES DE PROYECTO... En la pestaña GENERAL elige como OBJETO INICIAL Sub Main y quita del Form1 el codigo que habias puesto en el Form Load () ya que ahora se encuentra el codigo en el modulo y sera accesible para todos los formularios
De esta manera no importa en el formulario q
Paso siguiente
__________________ Abraham Velasco
Usuario # 516 en los Foros del Web.
El hombre no vale por lo que sabe, sino por lo que transmite
C'est parce qu'il y a un Dieu que nous sommes libres |