none
ERROR No se pudo encontrar el archivo ISAM instalable!!

    Question

  • Hola amigos!! acudo a ustedes como un novato de la programacion que se ha propuesto un desafio, pero me cuesta seguir andando con semejante error.

    Resulta que quiero hacer un programa en VB 6.0 con que se pueda interactuar con una base de datos de Microsoft Access pero al querer correr el programa para probar, me sale un error frustrante:

    Run-time error '-2147467259 (80004005)':

    No se pudo encontrar el archivo ISAM instalable.

    el archivo que interactua con el proveedor (msrd2x40.dll) se encuentra en c:/windows/system32 como debe ser, y ya lo he registrado al registro para comprobar que no haya diferencias en la ruta del archivo, no me funciono. (de Proveedor uso el Microsoft Activex Data Objetc 2.8 en el codigo)

    He intentado crear la misma base de datos en access 2007 y a traves del mismo Visual Data Manager del VB (la cree en ambas versiones, la 2.0 y la 7.0) para ver si era un problema de incompatibilidad con el proveedor y nada de nada.

    Hasta le he instalado el Service Pack 6 al visual para ver si corregia el error y nada de nada

    Espero me puedan ayudar amigos y no verme frustrado en mi intento de crear mi 1er programa que trabaje con una base de datos...

    Datos del programa:

    El programa consiste en mostrar la informacion de una base de datos sencilla a manera de lista. Posee un formulario con un ListBox y un CommandButton, la base de datos es de extension .mdb y posee 5 campos (Nombre, Apellido, Telefono, Direccion y Correo), todos son del tipo Texto

    Codigo:

    Private Sub Command1_Click()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    cn.Open "provider=Microsoft.Jet.OLEDB.4.0;" & "DataSource=c:\agenda.mdb"
    rs.Source = "contactos"
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockOptimistic
    rs.Open "select * from contactos", cn
    rs.MoveFirst
    Do Until rs.EOF
        List1.AddItem rs.Fields("nombre") & "" & rs.Fields("apellido") & "" & rs.Fields("telefono") & "" & rs.Fields("direccion") & "" & rs.Fields("correo")
        rs.MoveNext
    Loop
    End Sub

    Datos de mi maquina:

    Windows XP Profesional 2002 SP2

    Procesador 1.6 GHz

    798 Mhz, 504 MB RAM

     

    Saturday, October 29, 2011 10:36 PM

Answers

  • Mira en http://www.connectionstrings.com/

    allí podrás encontrar la cadena de conexión según el tipo de base de datos.

     

    Saludos,

    Javier J

    • Marked as answer by TheZuliano Friday, November 04, 2011 12:18 PM
    Thursday, November 03, 2011 8:56 AM

All replies

  • Debes registrar las dll's

    msxbse35.dll

    MSXBDE40.dll

     

     

    Saludos,

    Javier J.

    Monday, October 31, 2011 4:36 PM
  • Voy a proceder a registrarlas, ojala de resultado, te aviso...
    Monday, October 31, 2011 10:29 PM
  • Amigo, no me resulto :S

     

    De los 2 archivos dll, solo tenia el "MSXBDE40.dll" pero de todos modos baje el otro ("msxbse35.dll") y ambos los registre con el Microsoft (C) Register Server...me siguen dando el mismo dolor de cabeza..

    algun otra causa de este error?

    gracias de antemano por responder


    PD: Cabe destacar que en el debug del codigo, siempre se para (resalte amarillo) en la linea  

    cn.Open "provider=Microsoft.Jet.OLEDB.4.0;" & "DataSource=c:\agenda.mdb"

    No se si pueda ser alguna pista del error, haz la prueba con el mismo codigo en tu VB 6 a ver que tal te resulta

    PD2: Ambos archivos se encuentran en la carpeta system32



    • Edited by TheZuliano Tuesday, November 01, 2011 5:04 PM
    Tuesday, November 01, 2011 2:38 AM
  • strconn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\agenda.mdb"

    set conn = Server.Createobject("adodb.connection")


    conn.open strconn

    set rs = CreateObject("ADODB.Recordset")

    rs.open sqltxt, Conn

     

    Wednesday, November 02, 2011 11:28 AM
  • Amigo, coloque el codigo de esta manera:

    Private Sub Command1_Click()
    strconn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\agenda.mdb"
    Set Conn = Server.CreateObject("adodb.connection")
    Conn.Open strconn
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sqltxt, Conn
    rs.Source = contactos
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockOptimistic
    rs.Open "select * from contactos", cn
    rs.MoveFirst
    Do Until rs.EOF
        List1.AddItem rs.Fields("nombre") & "" & rs.Fields("apellido") & "" & rs.Fields("telefono") & "" & rs.Fields("direccion") & "" & rs.Fields("correo")
        rs.MoveNext
    Loop
    End Sub

    pero ahora se detiene en la linea

    Set Conn = Server.CreateObject("adodb.connection")

    Me notifica un error Run-time '404' Objet required

    Que me falta por agregar?

    Wednesday, November 02, 2011 2:56 PM
  • Si, te puse código ASP.

    ¿Con que versión de Access hiciste la base de datos?

     

     

     

    Wednesday, November 02, 2011 6:26 PM
  • En formato access 2007, 2002-2003 (creo), 2000 y desde el Visual Data Manager del VB...he hecho diferentes copias para descartar incompatibilidad...me falta probar esos formatos con el codigo que me facilitaste, me podrias pasar informacion para aprender sobre ese tipo de conexión si no es mucha molestia?

     

    de antemano muchisimas gracias por asistirme

    Wednesday, November 02, 2011 8:05 PM
  • Mira en http://www.connectionstrings.com/

    allí podrás encontrar la cadena de conexión según el tipo de base de datos.

     

    Saludos,

    Javier J

    • Marked as answer by TheZuliano Friday, November 04, 2011 12:18 PM
    Thursday, November 03, 2011 8:56 AM
  • Gracias Javier, muy buena la web, termine probando con el controlador para base de datos de Microsoft ACE 12.0 pero no me funciono, aunque no esperaba que funcionara ya que en windows Xp especifica que solo sirve en SP3 y tengo es el SP2..

    Aunque afortunadamente, tando le di sin darme por vencido que logre la conexion!!

    lo logre cambiando la linea de codigo, remplace esta:

    cn.Open "provider=Microsoft.Jet.OLEDB.4.0;" & "DataSource=c:\agenda.mdb"


    Por esta:

    cn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\agenda.mdb" 

    Y al parecer funciona tanto en base de datos creada con el Visual Data Manager, como con aquellas creadas en Microsoft Access 2000

    1 semana detenido todo mi proyecto, porque falto 1 espacio!! (puse "DataSource" en vez de "Data Source") porque ni siquiera el punto y comas (antes del "Data Source") con o sin las comillas y el "&" iban a hacer alguna diferencia corriendo el programa..

    Bueno doy este post por resuelto, agradeciendo una vez mas a Javier por su asistencia, me sirvio de gran ayuda buscando solucion a esto y ya me abrio una buena puerta para aprender sobre conexiones a bases de datos..

     

    Gracias a todos!!

    Friday, November 04, 2011 3:43 AM