Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/05/2004, 12:13
Avatar de aavg
aavg
 
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