| |||
VB6 ayuda porfavor Veran soy novato en esto, tengo una Base de Datos access, quiero que se conecte a trabes de visual basic, pero de la siguiente forma, hay un boton llamado "listado de pelis" que una ves abierto se habre una ventana con un listbox, lo que quiero es que cuando se pulse el boton listado de pelis, en el listbox que se habra, me salga el contenido de la base de datos i del campo que quiero, me gustaria saber como lo tengo que hacer, y si puede ser que me den el codigo para las dos cosas, alguien me podria ayudar porfavor? |
| ||||
Por cierto olvide decirte algo... Tienes que ir al menu PROYECTO -> REFERENCIAS y agregar la libreria Microsoft ActiveX Data Objects, de lo contrario no funcionara
__________________ 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 |
| |||
Probe tu codigo y me da el siguiente error: Error'-2147467259(80004005)'en tiempo de ejecucióm: [Microsoft][Controlador ODBC Microsoft Access]No es un nombre de archivo válido. en la sentencia Cnn.Open que hago para que funcione? Tambien me da un error en esta sentencia .Open "Select TITULO from PELIS" TITULO: campo de la base de datos PELIS: Tabla de la base de datos Por cierto el bono listado de pelis esta en otro form, si quiero que s agregue automaticamente el contenido de la BD al listbox, apretando ese boton cuando se habra el nuevo form, eso se puede hacer, si no da igual metere un boton en dicho form i que lo haga, pero dime que hago para que me funcione, me da este error. gracias de adelantado Última edición por slope; 16/05/2004 a las 04:43 |
| ||||
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 |
| ||||
Se me fue el enter y se envio el mensaje incompleto jeje, te decia que .... (Hablando de la segunda solucion) De esta manera no importa en el formulario en que pongas tu boton y el listbox tu siempre podras utilizar For Contador = 1 To Rst.RecordCount List1.AddItem Rst.Fields(0) Rst.MoveNext Next ya que son variables publicas dentro de un modulo Espero haber sido explicito, y sino pues aqui estamos
__________________ 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 |
| |||
Oye, i para que el boton ste en otro formulario i el listbox en otro que es mi caso, que hago pongo este codigo en lo de modulos tambien: For Contador = 1 To Rst.RecordCount lstpelis.AddItem Rst.Fields(0) Rst.MoveNext Next ????????????????? |
| ||||
Suponiendo que el boton esta en el FORM1 y el listbox esta en FORM2 'Codigo del boton en el FORM1.... For Contador = 1 To Rst.RecordCount FORM2.lstpelis.AddItem Rst.Fields(0) Rst.MoveNext Next
__________________ 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 |
| |||
Me da el error : Error'91' en tiempo de ejecución: Variable de tipo Object o la variable de bloque With no está establecida i me marca esto en fluorescente amarillo : For Contador = 1 To MisPelis.RecordCount Como siempre, que hago? Última edición por slope; 17/05/2004 a las 13:22 |
| ||||
No estas inicializando bien el recordset MISPELIS.. debe de haber un error en tu incializacion o al abrirlo... verificalo o envia mejor tu proyecto.. creo que sera mas facil
__________________ 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 |