Newsgroup: it.comp.appl.access
Titolo: IMPORTARE TESTO IN SPECIFICI CAMPI

Ciao
dovrei importare i dati contenuti (non delimitati) in un file di 
testo(MESE.TXT), ad esempio:
14258
24/12/05
5
14272
27/12/05
13
14372
03/01/06
3
.....
il primo rigo indica la matricola , il secondo la data, ed il terzo le ore 
lavorate e cosě via.
Mi arrivano cosě !
Dovrň inserirli in una tabella (EXTRA) che contiene 6 campi 
(NREG),(TYP),(MATRICOLA),(GIORNO),(ORE),(FLAGVALID)
del database (DIPENDENTIPARTTIME.MDB),
rispettivamente nei campi (MATRICOLA) , (GIORNO) e (ORE).
Non riesco a trovare un modo per caricarli automaticamente. Qualcuno puň 
cortesemente aiutarmi?
GRAZIE 


Ci sono varie possibilità.
La prima che mi viene in mente è questa:
- crea una tabella Mese con una sola colonna DatoImportato di tipo testo lungo 10 caratteri
- importa il file di testo nella tabella Mese
- crea un modulo dove scrivi il codice seguente:
Sub ImportaMese
Dim rsMese as RecordSet, rsExtra as RecordSet, nRec as Long
Set rsMese = CurrentDb.OpenRecordset("Mese")
Set rsExtra = CurrentDb.OpenRecordSet("Extra")
If rsMese.RecordCount>0 then
   rsMese.MoveFirst
Else
  MsgBox "Nessun record da importare"
  Exit Sub
EndIf
nRec=0
Do While rsMese.Eof= False
  nRec = nRec +1
  If nRec = 1 Then			
     rsExtra.AddNew
     rsExtra!Matricola=cLng(rsMese!DatoImportato)
  EndIf
  If nRec = 2 Then			
     rsExtra!Giorno=cDate(rsMese!DatoImportato)
  EndIf						 
  If nRec = 3 Then			
     rsExtra!Ore=cInt(rsMese!DatoImportato)
     rsExtra.Update 
     nRec=0  
  EndIf
  rsMese.MoveNext
EndDo
rsMese.Close
rsExtra.Close
Set rsMese = Nothing
Set rsExtra = Nothing
EndSub
Ovviamente è codice scritto di getto, senza pensaci più di tanto, assolutamente NON testato.
Quindi di sicuro va adattato alle tue esigenze e probabilmente anche corretto qua e là.
Però dovrebbe essere un buon punto di partenza.
Vincenzo Turturro
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com/
---------------------------------------------
E quello di it.comp.as400
http://www.faq400.com/
---------------------------------------------

 AntonellaTrapani ha scritto:


Apri il file con Open (vedi help <F1>), leggi tre righe e le inserisci in
tabella con una query. Ciclo fino alla fine del file (EOF). Non
dimenticarti di chiudere il file alla fine.
Open nomefile for input as #1
-ciclo-
  line input #1,matricola
  line input #1,giorno
  line input #1,ore
  currentdb.execute INSERT INTO Tabella (matricola, giorno, ore) VALUES
(.....);
  -ciclo-
close 1
Devi inoltre gestire gli errori che potrebbero sorgere se il numero di
righe non č esattamente un multiplo di tre.
Ciao.
-Marco-
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Ahimè, non funzia. Per favore qualche delucidazione in più
nel primo caso ricevo un errore già sul rigo
Set rsMese = CurrentDb.OpenRecordset("Mese")
nel secondo caso invece.... non ho ancora la preparazione necessaria per 
fare tutto da sola.
Grazie
ANTO

 ha scritto nel 
messaggio news:456ddb2f$0$19247$4faf...@reader4.news.tin.it...

OK - HO RISOLTO !!!   GRAZIE AD ENTRAMBI, SMACK!!
E' bastato flaggare qualche riferimento ed inserire un loop.
A presto.
CIAO
ANTO