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


Rispondi quotando
