Exportar consulta de access a excel eligiendo ruta

Tengo este código para exportar una consulta a una hoja de xlsx. El problema es que como podría hacer para que en lugar de tener que poner esto... "RutaDestino\NombreExcel.xls", True, "" me abra el navegador y el usuario pueda elegir la ruta en donde guardarlo. Asimismo os pregunto como se puede hacer para que por defecto al abrir el navegador ya le ponga el nombre que va a llevar el excel y si es posible que en el mismo excel exporte dos consultas en hojas distintas claro, la Consulta1 y la Consulta2

DoCmd. TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Consulta1", "RutaDestino\NombreExcel.xls", True, ""

2 respuestas

Respuesta
1

Javier, una sola pregunta. Cuando se abre el navegador, ¿Cómo sabe el sistema que nombre vas a ponerle al archivo Excel?

el nombre siempre será el mismo 

ejemplo: re_eo_aaaamm

Siento el retraso pero aquí en Cartagena estamos de fiestas de Cartagineses y Romanos. Supongamos que tengo una consulta 1 con los clientes de Alemania. En un formulario cualquiera le pongo un cuadro de texto donde voy a escribir el nombre( en caso de que el futuro nombre estuviera en algún control o en una variable sería más sencillo). Por cortesía, ya que no haría falta para nada, le pongo un cuadro de texto donde me va a mostrar la ruta donde va a guardar y escribir ese archivo de Excel.

Cuando pulso Crear Archivo

Me aparece la ruta donde lo va a crear( ya te dije que no es necesario, pero es didáctico) y por otro lado, en la carpeta Borrar

Ya me ha creado el archivo en dicha carpeta.

Y al pulsar el botón Enviar, me pasa los datos de la consulta1 al archivo Excel

Para ello uso la función Buscaarchivo, que en realidad es el "explorador". El código del formulario es

Public Function buscaArchivo() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
.InitialFileName = "C:\users\gonza\documentos\"
.InitialView = msoFileDialogViewDetails
If .Show = True Then
buscaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function
Private Sub Crear_Click()
Ruta = buscaArchivo() & "\" & "" & Me.Archivo & "" & "." & "xlsx"
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(Ruta, True)
End Sub
Private Sub Enviar_Click()
DoCmd.OutputTo acOutputQuery, "Consulta1", "ExcelWorkbook(*.xlsx)", "" & Me.Ruta & "", False, "",, acExportQualityPrint
End Sub

IMPORTANTE. Antes de trabajar, en el editor de VB pulsa Herramientas-Referencias y activa la casilla Microsoft Office XX.0 Object Library

Respuesta

Javier, escríbame a [email protected] y le suministro este ejemplo:

¡Gracias! 

Enviado correo

No he recibido su correo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas