PDA

Visualizza la versione completa : [VBA x ACCESS] Comando open


Securitylife
08-05-2002, 09:34
Salve a tutti,
nell'evento "Form_Open" ho inserito il seguente codice:


Open "C:\file.exs" For Output As #1
Print #1, miovalore
Close #1

questo comando viene eseguito correttamente, ma ogni volta che si carica la form, il valore nel file viene sovrascritto, esiste un sitema per far scrivere il valore e lasciare i valori vecchi sotto? Una cosa tipo i log.

ciao e grazie

Boldan
08-05-2002, 09:51
Ciao,
anziché usare come modalità di apertura "Output" devi usare "Append".
Infatti l'istruzione Open ... For OutPut ... cancella il file se già esiste e lo sostituisce con quallo nuovo. Utilizzando invece Open ... For Append ..., tutto quello che scrivi nel file viene aggiunto in coda.
Il tuo codice quindi dovrebbe essere:

--------------------------------------------------------------------------------
Open "C:\file.exs" For Append As #1
Print #1, miovalore
Close #1
--------------------------------------------------------------------------------

Spero di averti aiutato!!
Ciao!!:D

Securitylife
08-05-2002, 10:55
Va bene!
Era meglio se metteva l'ultima cosa in alto, cmq va benissimo anche così!

ciao e grazie

sbellantone
08-05-2002, 11:56
ricordati che stai utilizzando un file sequenziale e che puoi aggiungere record solo in coda. però mai accontentarsi...
eccoti una procedurina che fa esattamente quello che vuoi tu

Open "C:\file.exs" For Input As #1
Open "C:\file2.exs" For Output As #2
While Not EOF(1)
Input #1, riga
Print #2, riga
Wend
Close #2
Close #1
Open "C:\file.exs" For Output As #1
Open "C:\file2.exs" For Input As #2
Print #1, miovalore
While Not EOF(2)
Input #2, riga
Print #1, riga
Wend
Close #2
Close #1
Kill "C:\file2.exs"

in pratica prima copia il tuo file in un file d'appoggio, poi ricrea il tuo file (output) e scrive la nuova riga (miovalore), poi ricopia tutte le righe dal file d'appoggio, infine cancella il file d'appoggio

i passaggi sono tanti, ma se devi utilizzare i file sequenziali......

SB

Securitylife
08-05-2002, 16:28
ok thx:ciauz:

Loading