Newsgroup: it.comp.appl.access
Titolo: open file for input.... open file for append

Salve a tutti.
non sono un assiduo frequentatore, ma giuro tutto quello che so di volta in
volta l'ho imparato dalla collaborazione preziosa di questo gruppo.
ho un pc spaziale, praticamente un server, so winxp. ci giro access 2000.
Da anni combatto con archivi che ahime' diventano sempre piu' grandi e che
ne vogliono sapere sempre troppo poco di andare per bene...non è tutta colpa
mia...ricevo dati in forma di file txt che poi necessitano di centomila
ritocchi.
Da qualche settimana ho cominciato a trattare questi dati aprendoli cosi'
    Open file_txt For Append As #2
    Open FILE For Input As #1
          Do While Not EOF(1)
               Line Input #1, TextLine
............... ...............
               Print #2, stringa
dove stringa è una stringa che ottengo facendo mille operazioni sull'altra
stringa (input) che ho chiamato textline.
Il file txt che ottengo in questo modo viene successivamente importato in
una tebella. In questa tabella in c'è un campo codice_cliente.
Ho poi una seconda tabella in cui al codice cliente sono associate altre
informazioni ad esempio tipo_cliente, area_cliente
allo stato, non essendo possibile isstituire alcuna relazione tra le due
tabelle, per portare le informazioni della seconda tabella nella prima, sono
costretto a girare una query di aggiornamento. Questa operazione ahimeè
porta via una valanga di tempo perchè purtroppo la seconda tabella contiene
alcuni milioni di record (che posso fare...cosi' mi arriva).
per evitare di impattare sulla lentezza del codice sql (almeno nel caso che
presento) avevo pensato di fare in modo di valorizzare questi campi
tipo_cliente, area_cliente direttamente nel file_txt.
 considerato, peraltro che la tabella da cui prelevo queste informazioni
risiede in un database diverso (che pesa poco meno di 1 gb) per questa cosa
mi sono immaginato una cosa del tipo:
Set DBS = OpenDatabase(dbasealtro)
Set RST1 = DBS.OpenRecordset(STRINGAG)
Dim mystring
' variabile è il campo codice cliente, come via via viene identificato nel
file txt a mano a mano che viene valorizzato riga per riga
variabile = Codice_cliente
 
mystring = "[codice_cliente] = '" & codice_clientevariabile & "'"
RST1.FindFirst mystring
    If Not RST1.NoMatch Then
        w2 = RST1("tipo cliente")
        w3 = RST1("area cliente")
    End If
dove w2 e w3 sono due spezzoni che vado poi ad accodare alla stringa che
passo al file_txt
insomma questa cosa ha girato...ma il tempo è stato biblico.
Sarei grato a chiunque potesse suggerirmi una soluzione eseguibile in tempi
umanamente accettabili.
fiducioso nella solita preziosa collaborazione ringrazio fin d'ora tutti
Antonio
 
    RST1.Close
    DBS.Close
    Set DBS = Nothing
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 alcuni milioni di record (che posso fare...cosi' mi arriva).
Alcuni milioni di codici cliente???
Sticazzi, chi ti ha commissionato il lavoro? Il ministero delle
finanze?
IMHO!
Max

 ha scritto nel messaggio news:193Z203Z232Z5Y1...@usenet.libero.it...

Se il tracciato del file di testo è riconoscibile da access (File - CArica dati esterni - Collega Tabelle), puoi trattarlo come una 
tabella qualsiasi.
In alternativa se puoi raggiungere questo "database diverso" tramite driver ODBC lavori direttamente sulla tabella...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio news:1173390607....@30g2000cwc.googlegroups.com...
On 8 Mar, 19:02, 
arir...@libero.it
 (arirang) wrote:
Sticazzi, chi ti ha commissionato il lavoro? Il ministero delle
finanze?
[risposta]
Augh! Grande Capo...
IMHO!
Max
[risposta]
Ciao.
-- 
Sergio MAZZA