Caselle combinate in cascata (credo...)

di il
17 risposte

Caselle combinate in cascata (credo...)

Buonasera a tutti
Piccolo Problemino: sono a digiuno di access da una decina di anni e non ricordo un emerito cxxxo
Giusto per riprendere un pò la mano ho cominciato a cimentarmi nel realizzare un sistema di gestione del magazzino.
Ho un problemino sulla gestione di caselle combinate in cascata
Le mie tabelle sono le seguenti:
Tabella Reparti: ID; NOME REPARTO; DESCRIZIONE
Tabella Sottoreparti: ID; NOME SOTTOREPARTO, DESCRIZIONE; REPARTO

Ed ho reato delle maschere per inserire tali dati nell' anagrafica.
Inoltre ho una tabella articoli in cui oltre a codice articolo, codice a barre, fornitore, prezzi e altro ho anche un campo reparto e un campo sottreparto.
Attualmente il campo reparto viene attribuito con una casella combinata che mi visualizza il campo "nome reparto" della tabella Reparti" e memorizza il campo id.
vorrei poter inserire nella mia maschera un ulteriore casella combinata in cui selezionare il sottoreparto a patto che il contenuto di tale casella sia filtrato in base alla scelta fatta nella casella combinata alla riga precedente in modo da poter inserire solo i sottoreparti del reparto scelto.
Allegati:
7691_e04b84daa0e689dbe91927b7051c1d55.jpg
7691_e04b84daa0e689dbe91927b7051c1d55.jpg

