Newsgroup: it.comp.appl.access
Titolo: modifica nome file da access

Ciao a tutti,
ho una maschera che mi permette di stampare in automatico tutti i report
filtrando da una tabella numero e data fattura, trasformando in pdf il
report ogni volta che cambia il numero e la data fattura. I files pdf
vengono memorizzati in una cartella precisa dl HD.
Ho un problema : se la procedura di stampa viene lanciata + volte, voglio
fare in modo che il report duplicato assuma un altro nome e cioè se questo è
il nome del report esistente :
 pcklist_N_33-2405200426471
copia(0)pcklist_N_33-240520042647.pdf      questo sarà il nome del
primoduplicato e
copia(1)pcklist_N_33-240520042647.pdf     sarà il nome del secondo
duplicato.
Ho tentato varie strade quella che mi sembra più logica è quella di
intercettare l'errore del file duplicato e successivamente controllarlo, in
modo da modificare il nome secondo le caratteristiche che vi ho indicato
sopra.
l'errore effettua queste righe di codice (on error goto rimanda a rinomina )
rinomina:
        trovapunto = InStr(soloilnome, ".") 'trovo la posizione punto
all'interno del nome del file
        soloilnome = Left(soloilnome, trovapunto - 1) ' prendo solo il nome
        strnome = "C:\documents and
settings\sandro.SANDRO-RNGFNRHJ\desktop\pdf\" & soloilnome
        solopercorso = "C:\documents and
settings\sandro.SANDRO-RNGFNRHJ\desktop\pdf\"
        trovato = Dir(solopercorso)
         Do While trovato <> ""   ' Avvia il ciclo.
                If trovato = soloilnome Then
                  conteggionumerofile = conteggionumerofile + 1
                 End If
                 trovato = Dir
            Loop
             'myname = Dir
        messaggio = "Questo file " & strnome & " è duplicato" & " e verrà
rinominato così:" & strnome & "copia" & soloilnome
        conteggionumerofile = 0
        If Not MsgBox(messaggio, vbCritical + vbOKCancel) = vbOK Then
                messaggio2 = "Dimmi il nome del file:"
                nuovonomefile = InputBox(messaggio2, , strnome & "copia" &
soloilnome)
                soloilnome = nuovonomefile & ".pdf"
                Name oldname As (nuovonomefile & "(" & conteggionumerofile &
")" & ".pdf")
            Else
                soloilnome = soloilnome & ".pdf"
                Name oldname As (solopercorso & "copia(" &
conteggionumerofile & ")" & soloilnome & ".pdf")
        End If
        Resume Next
End Sub
Ho impostato anche una inputbox in cui l'utente può anche modificare il nome
del file a suo piacimento.
Che cosa ottengo con tutto questo ? A parte le imprecazioni, che il nome del
file viene stampato correttamente la prima volta che viene lanciata la
procedura e cioè cosi :
pcklist_N_33-2405200426471
la seconda volta in caso di errore :
copia(0)pcklist_N_33-240520042647.pdf
la terza volta entra in errore in quanto il sistema genererebbe nuovamente
copia(0)pcklist_N_33-240520042647.pdf
sono disposto a modificare anche tutto, magari utilizzando le API di
windows se quanto da me preparato non fosse per nulla corretto, ma prima di
defenestre il computer è meglio che faccio anche questo tentativo.
Grazie per l'eventuale aiuto.-

 ha scritto nel messaggio
news:cq4sm4$rsb$1...@lacerta.tiscalinet.it...

Ciao Sandro,
prova ad usare questa funzione per rinominare i files al posto di Name :
Sub rinomina(vecchioNome As String, nuovoNome As String)
Dim trovapunto As Integer
Dim soloilnome As String
Dim solopercorso As String
Dim conteggio As Integer
        trovapunto = InStrRev(nuovoNome, "\") 'trovo la posizione dello \
all' interno del nome del file
        soloilnome = Mid(nuovoNome, trovapunto + 1, Len(nuovoNome) - 4 -
trovapunto) ' prendo solo il nome
        solopercorso = Left(nuovoNome, trovapunto)
           ' Ripeto il ciclo fino a che non trovo un nome non ancora usato
         Do While Len(Dir(nuovoNome)) > 0    ' Avvia il ciclo.
                nuovoNome = solopercorso & "copia(" & conteggio & ") di " &
soloilnome & ".pdf"
                conteggio = conteggio + 1
        Loop
        Name vecchioNome As nuovoNome
End Sub
Saluti
Cinzia


Questa cosa era strettamente legata a quella di cui si discuteva ieri
dall'altra parte.
Non sai che ennesimo piacere mi hai fatto perchè mi serviva per il lavoro e
in questo pomeriggio ci avevo dedicato un paio d'ore, e ieri sera fino a
tarada ora,ma senza un risultato
soddisfacente.
Adesso sono a casa trovo la tua risposta, provo e funziona perfettamente !!!
Tu non sai che piacere mi hai fatto.
Ti ringrazio infinitamente !!!!
Ciao.

 ha scritto nel messaggio
news:cq738s$3rs$1...@lacerta.tiscalinet.it...

Ma allora Babbo Natale esiste davvero!!    (nello specifico avrei dovuto
dire la "Befana", ma è molto meno poetico!!)
Ciao
Cinzia


Nel mio caso sei sempre e comunque un Angelo venuto dal cielo !!
Ciao Sandro.