Exportar a Excel(el resultado de una búsqueda en un cuadro de lista) desde un formulario con varios criterios de búsqueda.

Quiero exportar el resultado de una búsqueda hecha en un cuadro de Lista hacia Excel directamente con un botón de comando. Desde un formulario que tiene el cuadro de lista y varios botones con criterios diferentes de búsqueda referente al contenido del cuadro de lista.

Ej: la tabla origen contiene 500 registros, en el cuadro lista busco a POR grupo de personas( resultado 30 personas) ese resultado lo deseo exportar. Hago otra búsqueda con otros criterios(resultado 100 personas) ese nuevo resultado lo deseo exportar y así con los diferentes resultados obtenidos de cada botón de comando del formulario. Con un botón para Exportar a Excel y otro para Imprimir.

Respuesta
1

Con un botón para Exportar a Excel

Si tu cuadro lista está en un formulario de excel.

En tu botón para exporta pon el siguiente código. Cambia "Hoja10" por la hoja donde quieres los datos:

Private Sub CommandButton1_Click()
  With Sheets("Hoja10")
    . Cells. ClearContents
    . Range("A2"). Resize(ListBox1. ListCount, ListBox1. ColumnCount).Value = ListBox1. List
  End With
End Sub

Gracias Dante por la pronta respuesta.

Eh, el cuadro lista lo tengo es en un formulario en Access, y la informaciñon la quiero exportar a Excel. Voy a tratar de jugar con ese código para ver, gracias nuevamente.

De acuerdo, no tengo acceso, así que no podré ayudarte más.

1 respuesta más de otro experto

Respuesta
2

De Excel se poco por no decir nada. Habría que saber exactamente como es el formulario, ya que se puede hacer de varias formas. Por ejemplo, supongamos que el cuadro de lista te "filtra" por pais. En sus propiedades-eventos-después de actualizar puedes crear un procedimiento de evento y poner algo como

me.recordsource="select * from Clientes where pais='" & me.nombrecuadrolista & "'"

DoCmd. TransferSpreadsheet acExport, acexport, acSpreadsheetTypeExcel12... donde pueders decirle en que libro quieres que te lo guarde y en que rango de celdas quieres que te pegue los valores.

O también podrías usar

Docmd. Openquery"consulta1"

Docmd. Transfer... y "Transferir" esa consulta

Pero también puedes exportar el formulario tal como está después de filtrar

DoCmd.OutputTo acOutputForm, "Clientes", "ExcelWorkbook(*.xlsx)", "C:\users\.....\documents\....\libronuevo.xlsx", False, "", , acExportQualityPrint

Gracias Julián por la pronta respuesta.

Voy a tratar con estas líneas para ver si puedo solucionar mi inquietud.

hola, he tratado de varias formas y No he podido conseguir exportar solo el resultado de la búsqueda dentro del cuadro lista.

con este código exporta todos las datos de la  consulta.

Private Sub CmdExportar_Click()
DoCmd.OutputTo acOutputQuery, "Lista", acFormatXLSX, "", True
End Sub

con este código hago la búsqueda general y la especifica en el mismo código con menos variables de búsqueda en otros Cmd

Private Sub CmdBuscar_Click()
Dim Consulta As String
Consulta = "SELECT EQUIPO,  NOMBRE, CANTIDAD_MIEMBROS,  ACTIVO, INACTIVO, "
Consulta = Consulta & "FROM Lista "
Consulta = Consulta & "WHERE EQUIPO Like '*" & Me.txtBusca & "*' CANTIDAD_MIEMBROS Like '*" & Me.txtBusca & "*' OR NOMBRE Like '*" & Me.txtBusca & "*' OR ACTIVO Like '*" & Me.txtBusca & "*' OR INACTIVO Like '*" & Me.txtBusca & "*''"
Me.Lista.RowSource = Consulta
End Sub

con el  CmdBuscar busco un equipo X, y ese equipo X deseo exportarlo a Excel.

