Menu a tendina

martedì 15 maggio 2012 - 09.38
Tag Elenco Tags  Access (.mdb)  |  Office 2003

asdrubale Profilo | Newbie

Buongioro a tutti,
vi prego di aiutarmi, in quanto in difficoltà.
Nel file d'esempio allegato, due tabelle: Piatti e Portate. Nella maschera, 2 tendine.
Avrei necessità, quando seleziono in Portate il campo "Primo" di visualizzare solo i primi 3 record di Piatti nella selezione a tendina della maschera (e non tutti come adesso)
Come fare?
Ringrazio e saluto

alx_81 Profilo | Guru

>Buongioro a tutti,
Ciao

>Avrei necessità, quando seleziono in Portate il campo "Primo"
>di visualizzare solo i primi 3 record di Piatti nella selezione
>a tendina della maschera (e non tutti come adesso)
>Come fare?
apri la maschera in visualizzazione struttura, e poi definisci, selezionando la combobox dei piatti, la proprietà RowSource con una SELECT TOP 3... come segue:

1035x247 24Kb


>Ringrazio e saluto
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

asdrubale Profilo | Newbie


Grazie, sei un grande!

Però, nel caso scelga "Secondo" da "Portata", le tre voci selezionabili in "Piatti" non sono più coerenti. Se ora seleziono "Secondo", posso selezionare ancora solo fra i primi.

In poche parole, a seconda di cosa scelgo in "Portata", avrei bisogno di mostrare nella tendina di "Piatti" solo le voci coerenti.

Spero mi possa aiutare e ti ringrazio.

alx_81 Profilo | Guru

>Però, nel caso scelga "Secondo" da "Portata", le tre voci selezionabili
>in "Piatti" non sono più coerenti. Se ora seleziono "Secondo",
>posso selezionare ancora solo fra i primi.
>In poche parole, a seconda di cosa scelgo in "Portata", avrei
>bisogno di mostrare nella tendina di "Piatti" solo le voci coerenti.
Eh allora mi hai ingannato.. a te serve una tendina che dipende dalla selezione di un'altra!
di certo la tabella "figlia" non è per niente legata alla "padre"..
Ammesso che la parent sia PORTATE, manca la relazione con i piatti..
servirebbe un campo apposito in PIATTI con l'id della PORTATA..
altrimenti non puoi filtrare.

Poi ti consiglio di invertire l'ordine delle combo box..
Ricapitolando:
- aggiunta la colonna ID PORTATA su PIATTI
- aggiunta la relazione tra PORTATA e PIATTI
- cambiata la query sorgente della combo PIATTI (filtrata)
- gestito l'evento AFTER UPDATE della combo PORTATA (per rifare la query)

Eccoti una possibile soluzione (in allegato).

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

asdrubale Profilo | Newbie


STREPITOSO !

Ci ragiono su e poi, semmai, ti disturbo ancora.

Grazie mille!

Buon weekend

alx_81 Profilo | Guru

>Ci ragiono su e poi, semmai, ti disturbo ancora.
se la risposta ti ha aiutato a risolvere il problema, accetta il post, così chiudiamo il thread.
Se poi hai altre richieste aprine pure un altro.
ciao!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

asdrubale Profilo | Newbie

Ciao,
sto implementando l’esempio alla mia situazione. Tutto ok, tranne un aspetto: l’aggiornamento della selezione in “piatti” qualora, dopo aver selezionato la “portata”, decida una correzione.

Maschera dalla TUA soluzione: seleziono il contorno in “portata” e poi carote in “piatti”.
Problema: mi sono sbagliato! Dovevo selezionare subito il dessert, perché abbiamo finito i contorni in cucina ed il cuoco se ne è andato.
Allora, sempre nella maschera: torno in “portata”, scelgo dessert e in “piatti” la selezione mi consente di scegliere solo fra torta e panettone.
Perfetto.

Cosa succede invece nella maschera del MIO file?
Se correggo la selezione in “portate”, il menu di “piatti” non si aggiorna e mi consente solo la selezione vecchia.
Per spiegarmi, quindi: correggendo da contorno a dessert in “portata”, in “piatti” rimane la possibilità di scegliere solo fra carote e patate! Sono costretto a chiudere il file e ricominciare.

Qual è il meccanismo che consente, anche in caso di ripensamento in “portata” ,di vedere aggiornata automaticamente la selezione coerente in “piatti”?

Potrebbe essere collegato a quella prima colonna in tabella “portata”, dove, cliccando sul + si apre una sottotabella con la selezione coerente? Come si realizza?

Grazie mille.

alx_81 Profilo | Guru

>Ciao,
ciao

>Potrebbe essere collegato a quella prima colonna in tabella “portata”,
>dove, cliccando sul + si apre una sottotabella con la selezione
>coerente? Come si realizza?
Il mio post precedente ti indicava questo:
- aggiunta la colonna ID PORTATA su PIATTI
- aggiunta la relazione tra PORTATA e PIATTI
- cambiata la query sorgente della combo PIATTI (filtrata)
- gestito l'evento AFTER UPDATE della combo PORTATA (per rifare la query)

