Hola.
Mira en la ayuda el acceso a ficheros de texto. Por un lado, tienes por
ejemplo los objeros FSO (FileSystemObjects) que te permiten abrir ficheres,
leerlos linea a linea, escribir en ellos, etc...
Sacado del MSDN Library
<pego>
Puede trabajar con archivos en Visual Basic usando los nuevos objetos FSO
orientados a objetos como Copy, Delete, Move y OpenAsTextStream, además de
otros, o usando las antiguas funciones existentes como Open, Close,
FileCopy, GetAttr, etc. Tenga en cuenta que puede mover, copiar o eliminar
archivos a pesar de su tipo de archivo.
Para obtener más información acerca del uso de las antiguas funciones, vea
"Procesar archivos con instrucciones y funciones antiguas de E/S" en este
capítulo. El resto de esta sección describe el uso de los nuevos objetos,
métodos y propiedades FSO para trabajar con archivos.
Hay dos categorías principales para trabajar con archivos:
Crear, agregar o eliminar datos, y leer archivos.
Mover, copiar y eliminar archivos.
Crear archivos y agregar datos con los objetos del sistema de archivos
Hay tres formas de crear un archivo de texto secuencial (también llamado
"secuencia de texto"). Una forma es usar el método CreateTextFile. Para
crear un archivo de texto vacío:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.CreateTextFile("c:\prueba.txt", True)
Nota El modelo de objetos FSO no es compatible con la creación de archivos
binarios o de acceso aleatorio. Para crear archivos binarios o de acceso
aleatorio, puede usar el comando Open con los indicadores Random o Binary.
Para obtener información completa sobre cómo trabajar con archivos binarios
o de acceso aleatorio vea "Usar el acceso aleatorio a archivos" y " Usar el
acceso binario a archivos " en este capítulo.
Otra forma es usar el método OpenTextFile del objeto FileSystemObject con el
indicador ForWriting activado:
Dim fso As New FileSystemObject, ts As New TextStream
Set ts = fso.OpenTextFile("c:\prueba.txt", ForWriting)
O puede usar el método OpenAsTextStream con el indicador ForWriting
activado:
Dim fso As New FileSystemObject, fil As File, ts As TextStream
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("prueba1.txt")
Set fil = fso.GetFile("prueba1.txt")
Set ts = fil.OpenAsTextStream(ForWriting)
Agregar datos al archivo
Cuando el archivo de texto se ha creado, puede agregar datos con tres pasos:
Abrir el archivo de texto para escribir datos.
Escribir los datos.
Cerrar el archivo.
Para abrir el archivo, puede usar dos métodos: el método OpenAsTextStream
del objeto File, o el método OpenTextFile del objeto FileSystemObject.
Para escribir datos en el archivo de texto abierto, use los métodos Write o
WriteLine del objeto TextStream. La única diferencia entre Write y WriteLine
es que WriteLine agrega nuevos caracteres de nueva línea al final de la
cadena especificada.
Si desea agregar una nueva línea al archivo de texto, use el método
WriteBlankLines.
Para cerrar un archivo abierto, use el método Close del objeto TextStream.
Éste es un ejemplo de cómo abrir un archivo; usa los tres métodos de
escritura para agregar datos al archivo y cierra el archivo:
Sub Create_File()
Dim fso, txtfile
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtfile = fso.CreateTextFile("c:\prueba.txt", True)
txtfile.Write ("Esto es una prueba. ") ' Escribe una línea.
' Escribe una línea con un carácter de nueva línea.
txtfile.WriteLine("Probando 1, 2, 3.")
' Escribe tres caracteres de nueva línea en el archivo.
txtfile.WriteBlankLines(3)
txtfile.Close
End Sub
Leer archivos con los objetos del sistema de archivos
Para leer datos de un archivo de texto, use los métodos Read, ReadLine o
ReadAll del objeto TextStream:
Tarea Método
Lee un número especificado de caracteres de un archivo Read
Escribir una línea completa (sin incluir los caracteres de nueva línea)
ReadLine
Leer el contenido completo de un archivo de texto ReadAll
Si usa los métodos Read o ReadLine y desea ignorar un conjunto particular de
datos, puede usar los métodos Skip o SkipLine.
El texto de resultado de los métodos de lectura se almacena una cadena que
se puede mostrar en un control, se puede procesar con operadores de cadena
(como Left, Right, y Mid), se puede concatenar, etc.
Nota La constante vbNewLine contiene un carácter o caracteres (dependiendo
del sistema operativo) para avanzar el cursor al inicio de la línea
siguiente (retorno de carro/avance de línea). Tenga cuidado ya que al final
de algunas cadenas puede haber caracteres no imprimibles.
Ejemplo
Sub Read_Files()
Dim fso As New FileSystemObject, txtfile, _
fil1 As File, ts As TextStream
Set txtfile = fso.CreateTextFile("c:\prueba.txt", True)
MsgBox "Escribiendo archivo"
' Escribe una línea.
Set fil1 = fso.GetFile("c:\prueba.txt")
Set ts = fil1.OpenAsTextStream(ForWriting)
ts.Write "Hola a todos"
ts.Close
' Lee el contenido del archivo.
Set ts = fil1.OpenAsTextStream(ForReading)
s = ts.ReadLine
MsgBox s
ts.Close
End Sub
Mover, copiar y eliminar archivos
El modelo de objetos FSO tiene dos métodos para mover, copiar y eliminar
archivos:
Tarea Método
Mover un archivo File.Move o
FileSystemObject.MoveFile
Copiar un archivo File.Copy o
FileSystemObject.CopyFile
Eliminar un archivo File.Delete o
FileSystemObject.DeleteFile
Ejemplo
Este ejemplo crea un archivo de texto en el directorio raíz de la unidad C,
escribe alguna información en él, se mueve a un directorio llamada \tmp,
hace una copia de un directorio llamado \temp y elimina las copias de ambos
directorios.
Para ejecutar este ejemplo, compruebe que tiene dos directorios llamadas
\tmp y \temp en el directorio raíz de la unidad C.
Sub Manip_Files()
Dim fso as New FileSystemObject, txtfile, fil1, fil2
Set txtfile = fso.CreateTextFile("c:\prueba.txt", True)
MsgBox "Escribiendo archivo"
' Escribe una línea.
txtfile.Write ("Esto es una prueba.")
' Cierra el archivo para escribir.
txtfile.Close
MsgBox "Moviendo el archivo a c:\tmp"
' Obtiene un controlador al archivo en la raíz de C:\.
Set fil1 = fso.GetFile("c:\Prueba.txt")
' Mueve el archivo al directorio \tmp.
fil1.Move ("c:\tmp\prueba.txt")
MsgBox "Copiando el archivo a c:\temp"
' Copia el archivo a \temp.
fil1.Copy ("c:\temp\prueba.txt")
MsgBox "Eliminando archivos"
' Obtiene controladores a la ubicación actual.
Set fil1 = fso.GetFile("c:\tmp\prueba.txt")
Set fil2 = fso.GetFile("c:\temp\prueba.txt")
' Elimina los archivos.
fil1.Delete
fil2.Delete
MsgBox "¡Completado!"
End Sub
</pego>
Y ésto otro también
<pego>
Procesar archivos con instrucciones y funciones antiguas de E/S
Desde la primera versión de Visual Basic, los archivos se han procesado
usando la instrucción Open y otras instrucciones y funciones relacionadas
(mostradas a continuación). Estos mecanismos están desfasados con respecto
el modelo de objetos FSO, pero son completamente compatibles con Visual
Basic 6.0.
Si puede diseñar su aplicación para que use archivos de base de datos, no
necesitará proporcionar a su aplicación acceso directo a los archivos. El
control de datos y los controles enlazados le permiten leer datos de bases
de datos y escribir datos en ellas, que es mucho más fácil que usar técnicas
de acceso directo.
No obstante, hay veces en que necesita leer y escribir archivos que no son
de bases de datos. Esta serie de temas le muestra cómo procesar directamente
archivos para crear, manipular y almacenar texto y otros datos.
Tipos de acceso a archivos
Por sí mismo, un archivo no es más que una serie de bytes relacionados
ubicados en un disco. Cuando su aplicación tiene acceso a un archivo, debe
asumir qué se supone que representan los bytes (caracteres, registros de
datos, enteros, cadenas, etc.)
Dependiendo del tipo de datos que contiene el archivo, se usa el tipo de
acceso apropiado. En Visual Basic hay tres tipos de acceso a archivos:
Secuencial: para leer y escribir archivos de texto en bloques continuos.
Aleatorio: para leer y escribir archivos binarios de texto o estructurados
como registros de longitud fija.
Binario: para leer y escribir archivos estructurados de forma arbitraria.
El acceso secuencial está diseñado para usarlo con archivos de texto
normales. Se supone que cada carácter del archivo representa un carácter de
texto o una secuencia de formato de texto, como un carácter de nueva línea
(NL). Los datos se almacenan como caracteres ANSI. Se supone que un archivo
abierto para acceso aleatorio se compone de un conjunto de registros de
longitud idéntica. Puede usar tipos definidos por el usuario para crear
registros compuestos de varios campos, en los que cada uno puede tener tipos
de datos diferentes. Los datos se almacenan como información binaria.
El acceso binario le permite usar archivos para almacenar datos de la manera
que desee. Es similar al acceso aleatorio, excepto porque no se hacen
suposiciones sobre los tipos de datos o la longitud del registro. No
obstante, debe saber de manera precisa cómo se escribieron los datos en el
archivo para poder recuperarlo correctamente.
Para obtener más información Para obtener más información acerca de los
tipos de acceso a datos, vea "Usar el acceso secuencial a archivos", "Usar
el acceso aleatorio a archivos" y "Usar el acceso binario a archivos".
Instrucciones y funciones de acceso a datos
Las siguientes funciones se usan con los tres tipos de acceso a datos:
Dir FileLen LOF
EOF FreeFile Seek
FileCopy GetAttr SetAttr
FileDateTime Loc
La siguiente tabla muestra todas las instrucciones de acceso a archivos y
las funciones disponibles para cada uno de los tipos de acceso directo a
archivos.
Instrucciones y funciones Secuencial Aleatorio Binario
Close X X X
Get X X
Input( ) X X
Input # X
Line Input # X
Open X X X
Print # X
Put X X
Type...End Type X
Write # X
Para obtener más información Para obtener información adicional acerca de
las instrucciones y funciones de acceso a archivos, vea el tema de la
función o la instrucción en el Índice.
</pego>
Para acceder a ficheros de excel, te recomiendo utilices la automatización.
Busca en la kb por la palabra clave "automation" y la versión de Access que
tengas y podrás bajarte un fichero de ayuda al respecto.
Espero te sirva.
Salu2
--
José Mª Fueyo
[MS MVP Access]