Utilizando ActiveX Data Objects (ADO) con una base de datos Access a la que se conecta con el motor Jet suele dar problemas.
La conectividad a la base de datos funcionará perfectamente hasta que deje de hacerlo. Típicamente se presentará el siguiente mensaje:
Microsoft JET Database Engine error '80004005' Error no especificado
Supongamos que tenemos un código en ASP 3 con VBScript que conecta a una base de datos Access en versión 2000/2003 (Jet 4.0), o Access 97 (Jet 3.51):
Dim cnnConexion
Set cnnConexion=Server.CreateObject("ADODB.Connection")
cnnConexion.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("datos.mdb")
…
Para evitar el error 80004005, de Jet, lo conveniente sería convertirlo para que usara el driver de Access en vez del motor Jet. Quedaría así:
Dim cnnConexion
Set cnnConexion=Server.CreateObject("ADODB.Connection")
cnnConexion.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("datos.mdb")
…
No he investigado en profundidad las causas del problema, aunque parece tener relación con que por algún motivo la BD quede bloqueada, impidiendo futuras conexiones. En cualquier caso como se puede ver la opción es bien sencilla: Pasar de Jet y usar Access directamente.
Ay!! Este post me hubiese ido de fábula hace un par de semanas 🙂
Es que no se puede llegar siempre a tiempo a todo Cervecerix.