Ciao a tutti.
Nel DB che sto faticosamente costruendo per la gestione del mio archivio musicale di lirica, sono al punto di dover inserire gli interpreti relativi ad una certa Edizione. Riassumo brevemente la logica adottata.
1. Nella tabella Edizioni raccolgo le informazioni relative alle opere, con tutti i dati, tranne gli interpreti (ossia i cantanti): quindi ho il compositore, il titolo, l’orchestra, il Coro, il Direttore, il M° del Coro, il tipo di registrazione, il luogo e la data di registrazione, la durata dell’opera e il supporto. Naturalmente un’Edizione è un insieme di ID, relativi ai vari elementi che la costituiscono.
2. Una volta inserita un’Edizione, tramite un’altra maschera a maschere continue devo inserire gli interpreti di quella Edizione, prendendo i campi dalla tabella Interpretazioni, strutturata con i campi IDEdizione, IDPersonaggio, IDVoce e IDInterprete. Anche la tabella Interpretazioni conterrà record di soli ID.
Questa logica, benché sia piuttosto contorta, mi ha consentito di procedere e di realizzare quanto volevo. Ma vorrei arrivare a delle maschere che siano chiare anche a chi non potrebbe comprendere il significato di numeri in un oggetto con cui aggiornare i dati; sto quindi cercando di pensare a qualcuno che non sia io, che si accinga a immettere i nomi dei cantanti nella maschera riportata in figura.
È evidente che il Personaggio 354 dell’edizione 96 il cui timbro di voce è 6, costituisca un’informazione quanto meno criptica (se non frutto di demenza!) per chi non può conoscere cosa c’è sotto.
Alla luce di tutto ciò, sto cercando una soluzione a due problemi:
1. rendere i campi espliciti, ossia Personaggio 354 deve diventare il nome del personaggio il cui ID è 354 nella tabella Personaggi e Voce 6 deve diventare la sigla del timbro il cui ID è 6 nella tabella Voci;
2. nelle caselle combinate della colonna Interprete, anziché elencare per ciascun personaggio tutti i cantanti presenti in archivio, vorrei che comparisse la lista dei soli cantanti con il timbro indicato nella colonna Voce (se la voce è Tenore, solo la lista dei tenori, se Soprano solo la lista dei soprani, e così via).
Per entrambi i problemi, ho tentato delle soluzioni, senza tuttavia trovare nulla di efficace: per il primo punto ho usato una query che mi fornisse i campi desiderati dalle altre tabelle, ma a quel punto la query è diventata non aggiornabile e non ho capito se e come si risolve questa questione. Per il secondo punto, ho provato a filtrare la lista al valore dell’IDVoce, ma non ho saputo poi fare in modo che per ogni riga il filtro si aggiornasse: una volta fatto per il primo personaggio, il filtro rimane, ovviamente, lo stesso per tutti gli altri.
Cosa potete suggerirmi?