** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Consulta Excel a Access
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoConsulta Excel a Access

 Responder Responder
Autor
Mensaje
Juan272 Ver desplegable
Nuevo
Nuevo


Unido: 17/Febrero/2020
Localización: Cordoba
Estado: Sin conexión
Puntos: 1
Enlace directo a este mensaje Tema: Consulta Excel a Access
    Enviado: 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
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje 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

Xavi, un minyó de Terrassa

Mi web
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable