|
Responder
|
| Autor | |
Juan272
Nuevo
Unido: 17/Febrero/2020 Localización: Cordoba Estado: Sin conexión Puntos: 1 |
Tema: Consulta Excel a AccessEnviado: 17/Febrero/2020 a las 20:49 |
|
Buenas tardes, estoy necesitando si me pueden ayudar con lo que estoy necesitando para mi trabajo.
Tengo varios archvios xlsx en una carpeta que debo importar de manera automatica al access y quisiera traer ciertas columnas de esos archivos. El problema esta en que los archivos no tienen el mismo rango de columnas con lo cual no puedo poner un rango sino el nombre de la columna en particular. Actualmente lo que estoy haciendo es, manualmente modificar los archivos excel para que tengan la misma cantidad de columnas y que extraigo las que necesito. Pero por ejemplo necesitaria del archivo traer las coulmnas (las cuales siempre tienen el mismo nombre) "LEGAJO" / "APELLIDO Y NOMBRE" / "SUP" / etc Los archivos que tengo que importar tienen distintos nombres (estan en una misma carpeta) y la hoja donde estan los datos que necesito tambien difieren entre ellos. DESDE YA AGRADEZCO ME PUEDAN AYUDAR SALUDOS.- Function fimportAllFiles() Dim strPathFile As String, strFile As String, strPath As String Dim strTable As String Dim blnHasFieldNames As Boolean blnHasFieldNames = False strPath = "C:\Users\u542124\Documents\COPC\Cuartiles\Partituras sin comportamentales\Sin Comportamentales Historico\Partituras\" ' Replace tablename with the real name of the table into which ' the data are to be imported strTable = "MÓVIL INDIVIDUOS" strFile = Dir(strPath & "*.xlsx") Do While Len(strFile) > 0 strPathFile = strPath & strFile DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strTable, strPathFile, blnHasFieldNames ' Uncomment out the next code step if you want to delete the ' EXCEL file after it’s been imported ' Kill strPathFile strFile = Dir() Loop MsgBox “Done” End Function |
|
![]() |
|
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: 14926 |
Enviado: 17/Febrero/2020 a las 22:25 |
|
Hola Juan y bienvenido al foro,
¿Que tal andamos de VBA? ¿Y de automatización con Excel? Porque lo que pides no se puede automatizar con importaciones de hojas de cálculo. Requiere bastante más... Parece que tienes una colección de ficheros en una misma carpeta. Esos ficheros contienen ¿una? hoja con los datos a importar. ¿Hay más hojas en el libro? La hoja a importar puede diferir en el orden de las columnas pero, parece, mantiene los títulos (menos mal!). Tampoco sabemos en que fila están los títulos. La técnica seria: 1. abrir un recordset sobre la tabla dónde almacenarás los datos 2. recorrer los ficheros de la carpeta (podrás encontrar literatura al respecto para aburrir) 3. abrir el fichero por automatización 4. buscar la hoja de los datos (algún patrón deberás encontrar para poder realizar esa búsqueda) 5. localizar la fila de títulos 6. empezar a cargar los datos fila a fila hasta que no haya más datos 7. cuando se terminen los datos, cerrar el fichero, moverlo a una carpeta de "procesados" y pasar al siguiente fichero (punto 3) Necesitas tener cierta soltura en el VBA de Access y de Excel. Un saludo |
|
![]() |
|
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 |