ciao a tutti,
ho cercato in tutto il forum e qullo che ho trovato non dava risposte.
comunque ho un file di testo a spaziatura fissa e dovrei importarlo in una tabella di un db access
qualcuno può aiutarmi?
grazie
ciao a tutti,
ho cercato in tutto il forum e qullo che ho trovato non dava risposte.
comunque ho un file di testo a spaziatura fissa e dovrei importarlo in una tabella di un db access
qualcuno può aiutarmi?
grazie
Sergio
ciao
credo che devi mettere le dimesioni del campo...dentro al database..
no dovevo inserire nel db con sql, comunque ho risolto.
c'ho messo un pò ma sembra andare.
grazie
Sergio
potresti postare la soluzione da te adottata?
Anche io stavo lavorando su questa cosa, e gradirei, se possibile, un aiuto.
Thx
RaouL.
Eccola..
ci si può a questo punto aggiungere l'apertura di un nuovo file txt (un log per capirci) per scriverci sopra i dati non inportati per duplicazione di chiave
Left$(VarDati, 17)
Mid$(VarDati, 18, 40)
Mid$(VarDati, 67, 14))
sono le parti che nelle ricghe di testo mi servono, ma se le importo direttamente mi riempie il campo della tabella di spazi per i caratteri non coperti, quindi ho eseguito un controllo sulla stringa fino ad arrivare al primo carattere e ho tgliato via il resto.
Sicuramente ci sarà un metodo più preciso per eseguire il tutto, ma io non lo conosco.
ciao
(perdona anche eventuali errori banali.. io cerco di cavarmela)
'================================================
Private Sub Command1_Click()
Dim Path, NomeFile, C, D As String
Dim P As Double
Dim I As Long
Dim ii As Integer
Dim strSQL As String
Dim VarDati As String
On Error GoTo Errore:
NomeFile= "Dati3.txt"
Path = App.Path + "\" + NomeFile
Open Path For Input As #1
I = 1
While Not EOF(1)
Line Input #1, VarDati
For ii = 1 To 17 - 1
If Mid$(Left$(VarDati, 17), (17 - (ii - 1)), 1) <> " " Then
C = Replace(Left$(VarDati, 17 - (ii - 1)), "'", "''")
ii = 17
End If
Next
For ii = 1 To 40 - 1
If Mid$(Mid$(VarDati, 18, 40), (40 - (ii - 1)), 1) <> " " Then
D = Replace(Mid$(VarDati, 18, 40 - (ii - 1)), "'", "''")
ii = 40
End If
Next
P = CDbl(Mid$(VarDati, 67, 14))
'==========================
strSQL = "insert into Articoli (Codice,Descrizione,Prezzo) values ("
strSQL = strSQL & " '" & C & "', "
strSQL = strSQL & " '" & D & "', "
strSQL = strSQL & " '" & P & "') "
g_cnDB.Execute (strSQL)
'==========================
I = I + 1
Wend
Close #1
Errore:
If Err.Number = -2147467259 Then 'chiave duplicata
Resume Next
End If
End Sub
Sergio