Access - Exportar a txt

   
Vista:

Exportar a txt

Publicado por Luciana (1 intervención) el 09/03/2010 15:28:03
Mi nombre es Luciana, y yo no soy programadora, sino que estoy empezando a manejar access para una trabajo. Tengo generado en access unas tablas, las cuales necesito exportar a txt, para que luego estas sean importadas a un sistema. El archivo de txt usa el separador |, pero a su vez cada campo debe cumplir con una longitud exacta. Para poder cumplimentar esa longitud en access utilice por ejemplo para un campo numerico, le di el tamaño Entero largo y en Formato indique 00000000 (con la cantidad de caracteres necesarios para cada campo). De este modo el Nº 5423698 me queda como 05423698, tal cual como lo necesito. En los campos de texto estos espacios los rellene indicando en Formato la cantidad de caracteres necesarios con @. Mi problema es que cuando hago la exportacion a txt con el separador | los 0 y espacios de la izquierda se me borra, no me los exporta. ¿Como puedo hacer para que access me exporte a txt los 0 y espacios a la izquierda utilizando el separador?
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
Imágen de perfil de Enrique Ramírez

RE:Exportar a txt

Publicado por Enrique Ramírez (617 intervenciones) el 10/03/2010 17:23:47
El formato que estas asignando a tu tabla solo es único para esa tabla, te lo demuestro con un ejemplo, crea una nueva tabla en base a tu tabla utilizando una consulta de creación de tabla, y veras que la nueva se crea sin el formato de tu tabla, que es lo mismo que pasa al crear tu txt.

Al final de cuentas todo lo numérico se va a convertir a texto porque todo lo vas a pasar a un archivo de texto, ¿estas de acuerdo?

Lo que yo haría es crear una estructura idéntica a tu tabla pero con la diferencia de que todos los campos deben ser texto y con su longitud exacta, y por medio de una consulta de datos anexados llenarla, pero dando formato a los campos.

1) PARA CAMPOS NUMERICOS
Por ejemplo si el número de empleado es de 8 posiciones y en tu tabla ya lo tienes con ceros a la izquierda de esta misma forma se grabará en la nueva tabla pero como texto.
Para los campos numéricos utiliza la función FORMAT()
Format([NUM_EMP],"00000000")

2) PARA CAMPOS TEXTO
Para los campos de texto utiliza las funciones SPACE() y LEN(), en el ejemplo NOMBRE tiene un longitud de 20 en la tabla pero el dato tiene una longitud menor, ejemplo LUCIANA tiene una longitud de 7.

En la expresión pongo el [NOMBRE] = LUCIANA(que vale 7) y luego concateno los 13 espacios restantes a la derecha para completar las 20 posiciones y esto lo hago: 20 – 7 = 13 ó sea Space(20-Len([NOMBRE]))

La consulta con los ejemplos anteriores quedaría asi:

INSERT INTO NuevaTabla ( NUM_EMP, NOMBRE )
SELECT Format([NUM_EMP],"00000000") AS Expr1, [NOMBRE] & Space(20-Len([NOMBRE])) AS Expr2
FROM MiTabla;

Espero que en primer lugar me hayas entendido y en segundo lugar te sirva y te recuerdo que NuevaTabla es la que vas a convertir a txt.
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

RE:Exportar a txt

Publicado por santiago (2 intervenciones) el 04/11/2010 10:05:06
Tu artículo nos ha sido de gran utilidad.
Muchas Gracias.
Santiago
http://www.farmaciaencasaonline.es
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