Macros de Access en Excel

No encuentro la manera de poder ejecutar una macro de Access en Excel. Lo he intentado por las dos vías y nada.
Desde Access no puedo llamar a las macros de Excel ni viceversa...¿estoy pidiendo peras al olmo o que es lo que ocurre?

1 Respuesta

Respuesta
1
Explícame qué es lo que quieres: si copiar el código de Access de alguna manera en Excel, o si desde Excel quieres abrir Access y ejecutar la macro.
Si es lo primero, envíame la macro a
[email protected]
La secuencia sería:
1. Abrir Excel
2. Ejecutar Macro
2.1- Macro llama a 1ª macro de Access
2.2- continua con comandos de Excel
2.3- Llama a la 2ª macro de Access
2.4- Vuelve a Excel y termina
La idea es que desde un report en Excel, Access maneja todos esos datos para realizar los oportunos cálculos, creando 6 tablas donde divide esos datos. Acto seguido, Excel importa en 6 plantillas las respectivas tablas, con las cuales continua haciendo otros cálculos de totales, etc. Pero las tablas de Access deben ser borradas para poder utilizarlas posteriormente, lo cual está automatizado en otra macro.
No se si te aclara algo, pero no es sencillo de explicar. La verdad es que es bastante urgente, pero entenderé que con esta explicación no veas claro el asunto. Gracias de antemano
Puedes llamar a una macro de Access mediante el siguiente procedimiento:
Set access = CreateObject("Access.Application")
With access
.OpenCurrentDatabase "C:\mi ruta\mi base.mdb"
. Run "mi macro"
. Quit
End With
Set access = Nothing
Si la macro no la creaste en Visual Basic, primero deberás convertirla.
Explícame por qué quieres hacer esto, ya que para manejar bases de datos .mdb no es necesario ni siquiera tener instalado Access. Si no sabes esto, con gusto te lo explico. Suerte.
La verdad es que no me ha funcionado lo que me has puesto, me sale un error cuando intenta acceder a la macro. Aunque lo que he hecho finalmente es llamar a la macro de Excel desde Access de la siguiente forma:
Function XLMacro()
Dim XL As Object
Set XL = CreateObject("Excel.Application")
XL.Workbooks. Open "Ruta...\Macro.xls"
XL.Run "Nombre de la macro"
End Function
Y funciona, así que no voy a complicarme la vida.
De todas maneras me podrías explicar que es eso de que no necesito tener instalado Access para manejar un archivo .mdb.
Muchas gracias.
Te pido que finalices la pregunta; ante cualquier duda, pregunta nuevamente.
Para manejar una base de datos desde Excel, en el Editor de Visual Basic agrega la referencia (menú Herramientas/Referencias...) Microsoft DAO 3.5 (ó 3.6 para Access 2000). El siguiente código va mostrando las tablas de una base de datos, con la cantidad de campos y registros en cada una.
Sub leer_base()
Dim base As Database
Dim tabla As TableDef
Dim consulta As Recordset
Set base = OpenDatabase("tu ruta\tu base.mdb") 'abre la base
For Each tabla In base.TableDefs 'recorre las tablas
If tabla.Attributes = 0 Then 'evita las tablas internas de Access
Set consulta = base.OpenRecordset("SELECT * , * FROM " & tabla.Name) 'abre el recordset:en este caso es toda la tabla
consulta.MoveLast 'va al último registro para poder contarlos
MsgBox "Tabla encontrada:" & vbNewLine & tabla.Name & vbNewLine & tabla.Fields.Count & " campos" & vbNewLine & consulta.RecordCount & " registros"
consulta.Close 'cierra el recordset
End If
Next
base.Close
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas