Macro de Access

felipeuy
25 de Mayo del 2005
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.

felipeuy
25 de Mayo del 2005
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,

Sergok
25 de Mayo del 2005
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.

felipeuy
25 de Mayo del 2005
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!!


felipeuy
25 de Mayo del 2005
Por favooorrrr alguien que me responda!!!!!!!!!!!

Gracias y Saludos!!