Después de dar muchas vueltas, creo que encontré una solución a tu problema:
Creas un botón en un formulario, con este código:
Dim Archivo as String
Const Ruta as String = "C:\...\" Ruta de la carpeta donde está el archivo txt, terminada en \
Archivo=Format(Date,"ddmm_yyyy") & ".txt"
DoCmd.TransferText acImportDelim,, "Nombre de la Tabla", Ruta & Archivo, True
Este código debería funcionarte si el archivo txt tiene nombres de columnas. Si no fuera así, tienes que cambiar el True del final por False, y hacer un pequeño "apaño":
En la barra de menús principal de Access, selecciona Obtener datos externos -> Importar. Busca el archivo "AnteriorP" en el cuadro de diálogo y pulsa en Importar. Ahora, en el
Asistente que aparece, pulsa en Avanzado... (abajo a la izquierda). Access te muestra ahora una pantalla para delimitar cómo es el archivo: si el formato es delimitado o de ancho fijo, el carácter delimitador de campo la coma o el punto y coma, los formatos de fechas y números, y en la grilla inferior, indica los nombres y tipos de los campos a lo que tengas en la tabla de la base de datos. Una vez tengas todo, guárdalo pulsando en Guardar como... Ahora ya tienes una especificación que puedes usar en DoCmd. TransferText, en el segundo parámetro que tenías vacío. Por ejemplo, si la especificación la nombras "MiEspecificación", la llamada sería así:
DoCmd. TransferText acImportDelim, "MiEspecificación", "Nombre de la Tabla", Ruta & Archivo, False.
Si tienes un formulario que haga las veces de menú, puedes colocar el código anterior en el evento al cargar de dicho formulario.
Y para acabar, para controlar que no se importen dos veces el mismo archivo, puedes crear una tabla (Importaciones) con dos campos: Nombre(tipo texto) e Importado (tipo Si/No).
Luego en el código le añadirías estas lineas en negrita:
Dim ArchivoImportado as Boolean
Dim Archivo as String
Dim miSQL as String
Const Ruta as String = "C:\...\" Ruta de la carpeta donde está el archivo txt, terminada en \
Archivo=Format(Date,"ddmm_yyyy") & ".txt"
ArchivoImportado=Nz(DLookup("Importado","Importaciones","[Nombre]='" & Archivo & "'"),False)
If ArchivoImportado=True then Exit Sub ' Si ya está importado, salimos sin más
DoCmd.TransferText acImportDelim, , "Nombre de la Tabla", Ruta & Archivo,True
miSQL="INSERT INTO Importaciones(Nombre,Importado) VALUES ('" & Archivo & "',True)"
DoCmd.SetWarnings False
DoCmd. RunSQL miSQL
DoCmd. SetWarningsTrue
Un saludo