17 Risposte

  • Re: Caselle combinate in cascata (credo...)

    Quì trovi un'esempio che credo possa adattarsi alla tua esigenza...
    http://forum.masterdrive.it/access-79/controlli-bound-sincronizzati-in-cascata-45725/
    Si tratta del rapporto REGIONI-PROVINCE... quelle vecchie

    Fai attenzione alle RELAZIONI reali tra le Tabelle e l'uso delle PK e FK...!
  • Re: Caselle combinate in cascata (credo...)

    @Alex ha scritto:


    Quì trovi un'esempio che credo possa adattarsi alla tua esigenza...
    http://forum.masterdrive.it/access-79/controlli-bound-sincronizzati-in-cascata-45725/
    Si tratta del rapporto REGIONI-PROVINCE... quelle vecchie

    Fai attenzione alle RELAZIONI reali tra le Tabelle e l'uso delle PK e FK...!
    Grazie Alex. Già scaricato il file e dato un occhiata veloce. Ora vado a pranzo e poi analizzo la cosa con più calma. (inoltre a stomaco vuoto si ragiona male )
  • Re: Caselle combinate in cascata (credo...)

    Salve a tutti,
    ho un problema simile con le caselle combinate che non riesco a risolvere....
    Si tratta anche qui di 2 caselle combinate cboProvincia e cboComune, la seconda delle quali (cboComune) dovrebbe presentare la scelta del comune in base al valore scelto in cboProvincia. Le mie 2 combo si trovano in una sottomaschera associata (inserita in modalità foglio dati) all'interno della maschera principale. Quindi:

    Ho le 2 tabelle:
    tblProvincia (IDProvincia, Provincia)
    tblComune (IDComune, Comune, IDProvincia)

    La cboProvincia ha come origine una semplice query su tabella Province che estrae campo Provinca.
    La cboComune ha come origine una query su tabella tblProvincia join tabella tblComuni (campi tblProvincia.Provincia, tblComune.Comune, e criterio [forms]![<nomesottomaschera>]![cboProvincia].

    Nonostante le molte indicazioni utili in questo e in altri forum non riesco a farlo funzionare, perchè:
    1) eseguendo solo la sottomaschera, le combo funzionano al primo colpo, ma ad ulteriori aggiornamenti della Provincia si riapre la stessa selezione di comuni (questo anche se ho inserito comando Me!Requery e Me.Refresh all'interno dell'evento Afterupdate della cboProvincia!!)
    2) eseguendo la maschera master, cliccando nella sottomaschera per aggiornare la cbpprovincia compare messaggio di errore "Maschere!<nomesottomaschera>cboProvincia!"

    Forse dimentico qualcosa? Non trovo soluzione...... help!
    Grazie a quenti vorranno aiutarmi

    Sara
  • Re: Caselle combinate in cascata (credo...)

    sarapasini ha scritto:


    [forms]![<nomesottomaschera>]![cboProvincia]
    Forse questa sintassi è sbagliata. Correggi in
    [forms]![<nome maschera>]![<nomesottomaschera>]![cboProvincia]
  • Re: Caselle combinate in cascata (credo...)

    OsvaldoLaviosa ha scritto:


    sarapasini ha scritto:


    [forms]![<nomesottomaschera>]![cboProvincia]
    Forse questa sintassi è sbagliata. Correggi in
    [forms]![<nome maschera>]![<nomesottomaschera>]![cboProvincia]
    Grazie per la risposta!
    Ho provato a correggere il criterio come suggerisci ma il risultato non cambia. Le due combo funzionano perfettamente nella sottomaschera aprendola da sola (è già qualcosa!) ma aprendo la maschera master (contenente la sottomaschera) no: una volta scelta la provincia, cliccando sulla combo dei comuni compare sempre la richiesta di parametro, che stavolta è:
    "immettere valore parametro: Maschere!<nomemaschera>!<nomesottomaschera>!cboProvincia".

    C'è evidentemente qualcosa che non va nell'esecuzione di quella query quando si trova in una sottomaschera... ma non trovo nulla online in proposito.
    Possibile???
  • Re: Caselle combinate in cascata (credo...)

    Non puoi allegare via host un breve esempio per capire, sino state dette troppe cose e non ho più il filo del discorso...
  • Re: Caselle combinate in cascata (credo...)

    sarapasini ha scritto:


    Ho le 2 tabelle:
    tblProvincia (IDProvincia, Provincia)
    tblComune (IDComune, Comune, IDProvincia)

    La cboProvincia ha come origine una semplice query su tabella Province che estrae campo Provinca.
    La cboComune ha come origine una query su tabella tblProvincia join tabella tblComuni (campi tblProvincia.Provincia, tblComune.Comune, e criterio [forms]![<nomesottomaschera>]![cboProvincia].
    Intanto fai attenzione alla sintassi che ti ho proposto: forse hai dimenticato le parentesi quadre.
    Anche se mi sa che non centra niente l'espressione [forms]...
    Tu parli di 2 tabelle (correlate) per far funzionare il giochetto delle combo. Il database di esempio di Alex gioca su un'unica tabella Comuni che ingloba già di per sè i campi Province e Regioni (con valori ripetuti). Devi fare lo stesso anche tu e la query con quel criterio non serve più, se non vuoi vedere quel messaggio di errore.
    Credo sia questo l'inghippo. Alex, eventualmente continua tu il discorso verso la strada giusta.
  • Re: Caselle combinate in cascata (credo...)

    Salve,
    Sto impazzendo, vi spiego:
    Ho praticamente ricopiato l'esempio fornito in questo post ma quando clicco su lstregioni non mi compare niente da cliccare nella lstprovincie...
    Sicuramente c'è un parametro che mi sfugge ma non capisco quale...
    Ho ricopiato gli elementi della maschera, ho riscritto le operazioni in VB, le query sono identiche e anche i dati nella tabella sono praticamente ricopiati ...
    cosa mi sfugge??? Aiutatemi Please

    P.S. Ho riscritto tutto io, non ho fatto copia e incolla quindi sicuramente mi sfugge qualcosa
    Grazie in anticipo
  • Re: Caselle combinate in cascata (credo...)

    Il VBA non è il mio forte, ma basterebbe stampare i due codici e confrontare tutte le sintassi e i corretti riferimenti agli oggetti, rigo per rigo.
    Il database ElenchiInCascata, di per sè, funziona a meraviglia.
  • Re: Caselle combinate in cascata (credo...)

    Ok grazie... controllerò
  • Re: Caselle combinate in cascata (credo...)

    OsvaldoLaviosa ha scritto:


    sarapasini ha scritto:


    Ho le 2 tabelle:
    tblProvincia (IDProvincia, Provincia)
    tblComune (IDComune, Comune, IDProvincia)

    La cboProvincia ha come origine una semplice query su tabella Province che estrae campo Provinca.
    La cboComune ha come origine una query su tabella tblProvincia join tabella tblComuni (campi tblProvincia.Provincia, tblComune.Comune, e criterio [forms]![<nomesottomaschera>]![cboProvincia].
    Intanto fai attenzione alla sintassi che ti ho proposto: forse hai dimenticato le parentesi quadre.
    Anche se mi sa che non centra niente l'espressione [forms]...
    Tu parli di 2 tabelle (correlate) per far funzionare il giochetto delle combo. Il database di esempio di Alex gioca su un'unica tabella Comuni che ingloba già di per sè i campi Province e Regioni (con valori ripetuti). Devi fare lo stesso anche tu e la query con quel criterio non serve più, se non vuoi vedere quel messaggio di errore.
    Credo sia questo l'inghippo. Alex, eventualmente continua tu il discorso verso la strada giusta.
    Mi scuso per l'assenza...
    Ho provato a fare con un'unica tabella, come suggerisci tu Osvaldo, ma non mi è chiaro come agganciare la selezione mostrata nella cboComune alla provincia digitata nella combo "superiore" (cboProvincia) senza un criterio nella query.

    Ho caricato un db di esempio con lo stesso problema qui:
    http://we.tl/dU1332onx
    La maschera master (nella quale le combo non funzionano) è msk_VISUALIZZA_DATI, che visualizza tutte le proprietà associate ad un proprietario (1:N).
    La sottomaschera delle proprietà (nella quale invece funzionano) è submsk_PROPRIETA.

    Grazie fin d'ora... se avrai/avrete tempo e pazienza per darci un'occhiata!
  • Re: Caselle combinate in cascata (credo...)

    Alex, solo tu puoi continuare la discussione, io ho scritto anche in privato a sarapasini per cercare di spiegarle la mia umile segnalazione di differente impostazione logica fra tabelle uno-a-molti e una sola, ma non sono in grado di continuare il discorso parallelamente sfruttando il tuo database ElenchiInCascata. Puoi dargli una dritta tu? Mi sembra che il problema sia lì a pochi passi. Io ho testato il fatto che gli elenchi in cascata funzionano nella sottomaschera quando lavora da sola, ma quando lavora da sottomaschera, il meccanismo non funziona e appare quella maledetta finestra di avviso "Maschere!ecc...". Dov'è l'inghippo?
  • Re: Caselle combinate in cascata (credo...)

    A prescindere la mia avversione nell'esigenza dei File di esempio... non scarico da quel sito in quanto richiede Cookies ecc... e direi che evito.

    Nell'ottica in questione tuttavia anche le 2 Tabelle vanno bene...
    Definita questa la struttura
    
    tblProvincia
       IDProvincia[PK Counter]
       Provincia [Testo]
    
    tblComune
       IDComune[PK Counter]
       Comune [Testo]
       IDProvincia [FK LongInteger]
    dove campo IDprovincia fa da Relazione 1(Provincia)---M(Comuni).

    Avremo una [cboProvincia] con Origine Riga una query simile
    
    SELECT * FROM tblProvincia Order By Provincia
    Avremo una [cboComuni] con origine riga una query simile
    
    SELECT IdComune, Comune FROM tblComune 
    WHERE IdProvincia=Forms!NomeForm!cboProvincia
    Ovviamente se la [cboProvincia] non ha alcun ITEM selezionato la [cboComuni] deve essere vuota.
    Su evento DopoAggiornamento della [cboProvincia] invece deve esserci il REQUERY della [cboComuni]
    
    Private Sub cboProvincia_AfterUpdate()
       Me!cboComuni.Requery
    End Sub
    Spero sia chiaro...
  • Re: Caselle combinate in cascata (credo...)

    Grazie Alex. E' chiarissimo, ed esattamente quello che ho fatto nel db che ho caricato. Che non funziona. Probabilmente, come osserva anche OsvaldoLaviosa, il problema sta nell'inserire la cosa in una sottomaschera:
    gli elenchi in cascata funzionano nella sottomaschera quando lavora da sola, ma quando lavora da sottomaschera, il meccanismo non funziona e appare quella maledetta finestra di avviso "Maschere!ecc...". Dov'è l'inghippo?
    Ho bisogno della sottomaschera perchè ho una relazione 1:N e devo fare una visualizzazione-modifica (in una sottomaschera foglio dati) degli N elementi associati al mio record di maschera principale, tra i quali ci sono appunto i campi Provincia e Comune.

    Non ho adeguate conoscenze VBA... nè idee brillanti per aggirare il problema
Devi accedere o registrarti per scrivere nel forum
17 risposte