Error al abrir una base de datos.

15/10/2003 - 13:40 por Rodrigo Diaz | Informe spam
Buenas tardes, ¿cómo puedo abrir una base de datos de
Microsoft Acces a través de código desde otra base de
datos?

Código de ejemplo:

Dim oMSAccess As Access.Application

Set oMSAccess = CreateObject("Access.Application")
oMSAccess.OpenAccessProject C:\MiBaseDatos.adp, False
oMSAccess.Visible = True

Funciona para abrir archivos de extensión adp, pero cuando
quiero abrir archivos mdb, es decir, C:\MiBaseDatos.mdb
aparece el siguiente mensaje de error:

"Se ha producido el error '7866' en tiempo de ejecución.

Microsoft Access no puede abrir la base de datos porque
falta o porque está abierta de forma exclusiva por otro
usuario."

Pero no es cierto que falte ni que esté abierta. ¿Qué
falla?

MUCHAS GRACIAS
 

Leer las respuestas

#1 Búho
15/10/2003 - 13:54 | Informe spam
Hola...mirate esta respuesta que me dio Juan M hace ya tiempo
http://personal.telefonica.terra.es...ertura.txt

de todas formas...podrias intentarlo asi
Dim AccessApp As New Access.Application
AccessApp.OpenCurrentDatabase ("c:\mibd.mdb")
AccessApp.Visible = True
etc
etc
Set AccessApp = Nothing

...o esta otra, si la base a abrir tenga contraseña

Function BuhoAccess2000()
'Esta es la que hacía yo hasta ahora desde Access 2000
Dim db As Database
Dim InstanciaAccess As Access.Application
Set InstanciaAccess = New Access.Application
Set db = InstanciaAccess.DBEngine.OpenDatabase("c:\twpac\datos.mdb", False,
False, ";PWD30086")
InstanciaAccess.OpenCurrentDatabase "c:\twpac\datos.mdb"
'si quería ver la MDB fisicamente abierta:
InstanciaAccess.Visible = True
'aqui operaría con dicha MDB
'etc etc
db.Close
Set db = Nothing
End Function



de todas formas...intenta abrirla tambien mediante la API a ver si te da el
mismo error, en cuyo caso deberiamos buscar otras respuestas (Que la MDB
este mal, que realmente ya este abierta en modo exclusivo...)

Intenta con esto...
'Esto ene un modulo
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal
hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
As Long

'Esto en cualquier boton de comando de un formulario
Dim FrmVentaActiva As Form
Set FrmVentaActiva = Me
ShellExecute FrmVentaActiva.hwnd, "open", "C:\Ruta\DATOS.MDB", "", "", 1

Ojo que en la declaracion de API, se cortan las lineas y tiene que ir todo
en una sola linea


Saludos desde Valladolid
Francisco Javier García Aguado

http://www.buho.tk
http://www.clikear.com/webs/accessbhuo/
http://groups.msn.com/Access2000VisualBasic/

Gracias por no enviarme preguntas a mi correo.
"Rodrigo Diaz" escribió en el mensaje
news:065601c39311$33d8a8f0$
Buenas tardes, ¿cómo puedo abrir una base de datos de
Microsoft Acces a través de código desde otra base de
datos?

Código de ejemplo:

Dim oMSAccess As Access.Application

Set oMSAccess = CreateObject("Access.Application")
oMSAccess.OpenAccessProject C:\MiBaseDatos.adp, False
oMSAccess.Visible = True

Funciona para abrir archivos de extensión adp, pero cuando
quiero abrir archivos mdb, es decir, C:\MiBaseDatos.mdb
aparece el siguiente mensaje de error:

"Se ha producido el error '7866' en tiempo de ejecución.

Microsoft Access no puede abrir la base de datos porque
falta o porque está abierta de forma exclusiva por otro
usuario."

Pero no es cierto que falte ni que esté abierta. ¿Qué
falla?

MUCHAS GRACIAS

Preguntas similares