Elenco valori in una casella combinata in funzione di un altro controllo in una maschera continua

di Anonimizzato28272 il
5 risposte
Ciao a tutti.

Ancora con il DB Archivio musicale: maschera continua per l'inserimento degli interpreti, con una casella combinata che contiene la lista di tutti i cantanti in archivio.

InsCantanti2.JPG
InsCantanti2.JPG

Sto cercando di capire se esiste un modo per limitare la lista dei valori della casella combinata in funzione di un parametro che fa parte del record, che naturalmente cambia di record in record.

1. Conosco il numero di record della maschera continua, perché è il numero dei personaggi dell’opera che sto inserendo in archivio;
2. conosco il parametro in funzione del quale “filtrare” la lista dei valori nella casella combinata di ciascun record, perché è l’IDVoce;
3. potrei pensare di fare un ciclo che per ogni record forzi la lista a modificarsi in funzione del valore di IDVoce.

Però non so innanzitutto se questo ragionamento ha un senso in VBA, perché mi pare di aver capito che in una maschera continua in realtà il record è sempre uno, cioè quello corrente e, in ogni caso, non so se una casella combinata ha una proprietà relativa alla lista dei valori e se si può modificare.

Ho cercato delle risposte in rete, senza tuttavia trovarne: so che questo non è un corso online, per cui non vi arrabbiate: ditemi solo se ci sono possibilità su questa strada o se è meglio lasciar perdere.

Grazie.

5 Risposte

  • Ti avevo già risposto ed anche spiegato... cosa non ti è chiaro...?
    Poi non comprendo perché hai aperto un nuovo 3D.
  • Il problema di [IDInterprete] è che il suo predicato SQL sarebbe una cosa simile
    
    SELECT IDInterprete, ([Cognome]+[Nome]) As Interprete
    FROM TabellaAnagrafica
    WHERE IdVoce=Forms!NomeForm!IdVoce
    ORDER BY IDInterprete, ([Cognome]+[Nome]) As Interprete
    Ora, qual'è il problema, che in ogni Records hai o puoi avere un IdVoce diverso, quindi l'elenco restituito dalla Combo, cambiare in relazione al Record Attivo..., la conseguenza è che se quell'IdVoce esclude dall'elenco gli elementi degli altri Records, avrai che la Maschera continua non visualizza i dati, ma non perchè li cancella solo perchè non riesce a ricondurli ad un IdInterprete all'interno del RowSource...
    Quindi io mi muoverei in altro modo... ma Osvaldo magari ha una soluzione dal momento che ha dato il suggerimento.
    Sì, mi avevi spiegato che c'erano problemi, aggiungendo io mi muoverei in altro modo. Non mi è chiaro in quale altro modo risolvere la questione.

    Ho cambiato discussione, perché nella precedente si era sviluppata solo la prima parte del titolo e ho pensato che fosse meglio: se devo proseguire in quella, dimmelo per cortesia.
  • Infatti, so leggere e capire: ho solo ripreso la discussione e riproposto il quesito... mi hai chiesto cosa non mi fosse chiaro e ti ho replicato che non mi è chiaro in quale altro modo ti muoveresti, visto che hai scritto io mi muoverei in altro modo; questa tua frase mi ha fatto pensare che c'è un altro modo per risolvere il problema... se così non è, amen!
  • Siccome a me non piacciono i MIX di modalità di gestione, non userei 2 metodi differenti per fare la stessa cosa... quindi siccome hai 3 campi che hanno la Selezione... predisporre 2 campi con Combo ed un campo in modo diverso è fuori dalla mia logica.

    La cosa si gestisce in modo più strutturato aprendo una Maschera con una ListBox o ComboBox di selezione in modalità Popup a scelta obbligatoria, predisponendola in modo opportuno per essere flessibile.
    Nella Maschera poi si predispongono i campi con DlookUp.
Devi accedere o registrarti per scrivere nel forum
5 risposte