ms-access - transfertext - exportar access a csv
Omitir las primeras tres líneas de archivo CSV(¿usando DoCmd?) En MS Access (3)
El método Docmd.TransferText es una buena opción, pero como alternativa a la modificación de su especificación de importación, podría considerar importar todo y realizar una validación después de la importación.
Entonces, podría importar el archivo completo y luego usar una consulta de eliminación para eliminar datos de la tabla.
Como se menciona en un comentario anterior, modificar la especificación a través de una tabla de sistema podría ser complicado para que otra persona encuentre dónde, ya que una consulta de eliminación con un pequeño comentario agradable en su código podría ser un placer. Si es necesario, úselo, de lo contrario podría ser comentado.
Necesito omitir las primeras tres líneas de un archivo CSV al cargar en MS Access. La importación CSV predeterminada no descarta las tres primeras líneas. Estoy pensando en escribir una macro para ignorar las primeras tres líneas.
Mi investigación ha mostrado el objeto DoCmd pero sus métodos no sirven para colocar las primeras x líneas.
¿Alguna idea?
En Access VBA usaría dos objetos TextStream
, uno para .ReadLine
el archivo CSV original línea por línea y el otro para .WriteLine
en un archivo temporal, omitiendo las tres primeras líneas del archivo de entrada. Realice algunas búsquedas web en Scripting.FileSystemObject
y estoy seguro de que encontrará algún código de muestra para esto.
Luego usaría DoCmd.TransferText acImportDelim
para importar el archivo temporal a Access.
El método DoCmd.TransferText
toma un SpecificationName como uno de sus argumentos. Siga las instrucciones en Cómo crear una especificación de importación para crear y guardar una especificación de importación.
Ahora vaya a Opciones de acceso, Opciones de navegación y muestre objetos ocultos / del sistema. Ahora debería poder abrir una tabla llamada ''mSysIMEXSpecs''. Encuentre la especificación de importación que creó anteriormente según la columna SpecName. Cambie la columna ''StartRow'' para esa especificación de importación a 3 (StartRow está basado en cero).
Ahora debería poder usar el método DoCmd.TransferText pasando el nombre de la especificación de importación que creó y omitirá sus primeras tres líneas.