** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Crear y guardar archivos de Excel dese access
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Crear y guardar archivos de Excel dese access

 Responder Responder
Autor
Mensaje
MikeLG Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 05/Enero/2021
Localización: Guadalajara
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita MikeLG Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Crear y guardar archivos de Excel dese access
    Enviado: 05/Enero/2021 a las 01:50
Buenas tardes, soy nuevo, no soy un experto en programación y por lo mismo a en ocasiones utilizo código que me encuentro en la web, hoy necesito reparar un código que me encontré y adaptarlo, el código crea un archivo de Excel pero no lo guarda, necesito guardarlo en una ruta y con un nombre específico, el tema es que según el día puede ser que ejecute solo un archivo o n cantidad de archivos por lo que lo hago con un ciclo, el cual ejecuta el sub que crear el archivo, ya logro h0acerlo para el primer archivo pero cuando entra al segundo ciclo, al llegar a la parte donde guardo me indica que el objeto no está seteado error91. Me pueden ayudar?
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13553
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Enero/2021 a las 09:49
Hola MIkeLG y bienvenido al foro,

Para poderte dar pistas sería muy interesante ver el código que utilizas.

El salvado de un libro de Excel se hace mediante la instrucción SaveAs de Excel seguido de la ruta completa.

Si recibes el error 91 es porque probablemente utilizas una variable de objeto sin valor (la instancia a Excel, posiblemente)

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
MikeLG Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 05/Enero/2021
Localización: Guadalajara
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita MikeLG Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Enero/2021 a las 18:27
Aquí esta el código que utilizo para crear y guardar los excel:
NOTA: el sub ExporExcel es llamado por un ciclo en un sub mas arriba donde se generan de forma dinamica las variables para la creacion de los archivos, es decir los datos que contendran y el nombre con el que deben generarse. 

'Option Compare Database
Sub ExporExcel()
Dim APIExcel As Object
Dim AddLibro As Object
Dim AddHoja As Object
Dim nombreHoja As String
Dim i As Integer
Dim Consulta As New ADODB.Recordset
'Creamos conexión y recorset
Set cnn = CurrentProject.Connection
Consulta.Open "SELECT * FROM Mailing", cnn, adOpenForwardOnly, adLockReadOnly
'Damos nombre a la hoja con la que vamos a exportar los datos
nombreHoja = "Mail"
'Creamos objeto excel y nuevo libro y no mostramos el archivo
Set APIExcel = CreateObject("Excel.Application")
Set AddLibro = APIExcel.Workbooks.Add
APIExcel.Visible = False
'Añadimos hoja al libro nuevo y nombramos pestaña
Set AddHoja = AddLibro.Worksheets(1)
If Len(nombreHoja) > 0 Then AddHoja.Name = Left(nombreHoja, 30)
'Traemos los datos de cabecera de la tabla Access y los pegamos en la hoja excel
columnas = Consulta.Fields.Count
For i = 0 To columnas - 1
APIExcel.Cells(1, i + 1) = Consulta.Fields(i).Name
Next i
'Pegamos los datos de la tabla en la nueva hoja
Consulta.MoveFirst
AddHoja.Range("A2").CopyFromRecordset Consulta
'Damos formato a las columnas, ajustando contenidos
With APIExcel.ActiveSheet.Cells
.Select
.EntireColumn.AutoFit
.Range("A1").Select
End With
'Mostramos la hoja
APIExcel.Visible = True
'cerramos los objetos de la consulta
Consulta.Close
cnn.Close

'APIExcel.SaveAs FileName:=link & SaveName & ".xlsx"
'DoCmd.Save acForm, link & archivo & ".xlsx"
      ' ActiveWorkbook.SaveAs FileName:=link & _
          ' SaveName & ".xlsx"

 
SaveWithVariableFromCell

    'Excel.Close
    APIExcel.Application.DisplayAlerts = True
    APIExcel.Quit
    APIExcel = Nothing
    
End Sub

   Sub SaveWithVariableFromCell()
       Dim SaveName As String
       SaveName = archivo
       ActiveWorkbook.SaveAs FileName:=link & _
           SaveName & ".xlsx"
       ActiveWorkbook.Close
   End Sub

Arriba
MikeLG Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 05/Enero/2021
Localización: Guadalajara
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita MikeLG Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Enero/2021 a las 18:28
Publicado originalmente por xavi xavi escribió:

Hola MIkeLG y bienvenido al foro,

Para poderte dar pistas sería muy interesante ver el código que utilizas.

El salvado de un libro de Excel se hace mediante la instrucción SaveAs de Excel seguido de la ruta completa.

Si recibes el error 91 es porque probablemente utilizas una variable de objeto sin valor (la instancia a Excel, posiblemente)

Un saludo

Muchas gracias por responder, no te cite en el código por que apenas voy viendo como funciona el foro.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable