Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dividere Campi in Automatico..???

106 views
Skip to first unread message

SuperPippo

unread,
Oct 13, 2000, 3:00:00 AM10/13/00
to
....non sň se il titolo del messaggio č appropriato ma avevo questo
problema....
conosco poco Access e vorrei un aiuto x creare una macro...o altro..non sň.

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... !!!

Sergio MAZZA

unread,
Oct 13, 2000, 3:00:00 AM10/13/00
to

"SuperPippo" <QRZ?ik0...@libero.it> ha scritto nel messaggio
news:s4GF5.1209$Nz.2...@news.infostrada.it...
> ....non sò se il titolo del messaggio è appropriato ma avevo questo

> problema....
> conosco poco Access e vorrei un aiuto x creare una macro...o altro..non
sò.
>
> 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... !!!
>
Per caso la domanda è: "come posso fare per non utilizzare Excel o/ed
evitare di fare l'operazione di importazione tutta a mano?".
Se il file ha sempre lo stesso nome; se la struttura interna dei dati è
sempre la stessa; puoi collegare il file di testo..

Ciao.

SuperPippo

unread,
Oct 13, 2000, 3:00:00 AM10/13/00
to
"Sergio MAZZA" <sergi...@tiscalinet.it> ha scritto nel messaggio
news:8s7ej3$r9g$1...@suite03.caspur.it...

>
> "SuperPippo" <QRZ?ik0...@libero.it> ha scritto nel messaggio
> news:s4GF5.1209$Nz.2...@news.infostrada.it...
> > ....non sň se il titolo del messaggio č appropriato ma avevo questo

> > problema....
> > conosco poco Access e vorrei un aiuto x creare una macro...o altro..non
> sň.
> >
> > 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... !!!
> >
> Per caso la domanda č: "come posso fare per non utilizzare Excel o/ed

> evitare di fare l'operazione di importazione tutta a mano?".
> Se il file ha sempre lo stesso nome; se la struttura interna dei dati č

> sempre la stessa; puoi collegare il file di testo..
--------------------
Ok Sergio...il tuo titolo sembra + appropriato... cosa che x me sarebbe
anche indifferente poetr usare Excel o Access x risolvere questo
problema....
il file anche se non ha lo stesso nome...lo cambio quale č il problema ???
sia la struttura interna...che la sequenza dei dati č sempre la stessa...
posso collegare il file di testo ??? cosa vuoi dire... ???

Harry Evans

unread,
Oct 14, 2000, 2:33:03 AM10/14/00
to
Se quello che vuoi fare č importare i dati in una tabella, basta che tu lo
faccia: scegli File / Carica dati esterni / Importa
Quando devi scegiere il file, cambia il Tipo File (in basso a sx della
finestra di dialogo) in File di testo. Scegli il file, clicka su importa
Access ti chiede di suddividere i campi (e qui devi saperne il tracciato) e
creerŕ la struttura e importerŕ i dati.
Se la cosa si ripete spesso, puoi salvare la configurazione di import ed
eseguirla da una macro (bleah!) o da un modulo (con gli eventuali controlli
di errore ecc.)

buon lavoro


SuperPippo <QRZ?ik0...@libero.it> wrote in message

SuperPippo

unread,
Oct 14, 2000, 3:00:00 AM10/14/00
to
"Harry Evans" <harry...@galactica.it> ha scritto nel messaggio
news:z8yQkia...@newsmst.mcis.galactica.it...
> Se quello che vuoi fare è importare i dati in una tabella, basta che tu lo

> faccia: scegli File / Carica dati esterni / Importa
> Quando devi scegiere il file, cambia il Tipo File (in basso a sx della
> finestra di dialogo) in File di testo. Scegli il file, clicka su importa
> Access ti chiede di suddividere i campi (e qui devi saperne il tracciato)
e
> creerà la struttura e importerà i dati.

> Se la cosa si ripete spesso, puoi salvare la configurazione di import ed
> eseguirla da una macro (bleah!) o da un modulo (con gli eventuali
controlli
> di errore ecc.)
>
> buon lavoro
------------
Grazie... Harry...ma questo già lo faccio... in Excel o Access... conosco il
tracciato...
siccome la cosa si ripete spesso... volevo sapere il modo x automatizzare
tutto ciò !!

Sergio MAZZA (Tiscali)

unread,
Oct 15, 2000, 3:00:00 AM10/15/00
to

"SuperPippo" <QRZ?ik0...@libero.it> ha scritto nel messaggio
news:FyIF5.5310$Nz.6...@news.infostrada.it...

> --------------------
> Ok Sergio...il tuo titolo sembra + appropriato... cosa che x me sarebbe
> anche indifferente poetr usare Excel o Access x risolvere questo
> problema....
> il file anche se non ha lo stesso nome...lo cambio quale č il problema ???
> sia la struttura interna...che la sequenza dei dati č sempre la stessa...
> posso collegare il file di testo ??? cosa vuoi dire... ???
>
>
Il problema del cambio nome.. č un problema! Almeno per me... Comunque
lasciando perdere il nome del file che potresti "agevolmente" risolvere;
collegare un file di testo č nientepopňdimenoche la stessa operazione che
fai quando colleghi (menů: File - carica dati esterni - collega tabelle)
tabelle access che sono su un altro file mdb. Alla fine gestirai la
"tabella" (file di testo) come se fosse un'altra tabella di access...

Ciao.

SuperPippo

unread,
Oct 15, 2000, 3:00:00 AM10/15/00
to
"Sergio MAZZA (Tiscali)" <sergi...@tiscalinet.it> ha scritto nel
messaggio news:8scg90$1jv$1...@pegasus.tiscalinet.it...

>
> "SuperPippo" <QRZ?ik0...@libero.it> ha scritto nel messaggio
> news:FyIF5.5310$Nz.6...@news.infostrada.it...
> > --------------------
> > Ok Sergio...il tuo titolo sembra + appropriato... cosa che x me sarebbe
> > anche indifferente poetr usare Excel o Access x risolvere questo
> > problema....
> > il file anche se non ha lo stesso nome...lo cambio quale è il problema
???
> > sia la struttura interna...che la sequenza dei dati è sempre la

stessa...
> > posso collegare il file di testo ??? cosa vuoi dire... ???
> >
> >
> Il problema del cambio nome.. è un problema! Almeno per me... Comunque

> lasciando perdere il nome del file che potresti "agevolmente" risolvere;
> collegare un file di testo è nientepopòdimenoche la stessa operazione che
> fai quando colleghi (menù: File - carica dati esterni - collega tabelle)

> tabelle access che sono su un altro file mdb. Alla fine gestirai la
> "tabella" (file di testo) come se fosse un'altra tabella di access...
>
-----------
Ok Sergio... quello che dici tu lo sò fare sia in Excel che in Access... a
livello manuale avendo il tracciato è semplice... però volevo automatizzare
la cosa... dato che è un lavoro che eseguo di routine una volta ogni 2
mesi... cmq.. non fà niente... non è un lavoro lungo dopotutto...Grazie..

Giorgio Valsangiacomo

unread,
Oct 15, 2000, 3:00:00 AM10/15/00
to

"SuperPippo" <QRZ?ik0...@libero.it> ha scritto nel messaggio
news:s4GF5.1209$Nz.2...@news.infostrada.it...
> ....non sò se il titolo del messaggio è appropriato ma avevo questo

> problema....
> conosco poco Access e vorrei un aiuto x creare una macro...o altro..non
sò.
>
> 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, non mi ricordo da chi avevo ricevuto ciò che segue, ma forse potrebbe
aiutarti:

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
>
>
>

Sergio MAZZA

unread,
Oct 16, 2000, 3:00:00 AM10/16/00
to

"SuperPippo" <QRZ?ik0...@libero.it> ha scritto nel messaggio
news:n9mG5.20592$Nz.6...@news.infostrada.it...

> Ok Sergio... quello che dici tu lo sò fare sia in Excel che in Access...
a
> livello manuale avendo il tracciato è semplice... però volevo
automatizzare
> la cosa... dato che è un lavoro che eseguo di routine una volta ogni 2
> mesi... cmq.. non fà niente... non è un lavoro lungo dopotutto...Grazie..
>
>
Tu dici? Sei sicuro che sia la stessa cosa? A mio avviso no...

Ciao.

SuperPippo

unread,
Oct 16, 2000, 3:00:00 AM10/16/00
to
"Giorgio Valsangiacomo" <ka...@ticino.com> ha scritto nel messaggio
news:8sd4l6$3f1$1...@news1.sunrise.ch...

>
> "SuperPippo" <QRZ?ik0...@libero.it> ha scritto nel messaggio
> news:s4GF5.1209$Nz.2...@news.infostrada.it...
> > ....non sň se il titolo del messaggio č appropriato ma avevo questo

> > problema....
> > conosco poco Access e vorrei un aiuto x creare una macro...o altro..non
> sň.
> >
> > 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, non mi ricordo da chi avevo ricevuto ciň che segue, ma forse
potrebbe
> aiutarti:
>
> 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
> >
grazie...provo a vedere se funge x il mio caso...grazie...

Mirko G.

unread,
Oct 17, 2000, 1:30:14 AM10/17/00
to
> Grazie... Harry...ma questo già lo faccio... in Excel o Access... conosco
il
> tracciato...
> siccome la cosa si ripete spesso... volevo sapere il modo x automatizzare
> tutto ciò !!
>

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


0 new messages