Con un bucle obtener el nombre de todas las consultas existentes en una base datos de access

Tengo una base de datos en Access con varias consultas, a mi me interesan aquellas cuyo nombre comienzan por "REPUESTOS ..."

Necesito exportarlas a un libro excel, cada consulta que comience por "REPUESTOS... Ira en una hoja con idéntico nombre que el de la consulta.

Así que necesito un bucle para obtener el nombre de todas las consultas... ¿cómo hacerlo?

Gracias, estoy atascado con este tema... No soy un programador, así que mis conocimientos son limitados

1 Respuesta

Respuesta
3

Con este código, obtienes un MsgBox con el nombre de cada una de las consultas de tu BD:

Private Sub NombreConsultas()

Dim Qry As AccessObject

For Each Qry In CurrentData.AllQueries
MsgBox Qry.Name
Next Qry

End Sub

Básicamente lo que hace es recorrer la colección de consultas existentes en tu BD (CurrentData. AllQueries) y mostrar un mensaje con el nombre (Qry. Name).

En tu caso, como sólo quieres exportar las que empiecen por "REPUESTOS", has de añadir esa condición dentro del For... Next:

If Qry.Name LIKE "REPUESTOS*" Then 

'Código para exportar

End If

Y dicho esto, el código de un botón (llamado cmdExportar) para exportar podría ser una cosa así (sólo exporta las que sean "REPUESTOS...":

Private Sub cmdExporta_Click()
Dim Qry As AccessObject
Dim miPath As String
'Aquí la ruta a la que vas a exportar, con esta linea exporta a la misma carpeta en la que está la BD
miPath = Application.CurrentProject.Path
'Bucle para analizar y exportar las consultas
For Each Qry In CurrentData.AllQueries
If Qry.Name Like "PRODUCTOS*" Then
DoCmd.TransferSpreadsheet acExport, 8, Qry.Name, miPath & "\Prueba", True, ""
End If
Next Qry
End Sub

El archivo Excel se llamará "Prueba" (cámbialo por el nombre que prefieras), y tendrá extensión ".xls" (se lo indica el 8 que está en negrita, si lo quieres en formato 2007, cambia el 8 por 10)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas