Simone_Urba ha scritto:
Ho una maschera che mostra IdMatricola e ImmCodiceQr (campo allegato) collegandosi ad una tabella TbMatricole che contiene anche un campo PathCodiceQr (testo breve) dove mi memorizzo la posizione del file che vado ad allegare. Vorrei che eliminando (con il tasto canc ad esempio) dalla maschera mi vada a eliminare il file che ho in locale, memorizzato nel percorso dato da PathCodiceQr...
Alcuni presupposto per la validità della soluzione: la maschera è associata alla tabella TbMatricole. In questa tabella ci sono i campi IdMatricola, ImmCodiceQR e PathCodiceQr. Non è necessario che nella maschera ci sia un controllo associato a PathCodiceQr ai fini di quello che vuoi fare.
Ipotesi 1: è abilitata la conferma per la cancellazione del record (quindi dopo l'evento Delete della maschera ci sono gli eventi BeforeDelConfirm ed in caso di risposta affermativa anche l'evento AfterDelConfirm)
Dichiari una variabile stringa a livello di modulo.
Nell'evento Delete della maschera assegni a quella variabile il contenuto di PathCodiceQr.
Nell'evento AfterDelConfirm della maschera cancelli il file con kill, usando il contenuto della variabile stringa
Questo permette di cancellare solo dopo che si è sicuri che il record è stato cancellato.
Ipotesi 2: non è abilitata la conferma per la cancellazione del record.
Non serve dichiarare una variabile a livello di modulo ma nell'evento Delete della maschera si cancella direttamente il file con kill usando il contenuto di PathCodiceQr.
Per l'uso di kill in vba:
VBA Kill function (ma è solo una delle tante pagine che spiegano come funziona). Attenzione alla presenza dell'attributo di sola lettura del file da cancellare, ma anche questa particolarità è spiegata nella pagina.
Se PathCodiceQr non è "direttamente" accessibile dalla maschera si trova una strada per andare a recuperarlo. Inutile mettere altro codice al fuoco.