Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

di il
29 risposte

29 Risposte - Pagina 2

  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Forse per me ci sono dei pezzi che mi mancano...ma sostanzialmente io avrei fatti IDPersonaggio, IDVoce, IDInterprete ognuno che punta su corrispondente tabella/query in maniera "indipendente". Temo che non conosciamo troppe "Origine riga" e la discussione sembra essere sterile...boh!
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Provo a chiarire ulteriormente.

    Lasciamo da parte, per ora, IDInterprete: qui vorrei che la lista della casella combinata dove selezionare il cantante fosse limitata al timbro della voce del relativo personaggio. Ma per il momento mi accontento, per così dire, che contenga invece la lista di tutti i cantanti.

    Gli altri due controlli che compaiono nella maschera sono IDPersonaggio e IDVoce, rispettivamente il nome del personaggio dell'opera che sto inserendo in archivio e il timbro della voce (esempio: Violetta Valéry (S), cioè soprano).

    Ho applicato alle tabelle Personaggi e Voci ciò che Osvaldo mi ha scritto, cioè ho reso il controllo dei campi IDPersonaggio e IDVoce nella tabella Interpretazioni caselle combinate: perfetto, in questo modo nella tabella leggo Violetta Valéry anziché 873 e S anziché 1.

    Ora pensavo che, fatta questa modifica, nella maschera di inserimento cantanti bastasse indicare come origine controllo di Personaggio [IDPersonaggio] e come origine controllo di Voce [IDVoce], ma così non è, perché continua a visualizzarsi l'ID corrispondente (873 e 1, per intenderci). Eppure la query di origine record della maschera stessa funziona perfettamente, restituendo per ciascun personaggio dell'opera il nome e la sigla della voce. Sottolineo che, in questa situazione, la selezione del cantante nella casella combinata funziona regolarmente.

    Ho allora modificato la query di origine record della maschera: ho inserito la tabella Personaggi (per avere [Nome]) e la tabella Voci (per avere [SiglaVoce]). Perfetto, in questo modo nei due controlli compare correttamente quello che mi aspetto; ma, in questa situazione, non posso più selezionare l’interprete dalla casella combinata: nella barra di stato inferiore compare il messaggio Recordset non aggiornabile.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Donizetti ha scritto:


    Ho allora modificato la query di origine record della maschera
    Per quel recordset di dati, mi sembra errato servirsi di una query. Tra l'altro le query "sempre più complesse" (ossia con molte tabelle in gioco) tendono a rendere impossibile la modifica dati.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    OsvaldoLaviosa ha scritto:


    Donizetti ha scritto:


    Ho allora modificato la query di origine record della maschera
    Per quel recordset di dati, mi sembra errato servirsi di una query. Tra l'altro le query "sempre più complesse" (ossia con molte tabelle in gioco) tendono a rendere impossibile la modifica dati.
    Ma la query mi serve per filtrare i campi della tabella Interpretazioni a quei soli campi corrispondenti all'opera che sto inserendo, tramite IDEdizione...

    Una domanda, però, mi sorge spontanea: perché cambiare il controllo dei campi IDPersonaggio e IDVoce nella tabella Interpretazioni, facendoli diventare caselle combinate, se poi la visualizzazione dei valori è limitata a quella tabella? Come posso sfruttare questa possibilità in un'altra maschera?
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Attento:
    1. Se fai una query su una sola tabella, puoi modificare tutti i campi.
    2. Se fai una query su 2 tabelle correlate, ti accorgerari che potrai modificare alcuni campi, ma non tutti.
    3. Se fai una query su 3 tabelle correlate, ti accorgerai che (forse) nessun campo sarà modificabile.
    4....a mano a mano che aggiungi tabelle in una query, la questione peggiora.
    Io ho imparato da questa morale che non conviene affatto fare input dati su query. Se non altro ritengo che le query servono a RESTITUIRE risultati.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    E che alternativa ho, se non mi conviene fare la query?

    Tra l'altro, con questa query io seleziono i campi che mi occorrono nella maschera per renderla leggibile (personaggio e voce): l'unico campo da inserire è l'interprete.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Donizetti, ogni volta che apri una discussione devi esporre chiaramente l'intero scenario. Io ricordo vagamente qualcosa da post precedenti, ma non è detto che gli utenti lo debbano conoscere a priori.
    Provo a dire qualcosa (cercando di ricordare la tua struttura tabelle). Io farei la tabella Interpretazioni con 4 campi "indipendenti". Una query di accodamento va a prelevare i Personaggi+Voce (filtrati dagli opportuni campi di "accompagnamento") dalla tabella Personaggi e li accoda in Interpretazioni. Poi compili gli Interpreti.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    OsvaldoLaviosa ha scritto:


    Provo a dire qualcosa (cercando di ricordare la tua struttura tabelle).

    Archivio_musicale_IP2_Relazioni_Tabelle6.JPG
    Archivio_musicale_IP2_Relazioni_Tabelle6.JPG

    OsvaldoLaviosa ha scritto:


    Io farei la tabella Interpretazioni con 4 campi "indipendenti".
    Tralasciando la chiave primaria, qui inutile, i 4 campi indipendenti sono IDEdizione, IDInterprete, RuoloInterprete (=IDPersonaggio) e IDVoce.

    OsvaldoLaviosa ha scritto:


    Una query di accodamento va a prelevare i Personaggi+Voce (filtrati dagli opportuni campi di "accompagnamento") dalla tabella Personaggi e li accoda in Interpretazioni.

    Query_accodamento.JPG
    Query_accodamento.JPG

    OsvaldoLaviosa ha scritto:


    Poi compili gli Interpreti.
    Sono a questo punto. La struttura della maschera per l'inserimento degli interpreti è:

    InsCantanti3.JPG
    InsCantanti3.JPG

  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Esatto.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Appunto.

    Ora, per compilare gli interpreti, sto cercando di ottenere una maschera come la seguente:

    InsCantanti2.JPG
    InsCantanti2.JPG

    in cui dalle caselle combinate devo solo selezionare il nome dell'interprete di ciascun personaggio; sarebbe il massimo, poi, se le liste di queste caselle combinate fossero ristrette all'elenco dei cantanti con il tipo di voce che ho nel campo IDVoce, ma questo è un altro problema.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Questa maschera, con tutti i campi che hai mostrato, deve poggiare su tblInterpretazioni (cambia solo l'ordine dei campi). Il campo RuoloInterprete rappresenta il Personaggio per te. Fai in modo che sia Numerico, in modo che possa accogliere IDPersonaggio.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Infatti poggia sulla tabella Interpretazioni e il campo RuoloInterprete è naturalmente numerico.

    Con quel tipo di maschera, però, non posso aggiornare il campo Interprete.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    La maschera non deve avere "Origine record" la query che immagino ti dia problemi di input, ma deve poggiare su tblInterpretazioni. Poi la chiamerei mInterpretazioni o mskInterpretazioni o frmInterpretazioni.
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    Quindi dovrei caricare tutta la TabInterpretazioni... e andare a cercare i campi Interprete vuoti e lì inserire i cantanti.

    Non è proprio il massimo: vuoi mettere avere solo la lista dei personaggi dell'opera che stai inserendo...

    Possibile che non ci sia soluzione?
  • Re: Visualizzare nomi dei campi, anziché i relativi ID e filtrare caselle combinate

    La mskInterpretazioni poggerà in ogni caso su tblInterpretazioni. Si dà il caso che tu non la userai mai da sola: non ha senso. È giusto vedere filtrati solo i record di IDEdizione che in quel momento compare scritto su mskEdizioni!IDEdizione.
    Devi sincronizzare mskEdizioni e mskInterpretazioni oppure giocare con il
    Cmd.OpenForm "mskInterpretazioni",,,"[IDEdizione] = " & Me!IDEdizione
    questo comando deve partire da mskEdizioni.
Devi accedere o registrarti per scrivere nel forum
29 risposte