il mio problema č questo...in ufficio mi arriva ogni 2/3 mesi un DB
chiamiamolo cosě, in formato testo (TXT) e tutti i caratteri sono scritti
attaccati (non mi spiego il perchč arrivino cosě)...Esempio:
1237347487843988DRFNBHHJ7676HHHJ996YFD788399893898499558494899884646
essi hanno un significato ...nel senso che i primi tre numeri sono un codice
regionale, i secondi tre numeri sono un codice aziendale... poi vi č un
codice fiscale e via procedendo...
ogni volta che arriva stň file devo procedere manualmente con Excel o Access
ad importarlo e selezionare i campi...manualmente con evidente perdita di
tempčo ed erroti...
....le spaziature dei campi risultano essere realmente......
3-3-5-1-6-16(Cod.Fiscale)-Cognome-Nome-1-Datanascita(8
cifre)-5-3-16-2-7-1-8-1-1-1-5-1-3-1-----
Grazie tantissimo a chi potrŕ darmi una mano... !!!
Ciao.
buon lavoro
SuperPippo <QRZ?ik0...@libero.it> wrote in message
Ciao.
Dim Record As String * 128 'Questa è la lunghezza del record
Dim strpath As String 'Percorso e nome file
Dim sqlstr As String 'Stringa sql per l'inserimento dei dati
Dim db As Database 'DB corrente
Set db = CurrentDb()
'Viene richiesto path e nome file
strpath = "C:\Pippo.txt"
'Apre il file in modalità Binary con record di lunghezza pari a 128
[Impostata nella dichiarazione]
Open strpath For Binary As #1 Len = Len(Record)
Do While Not EOF(1)
Record = Input(Len(Record), #1)
If Asc(Record) = 26 Then 'Se viene individuato il carattere di EOF ->
skip
Close #1
db.Close
Set db = Nothing
Exit Function
End If
sqlstr = "INSERT INTO TABELLA1 (Campo) VALUES ('" & Record & "');"
db.Execute (sqlstr) 'Inserisce il Record nella tabella TABELLA1
Loop
Close #1
db.Close
Set db = Nothing
End Function
gIORGIO
>
>
>
Ciao.
Guarda che Harry ti ha risposto. Comunque una piccola dritta:
devi utilizzare VBA di acces o excell: dal file testo originale crei un
file testo delimitato che potrai importare ovunque.
Devi aprire 2 due file con l'ISTRUZIONE Open (la stessa del vecchio Basic
in DOS) . In un loop leggi un record (una riga) riscrivendolo nel nuovo file
il quale avrà lo stesso tracciato record con l'avvertenza di inserire
fra ogni campo un campo da 1 carattere a cui assegnerai il carattere di
delimitazione (virgola oppure punto e virgola o tabulazione ecc.); il loop
naturalmente terminerà a fine file.
se il rec. Originale è
Type Rec1
c1 As String * 3 'campo1
c2 As String * 3 'campo2 ecc.
c3 As String * 5
c4 As String * 1
c5 As String * 6
eccetera
End Type
Il tracciato rec. nuovo sarà
Type Rec2
c1 As String * 3
d1 As String * 1 'carattere di delimitazione
c2 As String * 3
d2 As String * 1 'carattere di delimitazione
c3 As String * 5
d3 As String * 1 'carattere di delimitazione
eccetera
dx As String * 2 ' Ultimo campo 2 caratteri di fine record (vbCrLf )
End Type
Per non riscrivere i nomi dei campi tutte le volte potresti, con un editor
di testo, aggiungere all'inizio una riga con tutti i nomi separati dal
delimitatore scelto oppure importare il tutto in una tabella predifinta
vuota.
Non è molto difficile anche se non conosci il basic. l'Help o un buon testo
ti sarà di aiuto. Buon lavoro!!
Mirko