IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Access
  New Posts New Posts RSS Feed - [RISOLTO]Consiglio query accodamento
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

[RISOLTO]Consiglio query accodamento

 Post Reply Post Reply Page  12>
Author
Message
Fabio76 View Drop Down
Utente Senior
Utente Senior


Joined: 12/Giu/2008
Location: Italy
Status: Offline
Points: 309
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fabio76 Quote  Post ReplyReply Direct Link To This Post Topic: [RISOLTO]Consiglio query accodamento
    Posted: 07/Dic/2018 at 16:57
Salve ho un quesito un pò anomalo, vedo di spiegarmi.
Ho una query di accodamento che mi genera una tabella dove ho come campi il codice articolo, la descrizione e anche la descrizione in lingua.
Fino a poco tempo fa non avevo problemi in quanto, in anagrafica articoli, usavano una descrizione che era sempre in una riga di X caratteri.
Ora, come descrizioni articoli in lingua ho un nuovo file sul database aziendale dove il codice articolo si ripete n volte (fino al massimo di 90 ma non arrivo mai a questo livello), quindi quando la mia query di accodamento ha finito di girare, ottengo per lo stesso articolo n righe (in base a quante righe di descrizione in lingua ci sono).
La mia domanda è abbastanza "stupida": mi conviene fare una query prima che mi faccia una unione di tutte le descrizioni in lingua per ottenere una tabella dove ho in unica riga codice e descrizione per poi fare la join o esiste un qualcosa che permetta alla query di accodamento di ottenere la stessa cosa? A me piacerebbe la seconda ipotesi, il problema e che in questa query ho anche parecchio VBA....

Spero di essermi spiegato.....


Edited by Fabio76 - 23/Gen/2019 at 13:51
Back to Top
Sponsored Links


Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 10464
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 07/Dic/2018 at 22:35
Willy
Back to Top
Fabio76 View Drop Down
Utente Senior
Utente Senior


Joined: 12/Giu/2008
Location: Italy
Status: Offline
Points: 309
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fabio76 Quote  Post ReplyReply Direct Link To This Post Posted: 10/Dic/2018 at 20:53
Prima di leggere il tuo consiglio ho pensato di fare una cosa diversa (se fattibile).
La tabella descrizione in lingua oltre ad avere come campi il codice lingua, il codice articolo, la descrizione in lingua, ha anche ovviamente il campo numero riga. 
Potrei pensare, nella query di accodamento che mi crea la tabella, di fare una cosa del genere: creare per ogni articolo tre colonne con descrizione lingua. Perchè tre? Perchè in tutte le anagrafiche aziendali al massimo ne ho tre per singolo codice articolo, esageriamo e facciamo 4 così se domani assumono il commerciale loquace mi tutelo.Tongue
Ho tre lingue da gestire: DE, FR, GB.
Quindi, quando parte la query di accodamento, in base al codice lingua presente in testata ordine (prima condizione di iff) ed il numero riga 01 (seconda condizione di iff) accodo ad esempio la 
DESCRIZIONE_LINGUA_GB_01 ;
Poi, andando avanti così accodo la DESCRIZIONE_LINGUA_GB_02;
Poi DESCRIZIONE_LINGUA_GB_03;
Poi DESCRIZIONE_LINGUA_GB_04; (che come visto sopra, nella mia tabella finale sarà sempre vuoto)

In teoria dovrei trovarmi, quando mi parte la mashera di visualizzazione record, per ogni codice articolo un'unica riga.

Spero

Fattibile in questo modo???


Edited by Fabio76 - 10/Dic/2018 at 20:54
Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 10464
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 10/Dic/2018 at 21:50
Devi valutare che la scelta di inserire 4 possibili lingue nello stesso record va contro tutti i criteri di normalizzazione in un DBMS relazionale.
Considera, ad esempio il caso in cui, nel futuro, vi sia l'esigenza di gestire 5 lingue, dovrai modificare l'intera struttura.
Nella normalità, per gestire i dati correlati in relazione 1<->N è sufficiente gestire maschera (per il lato 1)  e la sotto-maschera (per il lato molti).
Inoltre se vuoi avere i dati delle lingue relative al singolo record puoi sempre impiegare una query a campi incrociati.
Willy
Back to Top
Fabio76 View Drop Down
Utente Senior
Utente Senior


Joined: 12/Giu/2008
Location: Italy
Status: Offline
Points: 309
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fabio76 Quote  Post ReplyReply Direct Link To This Post Posted: 11/Dic/2018 at 09:13
Ma se devo adesso gestire maschera e sotto maschera ho paura di perdermi.....cioè dovrei in maschera caricare i record dell'anagrafica articoli (che hanno descrizione sempre in italiano) in sotto maschera, in base al campo di testata ordine cliente, che mi indica la lingua, i record della tabella con le traduzioni (rapporto 1 a molti)
Ragionandoci ancora dirò di più: questa maschera funziona così; l'operatore alimenta un campo commessa, un tasto lancia la query che carica la maschera, un bottone di controllo per ogni record decide se stampare la riga in un report o no.
Il problema che si pone adesso e che, facciamo un esempio, l'operatore lancia la query e per un singolo articolo, se sono presenti 3 righe nella tabella traduzione lingua, per la lingua della testata d'ordine, si vede comparire 3 volte lo stesso articolo/record
Adesso ovvia al problema selezionando il pulsante stampa solo su una delle tre righe.
Il report stampa un'etichetta con la descrizione in italiano e in lingua quella relativa alla riga dove il pulsante è attivo.
Da qui altra idea: sono obbligato a caricare in maschera anche le righe della traduzione in lingua?
Non posso solo a livello di report (che ne so con un sottoreport condizionare il campo testo in base alla lingua presente in testata ordine cliente???)

