Newsgroup: it.comp.appl.access
Titolo: drag and drop e rinominazione dei file

Ciao a tutti,
 
 
secondo voi è possibile trascinare un file di qualsiasi formato in un determinato punto di una maschera di access (access2016) in modo tale che vada a finire in una cartella del record .
 
esempio
 
La maschera di ricerca è aperta sul record contenente questi campi:
[nome] [cognome] [data di nascita]
 
nella maschera c'è una cornice che ha questo comportamento.
ogni volta che ci si trascina un file da una cartella di windows dentro la maschera il file viene salvato dentro la directory c:\pippo\"nome&cognome&datadinascita"\"nome&cognome&datadinascita".estensione
 
se ci sono già dei file in quella cartella verranno rinominati in "nome&cognome&datadinascita.estensione"001.estenzione
"nome&cognome&datadinascita.estensione"002.estenzione etc
 
non ho bisogno di salvare nei record di access le immagini .
 
scusate la confusione
grazie grazie

Quello che chiedi fa parte degli effetti speciali per i quali Access non è adatto...
 
In particoalre sarebbe da capire bene cosa vuoi fare e come, ma ti suggerirei di lasciar fare queste cose a chi non capisce in cosa si imbatte...
 
@Alex


Hai Ragione,
lascio fare a programmi di terze parti magari lanciandoli da access.
Ciao Grazie


scusate ci ho ripensato.....
ho pensato di semplificare il tutto utilizzando questa strategia.
 
la cartella viene creata da una maschera access con il comando 
MkDir ("I:\utenti\" & [Cognome] & "_" & [Nome] & "_" & Format([CFData], "DDMMYYYY"))
 
vengono trascinati nella cartella diverse scansioni e file
 
chiusa la cartella con un pulsante della maschera dovrei creare in vb un comando che rinomini i file con lo stesso nome della cartella .
potrebbe essere una strada
 
grazie

Utilizzi termini poco tecnici ed è difficile seguire distinguendo qualche cosa di operativo manuale da quanto dovrebbe essere gestione da codice...
 
In ogni caso da codice non si apre nessuna cartella o folder in quanto aprire è quello che fa il gestore risorse, ma questo poi non è gestibile in modo interattivo dal vba.
Con il Vba si fa tutto via vba... e si può fare anche quello che chiedi... serve una logica di base, idee chiare ed un minimo di conoscenza di vba appunto per calcare i file e rinominarli...
 
@ALEX

-----Chiarisco il tutto----
 
L' esigenza di base è questa:
1) Da una maschera continua, un pulsante apre una cartella di windows se è già esistente o crea una cartella qualora non fosse già creata.
ho risolto con:
 Dim imgPath As String
 Dim companyPath As String
 
 
    imgPath = "I:\ArchivioPazienti\" & [Cognome] & "_" & [Nome] & "_" & Format([CFData], "DDMMYYYY")
    companyPath = "I:\ArchivioPazienti\" & [Cognome] & "_" & [Nome] & "_" & Format([CFData], "DDMMYYYY")
 
 
    'If full path exists then open directory
    If Dir(imgPath, vbDirectory) > vbNullString Then
 
        Shell "C:\WINDOWS\explorer.exe """ & imgPath & "", vbNormalFocus
        Exit Sub
        End If
         ' If company folder exists but no documents folder
    ' Create document folder and open
    If Dir(companyPath, vbDirectory) > vbNullString Then
 
        MkDir ("I:\ArchivioPazienti\" & [Cognome] & "_" & [Nome] & "_" & Format([CFData], "DDMMYYYY"))
        Shell "C:\WINDOWS\explorer.exe """ & imgPath & "", vbNormalFocus
 
    End If
    If Dir(companyPath, vbDirectory) = vbNullString Then
 
        MkDir ("I:\ArchivioPazienti\" & [Cognome] & "_" & [Nome] & "_" & Format([CFData], "DDMMYYYY"))
        Shell "C:\WINDOWS\explorer.exe """ & imgPath & "", vbNormalFocus
 
    End If
2) A questo punto nella cartella "I:\ArchivioPazienti" ci sono tutte le sottocartelle con la seguente "nomenclatura" Cognome_Nome_DDMMYYYY. L'esigenza è quella di rinominare tutti i file presenti nelle sottocartelle con lo stesso nome della sottocartella.
 
Ho risolto con un programma free Advanced Renamer .
Da questo programma ho generato un file bat e nella maschera continua di access in uscita ho utilizzato 
Call Shell(Environ$("COMSPEC") & " /c  c:\test.bat", vbNormalFocus)
 
.......
 
attualmente funziona ma se riesco a semplificare vi aggiorno.
ciao