con otros CmdBuscarX, Si busco a los ACTIVOS de todos los equipos ese resultado de búsqueda que son por ejemplo 45 Activos de un total de 250 miembros, deseo poder exportar solo esos 45 miembros Activos a Excel.

Alguien podría ayudarme con esta interrogante?

Gracias!

Lo olvidaba de mencionar nuevamente, la información esta en un archivo de Access (tabla-Miembros, Consulta-Lista, Formulario-Buscar con el Cuadro Lista)

hola, al fin pude resolver mi inquietud, jugando(uniendo,quitando,poniendo ) información obtenida de varios lugares, de vosotros Todoexpertos y entre ellos:

http://www.mvp-access.com/foro/seleccionar-todos-las-lineas-de-un-cuadro-de-lista_topic80457.html 

https://www.facebook.com/VbaAccess

https://www.youtube.com/watch?v=dnnlkBVJKuk

Así quedo el código funcionando al Final por si alguien lo llegara a necesitar:

PARA EXPORTAR A EXCEL EL CONTENIDO FILTRADO DE UN CUADRO LISTA O IMPRIMIR EN REPOPRTE.

Private Sub btnImprimir_Click()
Dim IdItm As Variant, SQL As String
Dim i As Long

For i = 0 To Me.Lista.ListCount
Me.Lista.Selected(i) = True
Next

If Me.Lista.ItemsSelected.Count >= 1 Then
CurrentDb.Execute "DELETE FROM Tbl_Auxiliar", dbFailOnError
For Each IdItm In Me.Lista.ItemsSelected
CurrentDb.Execute "INSERT INTO Tbl_Auxiliar SELECT * FROM Tbl_Personas WHERE Id = " & Me.Lista.ItemData(IdItm) & "", dbFailOnError
Me.Lista.SetFocus: Me.Lista.Selected(IdItm) = False
Next IdItm
DoCmd.OutputTo acOutputTable, "Tbl_Auxiliar", "ExcelWorkbook(*.xlsx)", "C:\Users\Carlos\Desktop\Urra.XLSX", True
Me.Lista.Requery
Else
MsgBox "SELECCIONE UN REGISTRO", vbExclamation, "Aviso": Me.Lista.SetFocus
End If
End Sub

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Private Sub CmdBuscar_Click()
Dim Consulta As String
Consulta = "SELECT Id, Nombre, ApellidoPaterno, ApellidoMaterno, Edad "
Consulta = Consulta & "FROM Tbl_Personas "
Consulta = Consulta & "WHERE Nombre Like '*" & Me.TxtBusqueda2 & "*' OR ApellidoPaterno Like '*" & Me.TxtBusqueda2 & "*' OR ApellidoMaterno Like '*" & Me.TxtBusqueda2 & "*' OR Edad Like '*" & Me.TxtBusqueda2 & "*'"
Me.Lista.Rowsource = Consulta

End Sub

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Private Sub CmdLimpiar_Click()
Me.Lista.Rowsource = "SELECT Id, Nombre, ApellidoPaterno,ApellidoMaterno, Edad FROM Tbl_Personas"
Me.TxtBusqueda2 = ""
Me.TxtBusqueda2.SetFocus

End Sub

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Gracias,  espero que le pueda ser utilidad a alguien.

Dos cositas. No te fíes mucho de los tutoriales que pululan por Internet, ya que la mayoría de ellos, no digo que todos, pero si la mayoría no sirven para nada. Sólo buscan que pulses el Me gusta.

Segunda, personalmente creo que complicas en exceso las instrucciones.

Mira, si tengo la consulta( que no sería necesaria porque bastaría decir en el cuadro de lista

me.recordsource=....

Y tengo un formulario cualquiera, donde hay un cuadro de lista llamado Elegir, con los países de la tabla Clientes

Si elijo España, automáticamente

No he "refinado" la hoja de Excel

Y el código del evento Después de actualizar del cuadro de lista es simplemente

Private Sub Elegir_AfterUpdate()
DoCmd.OutputTo acOutputQuery, "consulta1", "ExcelWorkbook(*.xlsx)", "C:\users\gonza\documents\borrar\resultado.xlsx", True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas