Spostare file massivamente

di il
11 risposte

Spostare file massivamente

Buonasera a tutti!
stavo tentando di spostare dei file da una directory ad un'altra.
Posizionandomi su record singolo lo spostamento avviene, vorrei però che tutti i file venissero spostati automaticamente nella directory indicata.
Ho creato quindi una maschera che prende i dati dalla tabella ANAGRAFICA (quindi tutti i record) e ho inserito un pulsante con il codice. Quando avvio la routine però mi dà l'errore di run time 53 "Impossibile trovare il file", perchè non tutti i record hanno un file associato.
Vorrei capire se posso, con un'istruzione, fargli ignorare i record che non hanno il file associato continuando a spostare i file esistenti.
Private Sub Comando1_Click()
Dim OldName As String, NewName As String
OldName = "C:\GESTIONE ALUNNI\DOCUMENTI DIGITALI\ALUNNI\2020_21_PattoCorresponsabilita_" & [Cognome] & " " & [Nome] & ".msg": NewName = "C:\GESTIONALE_VA\ALUNNI\GESTIONE ATTIVITA\GESTIONE ALUNNI\DOCUMENTI DIGITALI\ALUNNI\" & [Cognome] & " " & [Nome] & "\2020_21_PattoCorresponsabilita_" & [Cognome] & " " & [Nome] & ".msg"
Name OldName As NewName
End Sub
Grazie per l'attenzione
Buona serata
Graziella

11 Risposte

  • Re: Spostare file massivamente

    Ma se hai un database perché hai una gestione di archiviazione di questo tipo...?
    I file non devono essere gestibili da Explorer poiché il rischio è di disallineamento tra i dati di memorizzazione e l'archivio reale...
    Anche se può sembrare confusione la gestione di file da Gestionale non deve avere una struttura dincartrllr parallela che rispecchia una logica di suddivisione del gestionale anzi...
    La cosa più semplice è avere tutto in una sola cartella e poi definire i raggruppamenti a livello di database sfruttando le relazioni 1-m e semplificando in questo modo la gestione dei files ed evitare poi gli spostamenti inutili.
  • Re: Spostare file massivamente

    Buonasera Alex,
    grazie per la risposta!
    Questi sono file di documenti esterni, dato che sto creando un archivio digitale, vorrei avere una cartella per ogni alunno dentro la quale inserire tutti i documenti relativial singolo allievo. Pensavo ad un procedimento simile per non stare ad inserire manualmente i file in ogni cartella.
  • Re: Spostare file massivamente

    Appunto quello che ti ho suggerito... il legame Alunno Files non deve essere dato dalla cartella...
    L'inserimento nel db dei riferimenti lo si fa selezionando i files specifici tutti insieme ed inserendo il Nome nel DB, nella tabella Allegati, collegando alla PK dell'alunno con la relazione 1Alunno Molti Files.
    Quello che vuoi fare è inutile, e scomodo.

    Tuttavia capisco che possa risultati difficile capire quello che ti sto dicendo... se non maneggi con sicurezza la strutturazione di un Database.
    In ognincaso ora mi sorge il dubbio... dopomche spostino file devi anche cambiare il Path memorizzato nel db... altrimenti non li trovi più...
    Lo spostamento lo devi fare uno ad uno.
  • Re: Spostare file massivamente

    Grazie!
    Raccogliendo i tuoi consigli provo ad arrivarci
    Se ci riuscirò vi farò sapere!
    Grazie ancora!
    Eh lo spostamento auno ad uno era proprio quello che volevo evitare
  • Re: Spostare file massivamente

    Puoi evitarlo infatti perché non serve a nulla tutto quel fardello...
  • Re: Spostare file massivamente

    Buongiorno Alex,
    ho creato la tabella ALLEGATI relazionandola (1 a molti) alla tabella ANAGRAFICA tramite il codice alunno.
    Il Tipo dati del campo che ho chiamato "Documenti Allegati" dovrà essere "Allegato"? facendo in questo modo seleziono i file presi dalla directory dove ho inserito tutti i files e li assocerò all'alunno.
    Credo che la tua idea non fosse questa, ma può essere comunque una soluzione. Anche io avevo un'altra idea, inserire nella maschera anagrafica la sottomaschera presa dalla tabella "Allegati" dove comparisse in automatico l'elenco degli allegati di ogni alunno con una specie di collegamento ipertestuale dove, con un click, mi si apriva il documento; ma per me è troppo complessa come operazione.
    Grazie per l'attenzione.
    Graziella
  • Re: Spostare file massivamente

    No, non uso mai campi di tipo allegato, sono scomodi ed appensantiscono.

    Tabelle:
    Alunni (1)<---->(M) Allegati

    Tab[Alunni]
    IdAlunno (PK counter)
    Nome
    Cognome
    ecc...

    Tab[Allegato]
    IdAllegato (PK Counter)
    IdAlunno (FK Long)
    NomeFile (Testo 255)

    Se predisponi una Cartella Fissa "C:\TuoPercorso\Allegati\" ti basta registrare nella Tabella il NomeFile...
    Per aprire il documento... si usa
    FollowHyperlink e si concatena "C:\TuoPercorso\Allegati\" & NomeFile
  • Re: Spostare file massivamente

    grazgrace ha scritto:


    ... Quando avvio la routine però mi dà l'errore di run time 53 "Impossibile trovare il file", perchè non tutti i record hanno un file associato.
    Vorrei capire se posso, con un'istruzione, fargli ignorare i record che non hanno il file associato continuando a spostare i file esistenti.
    Ho visto come si è sviluppato il thread e conosco molto bene la risposta che dà @Alex in queste situazioni.
    Io però che sono un "povero disgraziato" mi sento molto solidale con chi è in quelle situazioni, perché su questo non seguo le indicazioni di @Alex. La gestione documentale da/con database è fuori dalla mia portata. Per il momento (lo aggiungo sempre quando non so qualcosa, così sembra che un giorno o l'altro imparerò)
    Quello che chiedi è facilmente fattibile, a passetti, però.
    Prima cosa che vorrei sapere, per impostare bene il lavoro, è: quella cartella contiene anche altri file, estranei all'operazione che vuoi fare?
    Le cartelle di destinazione che contengono Cognome e Nome sono già presenti?
    Se non vuoi proseguire su questa strada, però, non mi offendo, sia chiaro.
  • Re: Spostare file massivamente

    Ci sono riuscita!!!!!!! Sono felicissima
    Praticamente ho creato una query di accodamento dove inserisco il nome del file a tutti gli alunni:
    INSERT INTO DocumentiAlunno ( Id_Alunno, [Descrizione Documento], Ricevuto, LuogoArchivio )
    SELECT Anagrafica.CodiceAlunno, "2020_21_PattoCorresponsabilita_" & [Cognome] & " " & [Nome] & ".msg" AS [Descrizione Documento], "S" AS Ricevuto, "PC Cartella" AS [Luogo Archivio]
    FROM Anagrafica
    WHERE (((Anagrafica.Scuola_PrimaIscrizione_AS)="-") AND ((Anagrafica.Settore)="I"));
    
    Poi attraverso la maschera ho associato al campo "Descrizione Documento" la routine evento su doppio clic
    Private Sub Descrizione_Documento_DblClick(Cancel As Integer)
    FollowHyperlink "GESTIONE ATTIVITA\GESTIONE ALUNNI\DOCUMENTI DIGITALI\ALUNNI\1.DOCUMENTI DA IMPORTARE\DOCUMENTI\" & [Descrizione Documento]
    End Sub
    Grazie mille per le tue dirtte!
  • Re: Spostare file massivamente

    Philcattivocarattere ha scritto:


    grazgrace ha scritto:


    ... Quando avvio la routine però mi dà l'errore di run time 53 "Impossibile trovare il file", perchè non tutti i record hanno un file associato.
    Vorrei capire se posso, con un'istruzione, fargli ignorare i record che non hanno il file associato continuando a spostare i file esistenti.
    Ho visto come si è sviluppato il thread e conosco molto bene la risposta che dà @Alex in queste situazioni.
    Io però che sono un "povero disgraziato" mi sento molto solidale con chi è in quelle situazioni, perché su questo non seguo le indicazioni di @Alex. La gestione documentale da/con database è fuori dalla mia portata. Per il momento (lo aggiungo sempre quando non so qualcosa, così sembra che un giorno o l'altro imparerò)
    Quello che chiedi è facilmente fattibile, a passetti, però.
    Prima cosa che vorrei sapere, per impostare bene il lavoro, è: quella cartella contiene anche altri file, estranei all'operazione che vuoi fare?
    Le cartelle di destinazione che contengono Cognome e Nome sono già presenti?
    Se non vuoi proseguire su questa strada, però, non mi offendo, sia chiaro.
    Ciao!
    Grazie per la tua risposta, ho provato con la soluzione di Alex e per adesso funziona!
    In effetti avere la maschera e poter accedere, con un click al documento è molto più sbrigativo!
  • Re: Spostare file massivamente

    grazgrace ha scritto:


    ...
    Ciao!
    Grazie per la tua risposta, ho provato con la soluzione di Alex e per adesso funziona!
    In effetti avere la maschera e poter accedere, con un click al documento è molto più sbrigativo!
    Alcune volte avere una visione più organica aiuta... spesso ci si fissa su metodi non adatti per poca diumestichezza, che ha un senso solo se si prova a superare.
Devi accedere o registrarti per scrivere nel forum
11 risposte