ACCESS: Escribir consulta en un archivo de Excel

Se tiene la siguiente consulta SQL en Access 2007
SELECT VISITAS.Fecha, EMPRESAS.RAZON_SOCIAL, VISITAS.NIT, EMPRESAS.TELEFONO, EMPRESAS.CIUDAD, VISITAS.N_cotizantes
FROM EMPRESAS RIGHT JOIN VISITAS ON EMPRESAS.NIT=VISITAS.NIT
WHERE (((VISITAS.Fecha)=Date()));
Cree un formulario y como origen es la consulta. En el formulario le añadí dos botones Con el siguiente código, con el fin de escribir los datos en un formato en Excel.
Esto lo hace bien solo que nada más me guarda el registro que visualizo en el formulario y se desea que guarde todos los registros en el Excel según la consulta SQL.
Private Sub cmd_cargar_formato_Click()
txt_ruta_formato = AbrirXP(CurrentProject.Path & "\" & "")
End Sub
Private Sub cmdgenerar_xls_Click()
Dim xls As Object
Dim ruta_libro As String
Dim texto_categoria As String
Set xls = CreateObject("Excel.Application")
ruta_libro = txt_ruta_formato
xls.Workbooks.Open (ruta_libro)
xls.Visible = True
xls.worksheets("Hoja1").Activate
xls.Cells(2, 1) = NIT
xls.Cells(2, 2) = RAZON_SOCIAL
xls.Cells(2, 3) = TELEFONO
xls.Cells(2, 5) = CIUDAD
xls.Cells(2, 10) = N_cotizantes
Exit Sub
End Sub
PD :Para que esto funcionara fue necesario las siguiente REFERENCIAS
Microsoft ActiveX Data Object Library
Microsoft Office 12.0 Object Library
Y crear un modulo que contiene la función AbrirXP

1 Respuesta

Respuesta
1
Creas una tabla y la llamas ListadodeCalves
Pones los campos:
NomData Texto
Nombre        texto
La guardas
Creas un combo y lo llamas OpcionesExportación
en la consulta pones en primera opción pones NomData y segundo Nombre, cierras y guardas
Abres la tabla para insertar datos, en NomData pones por ejemplo
"Consumo por Referencia SAP", en el campo Nombre pones el nombre de la consulta por eje. SQL factura. Esto lo puedes hacer con tantas consultas desees pasar a excel.
En el formulario al lado del combo
Pones un botón y pones este código
Private Sub Etiqueta495_Click()
Dim NameFiles As String
Dim FoolderRute As String
NameFiles = "Consumos"
MsgBox "Atención el fichero se guardará en la carpeta Mis Documentos", vbInformation
' Convertimos la seleción a la consulta
If OpcionesExportacion = "Comsumo por Referencia SAP" Then OpcionesExportacion = "SQL Cruz Rwef Totales"
If OpcionesExportacion = "Comsumo por Modulos" Then OpcionesExportacion = "SQL cuenta ClavesJIT"
If OpcionesExportacion = "Comsumos" Then GoTo Fin
If IsNull(OpcionesExportacion) Then GoTo Fin
DoCmd.TransferSpreadsheet acExport, 8, OpcionesExportacion, NameFiles + ".xls", True, ""
MsgBox "La consulta Se exportó correctamente! Si seleciona una consulta diferente a la exportada,en el archivo exdcel se añadira otra pestaña con los datos obtenidos, si la consulta es la misma exportada la información se actualiza eliminando la consulta anterior.", vbInformation
End
Fin:
MsgBox "Se ha olvidado de selecionar una opción", vbInformation
Exit_Exportaciones_Click:
Exit Sub
Err_Exportaciones_Click:
MsgBox "La consulta no Existe, selecione bien!!!!"
Resume Exit_Exportaciones_Click:
End Sub
Y ya está, se te exporta toda la consulta, y si bajas muchas sql, si no cambias el nombre.xls te creará pestañas nuevas por cada sql, si ya existe actualiza los datos.
Que excelente respuesta, funciona perfecto y cumple a cabalidad con el objeto central de la pregunta. Como entenderá en el software siempre se desea cosas en particular y para este caso me gustaría que los datos los guardara en un archivo que tiene una plantilla. Como yo lo tenia lo hace pero solo del que lista el formulario en ese momento entonces pensaba en si se podida por código hacer la consulta SQL y luego un FOR según la cantidad de registros de la consulta y rellenar las celdas de cuerdo al formato "plantilla" como lo sugerí en la pregunta.
xls.worksheets("Hoja1").Activate
xls.Cells(2, 1) = NIT
xls.Cells(2, 2) = RAZON_SOCIAL
xls.Cells(2, 3) = TELEFONO
xls.Cells(2, 5) = CIUDAD
xls.Cells(2, 10) = N_cotizantes
Es decir creo que cerca del objetivo, tu respuesta esta excelente y cumple solo que se pierde el detalle de llenarlo de acuerdo a un formato o plantilla
Lo siento ahí no te puedo ayudar, ya que de excel no tengo ni idea, además que es una aplicación que no me gusta, por ese motivo no la utilizo ni deseo saber de su funcionalidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas