salve a tutti avrei bisogno di un consiglio...
il problema è questo....
Ho una cartella con circa 80.000 file txt.
ogni file ha semplicemente una riga che io devo suddividere e memorizzare in una tabella di access.
ho scritto il codice e funziona tutto ma ho dei tempi che secondo la mole di dati con cui ho a che fare sono davvero troppo lunghi
Esempio pratico per caricare 3300 file ci metto 7 minuti circa
questo è il codice
codice:
Private Sub psbImportGriglie_Click()
On Error GoTo GestioneErrore
Dim NomeFileGriglie As String
Dim Risposte As String
Dim CodiceDomanda As String
Dim Risposta As String
Dim Punteggio As String
Dim cnt As Integer
Dim i As Integer
Dim percorso As String
Dim LunghezzaRisposte As Integer
Dim ContatoreNumeroDomanda As Integer
ContatoreNumeroDomanda = 1
' mi serve per dare un numero progressivo all'interno della tabella
NomeFileGriglie = Dir(App.Path & "\Griglie\*.txt")
Open App.Path & "\Griglie\" & NomeFileGriglie For Input As #1
Line Input #1, Risposte
Close #1
LunghezzaRisposte = Len(Risposte)
Do Until NomeFileGriglie = ""
For i = 1 To LunghezzaRisposte - 2 Step 13
CodiceDomanda = Mid(Risposte, i, 7) & Mid(Risposte, i + 8, 1)
Risposta = UCase(Mid(Risposte, i + 7, 1))
Punteggio = Replace(Mid(Risposte, i + 9, 4), ".", ",")
GloUdt.StrSql = "INSERT INTO Griglia values('" & Mid
(NomeFileGriglie, 1, 5) & "','" _
& ContatoreNumeroDomanda & "','" & CodiceDomanda & "','" &
Risposta & "','" _
& Punteggio & "',null,null)"
Call CheckRcs(GloUdt.StrSql, GloUdt.Rcs)
ContatoreNumeroDomanda = ContatoreNumeroDomanda + 1
DoEvents
Next
Kill (App.Path & "\Griglie\" & NomeFileGriglie)
DoEvents
NomeFileGriglie = Dir
Open App.Path & "\Griglie\" & NomeFileGriglie For Input As #1
Line Input #1, Risposte
Close #1
ContatoreNumeroDomanda = 1
cnt = cnt + 1
lblCnt.Caption = cnt
Loop
MsgBox "OK"
Exit Sub
GestioneErrore:
Call GestioneErrori
End Sub