hai fatto tutto questo? perchè nel file allegato non vedo gli interventi.

>Grazie mille.
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

asdrubale Profilo | Newbie


Il mio post precedente ti indicava questo:
- aggiunta la colonna ID PORTATA su PIATTI
- aggiunta la relazione tra PORTATA e PIATTI
- cambiata la query sorgente della combo PIATTI (filtrata)
- gestito l'evento AFTER UPDATE della combo PORTATA (per rifare la query)


Ciao Alex,
non ho chiara la voce:"- cambiata la query sorgente della combo PIATTI (filtrata)"
.
Piatti è una tabella, non il prodotto di una query. Non sono sicuro di aver compreso il tuo suggerimento.

Il resto, è fatto.

Il problema persiste.

Un saluto e grazie.

alx_81 Profilo | Guru

>non ho chiara la voce:"- cambiata la query sorgente della combo PIATTI (filtrata)".
>Piatti è una tabella, non il prodotto di una query. Non sono
>sicuro di aver compreso il tuo suggerimento.
Esatto, mi sa che non hai capito bene. ho cambiato la Query che è la Data Source della COMBOBOX.
Se vai in visualizzazione struttura e premi sulla combobox dei piatti, vedrai che sotto la proprietà Data (devi premere F4 per far apparire le proprietà) c'è una query.
Osserva quella che ho messo io e cambiala di conseguenza anche tu. Ma devi aver aggiunto le colonne alle tabelle, e da quello che mi hai mandato non sembra che tu abbia fatto nemmeno quello.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

asdrubale Profilo | Newbie


Ciao Alex,
ho costruito un esempio, concettualmente identico, cercando di seguire i tuoi consigli.
Credo di aver fatto tutto quanto suggerito.
Rimane il problema di come fronteggiare la correzione. Se, dopo una prima selezione, mi accorgo di un errore e voglio correggere genere, l'aggiornamento della tendina artista non mi segue.
Ti ringrazio sin da ora.

alx_81 Profilo | Guru

>Rimane il problema di come fronteggiare la correzione. Se, dopo
>una prima selezione, mi accorgo di un errore e voglio correggere
>genere, l'aggiornamento della tendina artista non mi segue.
>Ti ringrazio sin da ora.
Ci sei molto vicino. Ma quando lanci l'evento, se guardi come è scritto, non fai nulla. Ho visto che l'evento è collegato. Questo significa che dopo il cambio della selezione sulla prima combo, hai in effetti l'evento che viene scatenato. Però quell'evento, non fa nulla. Devi imparare ad usare il debug, con i break point per vedere cosa succede.
Aggiungi questa riga nel gestore dell'evento:

Private Sub GENERE_AfterUpdate() Me.CasellaCombinata4.Requery ' questo riesegue l'interrogazione End Sub
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

asdrubale Profilo | Newbie


Perfetto, grazie! Sei un grande!

Solo per curiosità, ti racconto: nel mio caso, c'è una maschera con vari campi di cui ho estrapolato uno spezzone per sintetizzare il problema. Completata l'intera compilazione, si stampa un report.
Ora, grazie al tuo aiuto, è sì possibile l'aggiornamento del campo "artista" rispetto a "genere", ma soltanto dopo aver compilato tutta la maschera e visualizzato l'anteprima di stampa. Si può quindi tornare indietro e correggere (senza perdere tutte le altre informazioni inserite).
Va benissimo già così, però trovo curioso non sia possibile correggere anche prima dell'anteprima di stampa (perchè si riverifica che il campo "artista" non segue "genere"); sono andato a vedere il codice. Credo sia collegato al fatto che, nonostante io abbia salvato la riga da te consigliata, lui aggiunge subito sotto, quasi di default in quanto ad ogni apertura del file, anche la riga che tu hai analizzato ed in base alla quale mi hai suggerito la correzione (che rimane salvata).

Un saluto e grazie

alx_81 Profilo | Guru

>Va benissimo già così, però trovo curioso non sia possibile correggere
>anche prima dell'anteprima di stampa (perchè si riverifica che
>il campo "artista" non segue "genere"); sono andato a vedere
>il codice. Credo sia collegato al fatto che, nonostante io abbia
>salvato la riga da te consigliata, lui aggiunge subito sotto,
>quasi di default in quanto ad ogni apertura del file, anche la
>riga che tu hai analizzato ed in base alla quale mi hai suggerito
>la correzione (che rimane salvata).
Non saprei, perchè dipende da che eventi gestisci e da come chiami l'anteprima.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

asdrubale Profilo | Newbie

Ciao,
una cortesia: una volta selezionato il genere, avrei bisogno che, in base all'artista scelto, automaticamente appaia il secolo di riferimento.
Hai una dritta?
Grazie, un saluto
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5