Prova a commentare la riga
codice:
On Error GoTo gestione1
e vedi Se, Dove e Qual'è l'errore che restituisce.
Comunque, l'implementazione dei due cicli è sbagliata:
- nel primo tu ottieni il NUMERO di file .DAT
- nel secondo presupponi che il numero progressivo esista, il che non è sempre vero.
Intendo dire, se hai 100 file DAT, il secondo ciclo pressupone che siano numerati da 001 a 100. Se così fosse (dubito che lo sia) allora a che scopo fare il primo ciclo?
Se fai un debug/trace del codice sono sicuro che sarà così.
Non capisco perchè fai due cicli quando basta un solo ciclo Do While (finchè ci sono file) ?
- cerchi con Dir$() il nome del file ordinato per numero (incrementando ad ogni loop un contatore)
- se esiste: lo apri e stampi
- se non esiste: cerchi il prossimo
Inoltre, non dovresti mai aprire un file usando #1 , ma si deve sempre richiedere il numero al sistema con la funzione FreeFile:
codice:
Dim fNum As Integer
fNum = FreeFile
Open ............ as #fNum
infine, magari avrai i tuoi motivi (che a me però non è dato sapere) e mi chiedo perchè:
1. leggi i valori
2. li assegni a dei controlli Label
3. li stampi prelevandoli dai Label
quando sarebbe più logico e più veloce saltare il passo 2 (che a quanto mi par di capire non serve a niente se non come deposito momentaneo). Cioè fare così:
codice:
Open "Lpt1:" For Output As #1
Print #1, Validità
Print #1, "TESSERA N. : " + Tes + Format(s, "000")
Print #1, tr
Print #1, nome + " " + cognome
Print #1, "E. " + Format(Tariffa, "00.00")
Print #1,
Print #1,
Print #1,
Print #1,
Close #1
Ciao