Oppure come dici tu una query a campi incrociati da lanciare a spot (tanto non è che ogni giorno nascono articoli nuovi ma è la soluzione meno elegante)
Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 10464
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 11/Dic/2018 at 23:33
La valutazione da effettuare (per stabilire la struttura più consona) è prendere in considerazione se la descrizione (dell'articolo nella specifica lingua) è sempre la stessa o varia nel tempo (visto che hai indicato che te ne arrivano anche fino a 90).
Altro elemento da considerare è: se le lingue con cui si sviluppa la descrizione siano stabilite a priori (ad esempio, esclusivamente, inglese, francese, tedesco) o possano essere fornite in una lingua non prevista per cui si deve avere oltre alla descrizione (nella lingua) anche l'informazione in quale lingua sia scritta (la descrizione).
Insomma già in base alla variabilità di tali elementi si può pensare ad una struttura che possa essere adeguata agli aggiornamenti da effettuare.
Willy
Back to Top
Fabio76 View Drop Down
Utente Senior
Utente Senior


Joined: 12/Giu/2008
Location: Italy
Status: Offline
Points: 309
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fabio76 Quote  Post ReplyReply Direct Link To This Post Posted: 14/Dic/2018 at 14:44

La descrizione è sempre la stessa.

La tabella del gestionale delle descrizioni in lingua ho detto che può contenere fino a 90 righe di descrizione per lingua e articolo ma nel mio caso non supero mai le tre per l' articolo.

La tabella delle descrizioni in lingua attualmente (da quando abbiamo un gestionale serio ovvero più di 20 anni) ne contiene sempre tre: GB-FR-DE. Ma anche se domani mi facessero la quarta, tipo RU non vedo il problema.

Ho pensato quindi di passare da una query a campi incrociati per normalizzare la tabella descrizione lingua, per fare la join in 1-1 ma non riesco ad ottenere i dati in riga......

Cioè con struttura così

C_Articolo C_Lingua N_riga D_Lingua

1234 GB 01 pippo che

1234 GB 02 pluto fa

1234 GB 03 topolino dice

Non riesco a ottenere

Articolo lingua 1 2 3

1234 GB pippo che pluto fa topolino dice

Se mi gira tolgo la descrizione in lingua sull'etichetta.....anche se mi dispiace



Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 10464
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 14/Dic/2018 at 15:48
Non indichi in quale modo, delle 90 descrizioni, ne prendi in esame solo 3 (ad esempio per lingua "GB") in ogni caso per avere i dati (in base ai criteri di selezione) delle tre descrizioni fra loro concatenate puoi impiegare la funzione ConcatRelated di Allen Browne:
http://allenbrowne.com/func-concat.html
Willy
Back to Top
Fabio76 View Drop Down
Utente Senior
Utente Senior


Joined: 12/Giu/2008
Location: Italy
Status: Offline
Points: 309
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fabio76 Quote  Post ReplyReply Direct Link To This Post Posted: 06/Gen/2019 at 09:54
Facciamo un passo indietro e vediamo se devo cambiare struttura al mio DB.
Allora in maschera carico cod articolo descrizione it e descrizione lingua.
Da adesso ho il problema che la descrizione lingua è uno a molti.
Soluzione poco elegante= aggiungo il criterio sulla query di creazione tabella che carichi solo la riga descrizione 01; problema risolto perdendo parte della descrizione in lingua sull'etichetta.
Evitando questo:
Prima domanda: mi conviene caricare la descrizione in lingua in una sottomaschera?
Considerate che vederla quando si caricano i dati è ininfluente: a me serve perchè venga stampata sul report.
Che vantaggi ho se le carico in sottomaschera? Posso andare in report con i campi che mi interessano?

Lo so è un pò difficile spiegare senza vedere il giro completo delle query
Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 10464
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 07/Gen/2019 at 16:51
Originally posted by Fabio76 Fabio76 wrote:

Prima domanda: mi conviene caricare la descrizione in lingua in una sottomaschera?
Considerate che vederla quando si caricano i dati è ininfluente: a me serve perché venga stampata sul report.
Che vantaggi ho se le carico in sottomaschera? Posso andare in report con i campi che mi interessano?

Non vi sono problematiche particolari ad implementare un report che presenti le informazioni volute nella giusta disposizione e contenuto.
Per quanto riguarda l’impiego di maschera e sotto-maschera è da tenere presente che qualora (per ciascun articolo) si hanno le diverse descrizioni (oltre a quella in italiano) nelle varie lingue  (in relazione 1<->N) avremo la maschera (con i dati del codice articolo - lato 1) e sotto-maschera inserendo le varie descrizioni - lato N) in tal modo si avrà una visione immediata (e opportunità di caricamento) di tutte le descrizioni (nelle varie lingue) dell'articolo stesso sfruttando il legame nei controlli Master/Child (messi a disposizione da Access) senza la necessità di apposite query.
.

Willy
Back to Top
 Post Reply Post Reply Page  12>
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,063 seconds.