Hello, guys!
I am reading a long text file (>140.000 lines) to get the values to be inserted in a table using VBA, but it takes too long (more than 40 minutes). This is my code:
Can I get any help to do this faster, please?
I am reading a long text file (>140.000 lines) to get the values to be inserted in a table using VBA, but it takes too long (more than 40 minutes). This is my code:
Code:
entFile = FreeFile() ' Returns an Integer representing the next file number available for use by the Open statement.
txtFile = "D:\CAEES\ENERO-2021.txt"
Open txtFile For Input As #entFile
DoCmd.SetWarnings False
Debug.Print "Inicio", Now()
Do While Not EOF(entFile)
Line Input #entFile, txtEntrada ' Reads a single line from an open sequential file and assigns it to a String variable.
'Debug.Print "Lngitud de la linea: " & Len(txtEntrada)
If 79 <= Len(txtEntrada) Then
txtComprobante = Mid(txtEntrada, 1, 6)
txtNumero = Mid(txtEntrada, 7, 5)
txtCuenta = Mid(txtEntrada, 12, 17)
txtFecha = Mid(txtEntrada, 29, 8)
txtConcepto = Mid(txtEntrada, 37, 30)
txtOperacion = Mid(txtEntrada, 67, 1)
txtMonto = Mid(txtEntrada, 68, 12)
fecFecha = Format(txtFecha, "00/00/0000")
If "D" = txtOperacion Then
monDebe = CCur(txtMonto) / 100#
monHaber = 0#
Else
monDebe = 0#
monHaber = CCur(txtMonto) / 100#
End If
'Debug.Print txtComprobante, txtNumero
'
' Insertar los datos en la tabla local
'
txtMiSql = "INSERT INTO co_comprobantes (lo_asiento_id, en_numero_registro, tx_cuenta, fe_fecha, " & _
"tx_concepto, tx_operacion, mo_debe, mo_haber)" & vbCrLf & _
"VALUES(" & txtComprobante & ", " & txtNumero & ", '" & txtCuenta & "', " & _
"'" & fecFecha & "', '" & txtConcepto & "', '" & txtOperacion & "', " & str(monDebe) & _
", " & str(monHaber) & ")"
DoCmd.RunSQL txtMiSql
End If
Loop
Debug.Print "Final", Now()
DoCmd.SetWarnings True
Close #entFile
Can I get any help to do this faster, please?