Macro de Access
Tengo una duda, no se como hacer para correr un Macro de Access desde una aplicación en VB 6.0.
Tengo un código, pero el mismo intenta abrir la base, y no funciona.
Tengo un código, pero el mismo intenta abrir la base, y no funciona.
POR FAVOOOR!! alguien que me ayude!!!
Estoy haciendo un programa en VB, el cual accede a una base de datos creada en Access.
Uno de las funcionalidades que le quiero dar a este soft. es que tome automáticamente datos de una planilla de Excel, y los guarde un campo de la base de datos.
Access puede hacer esto de manera muy sencilla mediante macros.
Mi intención es poder ejecutar estos macros desde mi aplicación , creando un objeto Access o algo similar. O en su defecto que alguien me ayude con alguna otra idea para tomar esos datos y guardarlos Access.
Espero haber sido más claro ahora....
Agradezcor cualquier idea o sugerencia!!!
Saludos,
Estoy haciendo un programa en VB, el cual accede a una base de datos creada en Access.
Uno de las funcionalidades que le quiero dar a este soft. es que tome automáticamente datos de una planilla de Excel, y los guarde un campo de la base de datos.
Access puede hacer esto de manera muy sencilla mediante macros.
Mi intención es poder ejecutar estos macros desde mi aplicación , creando un objeto Access o algo similar. O en su defecto que alguien me ayude con alguna otra idea para tomar esos datos y guardarlos Access.
Espero haber sido más claro ahora....
Agradezcor cualquier idea o sugerencia!!!
Saludos,
Hace algunos dÃas que siguo tú pregunta para ver si hay alguna forma de hacer lo que pides, que la habrá supongo pero no la conozco.
En cualquier caso, y dando un rodeo posiblemente innecesario, se me ocurre que lo pordrÃas hacer escribiendo en un fichero que funcione a modo de interfaz entre VB y Access:
1) VB escribe en el fichero lo que quiere que se haga y abre Access.
2) Access al abrirse comprueba (Auoexec) lo que haya en el fichero y lo ejecuta (Eval), luego actualiza el fichero y se cierra.
También podrÃas emplear algún tipo de control como el Winsock para que se comuniquen entre los dos (VB y Access).
Poco más se me ocurre, en cualquier caso si encuentras alguna solución te agradeceria que lo comentases en el foro.
Saludos.
En cualquier caso, y dando un rodeo posiblemente innecesario, se me ocurre que lo pordrÃas hacer escribiendo en un fichero que funcione a modo de interfaz entre VB y Access:
1) VB escribe en el fichero lo que quiere que se haga y abre Access.
2) Access al abrirse comprueba (Auoexec) lo que haya en el fichero y lo ejecuta (Eval), luego actualiza el fichero y se cierra.
También podrÃas emplear algún tipo de control como el Winsock para que se comuniquen entre los dos (VB y Access).
Poco más se me ocurre, en cualquier caso si encuentras alguna solución te agradeceria que lo comentases en el foro.
Saludos.
Gracias por la respuesta.
Acá encontré algo muy parecido a lo que necesito
Lo he probado, pero el problema es que abre el Access. MI intención es que no lo haga. Se me ocurre definiendo un objeto access... pero no estoy seguro de eso.
SI tienes mejores ideas viendo este código serÃa genial!!
Private Sub RunAccessMacro(ByVal strDB As String, ByVal strMacro As String, _
Optional lngRunX As Long = 1, _
Optional CloseOnComplete As Boolean = True)
On Error GoTo Hell
'Create a Access object
Dim objAccess As Access.Application
Set objAccess = New Access.Application
'Open the database and run the macro
With objAccess
.OpenCurrentDatabase strDB
.DoCmd.RunMacro strMacro, lngRunX
'Close the Database
If CloseOnComplete Then .CloseCurrentDatabase
End With
Set objAccess = Nothing
Exit_For:
On Error GoTo 0
Exit Sub
Hell:
GoTo Exit_For
End Sub
Saludos y gracais por toda ayuda!!
Acá encontré algo muy parecido a lo que necesito
Lo he probado, pero el problema es que abre el Access. MI intención es que no lo haga. Se me ocurre definiendo un objeto access... pero no estoy seguro de eso.
SI tienes mejores ideas viendo este código serÃa genial!!
Private Sub RunAccessMacro(ByVal strDB As String, ByVal strMacro As String, _
Optional lngRunX As Long = 1, _
Optional CloseOnComplete As Boolean = True)
On Error GoTo Hell
'Create a Access object
Dim objAccess As Access.Application
Set objAccess = New Access.Application
'Open the database and run the macro
With objAccess
.OpenCurrentDatabase strDB
.DoCmd.RunMacro strMacro, lngRunX
'Close the Database
If CloseOnComplete Then .CloseCurrentDatabase
End With
Set objAccess = Nothing
Exit_For:
On Error GoTo 0
Exit Sub
Hell:
GoTo Exit_For
End Sub
Saludos y gracais por toda ayuda!!
