Importar un txt saltandose la cabecera
Publicado por alex (10 intervenciones) el 30/01/2021 14:42:11
Hola , he encontado el siguiente codigo que quisiera adaptar e mi programa, es un codigo de Emilio Sancha, creo. Lo que necesito es que la primera linea de mi fichero txt no me la importe. Se podria hacer con este codigo.
Gracias de antemano.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
'*******************************************************************************
'* Form_frmImportar
'* Formulario para la importación de datos desde un archivo de texto delimitado
'* ESH 02/11/03 19:22
'*******************************************************************************
Option Compare Database
Option Explicit
'*******************************************************************************
'* cmdImportar_Click
'* Importa datos de un archivo de texto delimitado
'* uso:
'* ESH 02/11/03 19:20
'*******************************************************************************
Private Sub cmdImportar_Click()
On Error GoTo cmdImportar_Click_TratamientoErrores
Dim strArchivo As String, _
bytArchivo As Byte, _
strLinea As String, _
strDelimitador As String, _
i As Integer, _
rst As Recordset, _
strSQL As String, _
Matriz() As String
DoCmd.Hourglass True
bytArchivo = FreeFile
' establezco el delimitador de texto con el de su código ASCII correspondiente
' esto forzado por la necesidad de poder usar el tabulador (CHR(9) que no
' tiene caracter imprimible
'strDelimitador = Chr(ccDelimitador.Column(1))
strDelimitador = Chr(59) ' esto es el ;
' tomo el nombre del archivo de texto del formulario
strArchivo = txtRuta
' abro el archivo de texto
Open strArchivo For Input As bytArchivo
' abro el recordset
strSQL = "SELECT * FROM Tabla1"
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
' extraigo los datos del fichero de texto
Do
' leo una linea de texto del archivo
Line Input #bytArchivo, strLinea
' si la linea está vacia, la ignoro
If strLinea <> "" Then
' en este caso hay seis campos, luego cinco delimitadores
' inserto un registro en el recordset
rst.AddNew
' troceo la cadena
Matriz() = Split(strLinea, strDelimitador)
' llevo los distintos "trozos" a sus respectivos campos
For i = 1 To 6
' si el segmento de cadena lleva comillas (Chr(34)), las ignoro
If InStr(Matriz(i - 1), Chr(34)) <> 0 Then
rst("Campo" & i) = Mid(Matriz(i - 1), 2, Len(Matriz(i - 1)) - 2)
Else
rst("Campo" & i) = Matriz(i - 1)
End If
Next i
' guardo el registro
rst.Update
End If
Loop While Not EOF(bytArchivo)
cmdImportar_Click_Salir:
If Not IsEmpty(rst) Then
rst.Close
Set rst = Nothing
End If
Close #bytArchivo
DoCmd.Hourglass False
On Error GoTo 0
Exit Sub
cmdImportar_Click_TratamientoErrores:
MsgBox "Error " & Err.Number & " en proc. cmdImportar_Click de Documento VBA Form_frmImportar (" & Err.Description & ") "
GoTo cmdImportar_Click_Salir
End Sub ' cmdImportar_Click
Gracias de antemano.
Valora esta pregunta
0