Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Blog Post

Aprende a usar Excel desde Access

30 de septiembre de 2021 ACCESS

En este video aprenderás a conectar Excel con Access, compartiendo funciones y datos entre estas dos fantásticas aplicaciones.

Espero que os guste.

Este es el código del video:

Option Compare Database
Option Explicit

Public Sub test()

    capturarFuncionPromedioExcel CurrentProject.Path & "\miExcel.xlsm", True

End Sub


Public Function capturarFuncionPromedioExcel(rutaExcel As String, Optional bolOculto As Boolean = False) As Variant
    
    
    On Error GoTo Control_Error
    
    
    Dim excelApp As Object
    Dim excelfile As Object
    Dim excelHoja As Object
    
    Dim strSQL As String
    Dim datAhora As Date
    Dim varPromedio As String
    Dim strHojaExcel As String
    
    Set excelApp = CreateObject("Excel.Application")
    If Not bolOculto Then excelApp.Visible = True
    Set excelfile = excelApp.Workbooks.Open(rutaExcel, False)
    
    datAhora = Now()
    ' Captura el dato
    varPromedio = Str(excelfile.Application.Run("basExcel.promedioMatriz"))
    strSQL = "INSERT INTO tblPromedios (Fecha, Promedio) VALUES (#" & datAhora & "#, " & varPromedio & ")"
    
    
    Debug.Print datAhora & " - " & varPromedio
    
    ' Guarda el dato

    CurrentDb.Execute strSQL
    
    strHojaExcel = "log"
    
    Set excelHoja = excelfile.Sheets(strHojaExcel)
    ' Envia el dato
    
'    Debug.Print ultimaFila(excelHoja)
    
    excelHoja.cells(ultimaFila(excelHoja) + 1, 1).Value = "Última captura realizada el " & datAhora & ". El valor obtenido fue de " & varPromedio
    
   
Control_Error:

    On Error Resume Next


    If rutaExcel <> "" Then
        excelfile.Save
        If bolOculto Then excelApp.Quit

            If Not (excelHoja Is Nothing) Then
            Set excelHoja = Nothing
        End If

        If Not (excelfile Is Nothing) Then
            Set excelfile = Nothing
        End If
        If Not (excelApp Is Nothing) Then
            Set excelApp = Nothing
        End If
    End If

End Function


Private Function ultimaFila(excelHoja As Object, Optional columna As Long = 1) As Long
    On Error Resume Next
    ultimaFila = excelHoja.Columns(columna).Find("*", _
        searchorder:=1, searchdirection:=2).Row
End Function
Taggs:
Related Posts
Opciones de impresión a través de código

Pregunta Sé cómo imprimir un informe mediante código y sé cómo hacer para que aparezca el cuadro de diálogo imprimir,…

Totales por página

Cómo conseguir en un informe calcular sólo el total para cada página

Write a comment