Exportar mediante macro a txt

Quisiera saber como puedo hacer una macro que exporte varias tablas de una base a archivos txt separados por coma, el problema es que algunas tablas tienen campos con decimales y al hacerlo en forma manual, hay que ir a la configuración regional de windows para cambiar la coma por punto y así poder exportar... Saben si hay alguna forma de hacerlo mediante código.

1 respuesta

Respuesta
1
En primer término te recomiendo que veas esto:
http://www.mvp-access.com/softjaen/articulos/texto/jet_text_isam.htm
Estuve hurgando soluciones y haciendo pruebas. En el artículo que te paso indica que no se puede usar separador coma (,) y al mismo tiempo que sea separador decimal.
Yo intenté una solución programada que te envío, es solo un esquema pero se puede ajustar a tus necesidades.
En mi ejemplo hay una tabla: Tabla1 con 3 campos y dos registros:
Decimal
Texto
Fecha
Con ellos grabé el archivo de texto cuyo contenido es el que sigue:
1,23-hola-23/01/2008
1234,56-adios-23/01/2007
Usé como separador el guión alto (-), podes cambiarlo por lo que quieras. Lo que veo como problema es que se confunde con la coma decimal. Vos verás.
El código es este:
Public Sub ExportaTxt()
Dim fs As Object
Dim a As Object
Dim rst As New ADODB.Recordset
rst.Open "Tabla1", CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
rst.MoveFirst
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("C:\Provisorios\Apuntes\Todo Expertos\prueba.txt", True)
Do While Not rst.EOF
a.writeline (rst!decimal & "-" & rst!texto & "-" & rst!fecha)
rst.MoveNext
Loop
a.Close
rst.Close
End Sub
Te sugiero crear una base vacía, ponerle la tabla "Tabla1" con los tres campos de tipo Moneda, texto y fecha respectivamente. Agregale dos o tres registros. Agregá un módulo nuevo y pegale el código. Al código solamente cambiale la ruta
"C:\Provisorios\Apuntes\Todo Expertos\prueba.txt"
Por la que quieras. Para ejecutarlo simplemente tocá la tecla F5 teniendo el cursor dentro del código. El archivo de texto queda en el directorio que hayas puesto.
Si necesitás más explicaciones, solamente decirlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas