Crear y guardar archivos de Excel dese access |
Responder |
Autor | |
MikeLG
Nuevo Unido: 05/Enero/2021 Localización: Guadalajara Estado: Sin conexión Puntos: 5 |
Opciones de entrada
Gracias(0)
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?
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14734 |
Opciones de entrada
Gracias(0)
|
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
|
|
MikeLG
Nuevo Unido: 05/Enero/2021 Localización: Guadalajara Estado: Sin conexión Puntos: 5 |
Opciones de entrada
Gracias(0)
|
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 |
|
MikeLG
Nuevo Unido: 05/Enero/2021 Localización: Guadalajara Estado: Sin conexión Puntos: 5 |
Opciones de entrada
Gracias(0)
|
Muchas gracias por responder, no te cite en el código por que apenas voy viendo como funciona el foro.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |