Base de datos : Abrir una base de datos externa
|
Autor/es: Juan M Afán de Ribera |
| Pregunta : ¿Qué código tengo que utilizar para abrir una base de datos externa y así tener acceso a los formularios e informes? |
Respuesta : Existen varias maneras de poder abrir una base de datos externa:
Puedes utilizar la función shell como una línea de comandos |
Dim AccessPath As String
Dim DbPath As String
AccessPath = SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE"
DbPath = "C:\bd1.mdb"
Shell AccessPath & " " & DbPath
|
| También puedes utilizar el método FollowHyperlink |
Dim DbPath As String
DbPath = "C:\bd1.mdb"
Application.FollowHyperlink DbPath
|
| E incluso puedes utilizar el API de Windows con funciones como ShellExecute o ShellExecuteEx |
Private 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
Sub OpenBd()
Dim DbPath As String
DbPath = "C:\Bd1.mdb"
ShellExecute 0&, vbNullString, DbPath, vbNullString, vbNullString, 0&
End Sub
|
Todo este tipo de código abrirá una base de datos y funcionará bien. Pero a partir de ahí, si quieres hacer algo con esa base de datos y tener control sobre sus objetos la cosa se va a complicar.
Para el caso de que desees manipular esa base de datos y lo que contiene, tendrás que utilizar Automatización. Con Automatización puedes tener control absoluto a través de código de esa base de datos (y de hecho de cualquier aplicación que permita esta técnica, pero eso ya es parte de otro tema).
En este caso os pondré un ejemplo simple de cómo abrir una base de datos y mostrar un formulario y un informe. |
' Ejemplo de automatización
Dim DbPath As String
Dim oApp As Access.Application
DbPath = "C:\bd1.mdb"
' instanciamos una nueva ventana de Access
Set oApp = New Access.Application
With oApp
' la hacemos visible
.Visible = True
' abrimos la base de datos
.OpenCurrentDatabase DbPath
' abrimos un formulario de esa base de datos
.DoCmd.OpenForm "Formulario1"
' abrimos un informe de esa base de datos
.DoCmd.OpenReport "Informe1", acViewPreview
' ejecutamos una función de esa base de datos
.Run "MiFuncion"
End With
Set oApp = Nothing
|
| Como podéis ver, la variable oApp es un objeto Application que representa a una aplicación Access. Dentro de esa variable tendremos acceso a todas las propiedades y métodos de la aplicación, así como a los objetos contenidos en la base de datos que abra. |
Ejemplos: |
Temas relacionados: |