Access - Imprtacion de archivo de texto con transfer texe

 
Vista:

Imprtacion de archivo de texto con transfer texe

Publicado por Rodolfo (33 intervenciones) el 20/04/2005 20:33:58
Hola, quisiera saber como hacer para importar un archivo de texto delimitado, con codigo Vb y sin usar la especificacion de Access, y que me tome las caracteristicas que tiene el archivo de origen. Lo que me ha pasado hasta ahora es que no puedo definir el formato fecha (en el archivo de origen la tengo como "aaaammdd"), y en el caso de campos con decimales, a pesar de que los defino como dobles, me los importa enteros.
Muchisimas gracias y un saludo a todos.
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 Alejandro

Importar archivos de texto delimitados con formato personalizado usando código VBA

Publicado por Alejandro (4142 intervenciones) el 31/05/2023 22:36:30
Aquí tienes un ejemplo de cómo importar un archivo de texto delimitado con formato personalizado utilizando código VBA en Access:

1. Abre el Editor de Visual Basic en Access presionando ALT + F11.
2. En el menú, ve a "Insertar" y selecciona "Módulo" para crear un nuevo módulo.
3. En el módulo, puedes usar el siguiente código como punto de partida:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub ImportarArchivoTextoDelimitado()
    Dim rutaArchivo As String
    Dim tablaDestino As String
    Dim archivo As Object
    Dim linea As String
    Dim datos() As String
    Dim fecha As Date
    Dim valorDecimal As Double
 
    rutaArchivo = "C:\ruta\archivo.txt" ' Ruta del archivo de texto a importar
    tablaDestino = "NombreTabla" ' Nombre de la tabla destino en Access
 
    Set archivo = CreateObject("Scripting.FileSystemObject").OpenTextFile(rutaArchivo, 1)
 
    Do Until archivo.AtEndOfStream
        linea = archivo.ReadLine
        datos = Split(linea, ";") ' Cambia el delimitador según tu archivo
 
        ' Obtener los valores con el formato adecuado
        fecha = DateSerial(Left(datos(0), 4), Mid(datos(0), 5, 2), Right(datos(0), 2))
        valorDecimal = CDbl(datos(1))
 
        ' Agregar los datos a la tabla destino
        CurrentDb.Execute "INSERT INTO " & tablaDestino & " (Fecha, ValorDecimal) " & _
                         "VALUES (#" & Format(fecha, "yyyy-mm-dd") & "#, " & valorDecimal & ");"
    Loop
 
    archivo.Close
    Set archivo = Nothing
 
    MsgBox "Importación completada correctamente."
End Sub

4. Asegúrate de modificar la variable `rutaArchivo` con la ruta y nombre de tu archivo de texto y la variable `tablaDestino` con el nombre de la tabla en la que deseas importar los datos.
5. El código supone que el delimitador en tu archivo de texto es el punto y coma ";". Si tu archivo utiliza otro delimitador, modifica la línea `datos = Split(linea, ";")` para que coincida con el delimitador correcto.
6. En el ejemplo, se muestra cómo convertir una cadena de texto en formato "aaaammdd" a un valor de fecha válido utilizando la función `DateSerial`. Si tu archivo tiene un formato de fecha diferente, ajusta la lógica en consecuencia.
7. Para campos numéricos con decimales, se utiliza la función `CDbl` para convertir la cadena en un valor decimal.
8. Ejecuta el procedimiento `ImportarArchivoTextoDelimitado` desde el Editor de Visual Basic o desde un botón en un formulario para iniciar la importación.

Recuerda que este es solo un ejemplo básico y deberás adaptarlo a tu situación específica. Asegúrate de verificar los nombres de las tablas y campos, así como los formatos de fecha y decimales según corresponda.

¡Espero que esta solución te sea útil para importar tus archivos de texto delimitados en Access!
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