Newsgroup: it.comp.appl.access
Titolo: Importare un file .txt automaticamente

Sto utilizzando un'applicazione di Access scritta da terzi che esporta dei
dati in TXT. A causa dello scarso livello di preparazione delle colleghe mi
preme sapere come e cosa fare affinchè, aprendo un documento di Access esso
importi in modo semplice ed automatico detta tabella esportata in Access.
Ribadisco che non posso intervenire sul programma che esporta, in quanto ci
sono dei non meglio precisati problemi di licenza, ma solo sul documento che
importa.
Grazie in anticipo.

"Kwijibo" <spamlu...@galactica.itspam> wrote in message
news:xRi38.32596$tl3.1...@twister2.libero.it...

spiegati meglio...
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:153b05dd33d1bf765e...@mygate.mailgate.org...

se ho capito bene devi importare in Access un file di testo (poco importa
che sia generato da un'applicazione Access)
Per fare ciò: da File/Carica dati esterni/Importa fai l'importazione del
file di testo, da Avanzate salvi le specifiche di
importazione e poi le metti in un modulo di VBA o in una macro con azione
TrasferisciTesto.

"Kwijibo" <spamlu...@galactica.itspam> ha scritto nel messaggio
news:xRi38.32596$tl3.1...@twister2.libero.it...

Se il file ha sempre lo stesso nome e struttura dei dati ti conviene
collegarlo e lo leggerai come un tabella di access...
Ciao.
--
Sergio MAZZA

So come caricare il file in formato TXT e come formattarlo.
Ora quello che mi serve è rendere alle colleghe il lavoro facile. Ho provato
a spiegare loro le procedure e mi hanno detto che tanto ci sono e che era
troppo complesso per loro (testuali parole). Ora io non ho la più pallida
idea di come fare a fare questa importazione senza passare per importa e
formattare la tabella (che ha sempre lo stesso nome e la stessa struttura,
solo che variano i dati inseriti, ovviamente).
Per motivi di licenza non posso intervenire sul prima programma (quello che
esporta il file TXT, altrimenti avrei fatto in modo che esportasse
direttamente in formato Access, ma mi è stato impedito dalla responsabile,
proprio per i motivi di licenza).
Se servono altre informazioni, sono ben lieto di fornirle.
Grazie per le risposte già avute e quelle che verranno.

 Grazie per le risposte già avute e quelle che verranno.
Ciao.
--
Sergio MAZZA



non puoi fare un macro che ti importa il tutto.....
oppure via codice usa
DoCmd.TransferDatabase ecc....
oppure  da sistemare la seguente procedura
On Error GoTo Err_importacame_Click
Dim fs, f, f1, fc, s, agg, lis, posizione, nomefile
Set fs = CreateObject("Scripting.FileSystemObject")
posizione = dicidirectory("came")
lis = False
If posizione <> "" Then
    Set f = fs.GetFolder(posizione)
    Set fc = f.Files
    nomefile = dicinome("came")
    For Each f1 In fc
        If f1.Name = nomefile Then lis = True
    Next
End If
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Dim ultimocodart As Double
Set rs = db.OpenRecordset("SELECT Val(Right([codart],Len([codart])-3))
AS Cod FROM metelcame ORDER BY Val(Right([codart],Len([codart])-3))
DESC")
If rs.EOF Then
    ultimocodart = 0
Else
    ultimocodart = rs![cod]
End If
rs.Close
Set rs = db.OpenRecordset("SELECT * FROM metelcame")
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim Riga, cerca, vecchio, nuovo As Variant
If lis Then
 Set f = fs.OpenTextFile(posizione & nomefile, ForReading)
 Riga = (f.readline)
 Do While f.atendofstream = False
    Riga = (f.readline)
    cerca = UCase("" & Trim(Left(Riga, 19)))
    cerca = Right(cerca, Len(cerca) - 3)
    rs.FindFirst ("desc=""" & cerca & """")
    If rs.NoMatch = True Then
        rs.AddNew
        rs![CodArt] = "CCA" & ultimocodart + 1
        ultimocodart = ultimocodart + 1
        rs![PRODUTTORE] = "CCA"
        rs![Misura] = "Pz."
        rs![Desc] = cerca
        rs![Desc2] = Mid(Riga, 33, 43)
        rs![PZOPRODUT] = Val(Mid(Riga, 100, 9)) / 100
        rs![barre] = Mid(Riga, 20, 13)
        rs![data] = Date
        rs.Update
    Else
        rs.Edit
    rs![Desc2] = Mid(Riga, 33, 43)
        rs![PZOPRODUT] = Val(Mid(Riga, 100, 9)) / 100
        rs![barre] = Mid(Riga, 20, 13)
        rs![data] = Date
        rs.Update
    End If
 Loop
 f.Close
 MsgBox "Importazione completata"
Else
    MsgBox ("File " & dicidirectory("came") & dicinome("came") & " non
trovato")
End If
rs.Close
Set db = Nothing
Exit Sub
Err_importacame_Click:
    MsgBox "Errore durante l'importazione dei dati"
    Exit Sub
Saluti.
Emanuele.