Fichero txt

Hola, muchas gracias por prestar atención. Qué código he de insertar en un formulario de ACCESS 2000 para que me pase un fichero TXT a dentro de una tabla. Cada línea del fichero corresponde a un registro en la base de datos.
Gracias otra vez

1 respuesta

Respuesta
1
Si, cada linea corresponde a un registro, pero... ¿cómo separas tus campos?, es decir, como distingues donde empieza y donde acaba cada campo de cada registro en el fichero TXT, normalmente hay dos formas
Usando un separador
Campo1|Campo2|Campo3
o usando ancho fijo
abc 123 iud
Kdj 54645 jdi
Yrhsd 125 jhu
Con esta información te puedo mostrar el código.
Hola, muchas gracias por atender mi pregunta.
Comentarte que el fichero me viene generado por una máquina con lo cual no puedo establecer formato ya que viene uno definido que es el que te muestro a continuación:
00084400213102306000000000000001331GASOIL00005000232149000N
Esto correspondería a un registro.No existe separación entre campos, lo único que dispongo es la numero de la posición dentro de la línea para saber que registro es. ASí pues el primer carácter es el número de contador (0), a partir del 2 al 6, ambos incluidos es otro campo y así sucesivamente.
De acuerdo, esa es la información que necesito, el tamaño de cada campo y sus posiciones inicial y final, tengo duda con el primer campo, si me dices que el primer numero es un contador y solo usa un dígito, este solo te permitirá hasta 10 elementos (del 0 al 9) lo cual creo ningún sistema lo hace, aclarame muy detalladamente este punto o podría hacerte un ejemplo genérico y tu lo adaptas a tus necesidades...
Hola, el contador va del 0 al 9 continua con : luego ; luego < luego = luego > luego? Y vuelve a empezar con el 0, es decir:
0123456789:;<=>?0123456789 ...
El primer dígito corresponde al contador pero no lo he de guardar necesariamente.
De la posición 10 a 13 es un campo.
De la posición 14 a 19 es un campo.
De la posición 30 a 34 es un campo.
Posición 35 el último campo.
Muchas gracias.
Prueba este código dentro de un botón de comando, claro tienes que adaptarlo a tus necesidades, fíjate en la ruta del archivo de tu TXT y la tabla donde quieres agregar los campos, debe estar como propiedad RecordSource del formulario, también es tu tarea verificar que los campos importados no infringan ninguna regla de validación o alguna propiedad del campo, si quieres el archivo donde hice las pruebas solicitalo a mi correo
[email protected]
Option Compare Database
Option Explicit
Private Sub Comando2_Click()
Dim strRuta As String
Dim strContenido As String
Dim strRegistros() As String
Dim Tam As Long, co1 As Long
Dim Libre As Integer
Dim Rst As DAO.Recordset
strRuta = "C:\Datos\Datos.txt"
If Len(Dir(strRuta)) > 0 Then
Libre = FreeFile
Open strRuta For Binary As #Libre
Tam = LOF(Libre)
strContenido = String(Tam, " ")
Get #Libre, , strContenido
Close #Libre
Set Rst = Me.Recordset
strRegistros = Split(strContenido, vbCrLf)
For co1 = LBound(strRegistros) To UBound(strRegistros)
Rst.AddNew
Rst!Campo1 = Mid(strRegistros(co1), 10, 3)
Rst!Campo2 = Mid(strRegistros(co1), 14, 5)
Rst!Campo3 = Mid(strRegistros(co1), 30, 4)
Rst!Campo4 = Mid(strRegistros(co1), 35, 1)
Rst.Update
Next co1
Set Rst = Nothing
Else
MsgBox "El archivo de datos no existe"
End If
End Sub
Por razones personales dejare TodoExpertos por un tiempo, te agradeceré finalizaras esta pregunta en cuanto te sea posible.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas