Access - Importacion desde Access de excel con vba

 
Vista:

Importacion desde Access de excel con vba

Publicado por robert_ts (2 intervenciones) el 16/09/2018 19:06:04
Buenas tardes,
estoy haciendo un procedimiento en el que cargo una serie de datos contenidos en una tabla excel,
el procedimiento lo hago desde access, utilizo
DoCmd.TransferSpreadsheet acImport, 8, tabla, ruta, False, hoja, donde tabla es la tabla access, ruta el archivo excel, false donde indico que no hay cabecera, y hoja, la hoja de excel, ya que algunos documentos traen varias hojas. La tabla access la llamo Clientes
La cuestión es que dichos archivos traen información irrelevante al principio, que una vez la importo a una tabla tmp, la elimino y paso los datos a la tabla de datos. El archivo excel es de este tipo

A B C D E F
1 TEXTO CON INFORMACIÓN IRRELEVANTE
2 01/05/2018 12:30
3
4 CIF CLIENTE DIRECCION PAGO BANCO DATO DATO
5 B12345 Frutas Pepe C/amapola Banco 2020132114

Al importar de esta forma, lo que hago es NO TENER CREADA la tabla la primera vez que importo, de forma que Access la crea automaticamente, creando el campo F1 para la columna A, F2 para B, F3 para C.....
El campo F3 de Access guarda los datos de la columna C de excel, que corresponden a la dirección, y en Access tengo definido ese campo como Texto corto SIN FORMATO. Pues bien, al importar, Access al ver que la celda C2, que contiene 01/05/2018 12:30, es de tipo fecha, se pensará que todo es de tipo fecha, y no me importa el esto de datos que hay en la columna C, creando una tabla con el nombre de la hoja del archivo excel_errors, donde pone error de conversion de tipos, es decir que intenta convertir las cadenas de texto en fechas y al no poder crea esa tabal. Si el contenido de la celda C2, lo elimino o pongo un texto cualquiera, si lo importa.

Alguien sabe como solucionar esto, es decir, que access entienda que si el campo F3 es de tipo texto y no fecha, guarde los datos de la columna C, indistintamente del valor que tenga como una cadena de texto

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Importacion desde Access de excel con vba

Publicado por Anonimo (3314 intervenciones) el 16/09/2018 23:32:09
Si todo funciona y el 'problema' esta en el justo momento de crear la tabla ¿Por qué la generas de cada vez?....

En estos tiempos en que el reciclar esta 'tan bien visto' yo reutilizaría la tabla que es algo sencillo, basta para vaciarla una sentencia SQL genérica ( Delete * from [nombre tabla])

Una tabla vacía ocupa tan poco como un calcetín de verano (sin pie dentro) y así se conserva el tipo de campo que necesitamos para cada dato.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importacion desde Access de excel con vba

Publicado por robert_ts (2 intervenciones) el 17/09/2018 17:17:54
Buenas tardes,
la tabla se crea en la primera importación, fijate que lo hago constar en el post, " lo que hago es NO TENER CREADA la tabla la primera vez que importo". Lo hago así para que sea Access quien defina la tabla, una vez creada la mantengo, no borro y creo en cada importación, es decir, que cuando termine la bbdd, irá vacía y con todas las tablas ya credas.

La primera vez importo sin que la tabla esté creada para que access cree la tabla, y ya la djo. El campo f3 lo crea de tipo fecha/hora, porque la primera celda que encuentra con valor contiene una fecha, pero luego yo edito la tabla y pongo que es de tipo texto corto. Da igual lo que que importe, como lo primero que vea sea algo de tipo fecha, aunque el tipo de campo sea string, access intenta convertir todo a tipo fecha.

Lo de los clientes es un ejemplo que me inventé para poner el ejemplo, realmente lo que importa la base de datos son ficheros excel con logs de datos que luego hay que analizar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importacion desde Access de excel con vba

Publicado por Anonimo (3314 intervenciones) el 17/09/2018 22:24:03
Algunos han logrado forzar el tipo de datos en la importación automática pero no en Access, el el origen real (Excel)

Y para ello en el campo utilizado como referente (generalmente el primero) que Access delataría como fecha y se desea texto, se le antepone un apostrofe y ….. (aun con la molesta manipulación del primer registro a importar) el trabajo a partir de ese instante debería consistir en un Click
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar