Caselle combinate a cascata con tutto

di il
3 risposte

Caselle combinate a cascata con tutto

Salve a tutti,
il mio problema è il seguente:
ho una maschera nella quale seleziono dei parametri per aprire un report. I campi dove scelgo i parametri vorrei fossero a cascata, ovvero selezionata una specifica regione vorrei si vedessero solo i prodotti venduti in quella regione, e vorrei contenessero la voce Tutto in modo da poter visualizzare il report per intero.Sono riuscito a creare le caselle combinate a cascata ma quando seleziono la voce Tutto nel campo regione, il campo prodotto mi risulta vuoto (dovrebbero essere visualizzati tutti i prodotti). Il codice che ho scritto nella selezione dei dati della casella combinata Prodotto è questo:

SELECT Prodotti.ID, Prodotti.Descrizione, Regione.DR
FROM Regione INNER JOIN (Prodotti INNER JOIN [Catalogo] ON Prodotti.ID = [Catalgo].[Prodotto]) ON Regione.DR = [Catalogo].Regione
GROUP BY Prodotti.ID, Prodotti.Descrizione, Regione.DR
ORDER BY Prodotti.Descrizione
HAVING (((Regione.DR)=[Forms]![Totali]![regione]))
UNION SELECT '(Tutto)' AS Prodotto FROM Unione;

Sapete indicarmi come dovrei integrare/correggere il mio codice??

Grazie a tutti

3 Risposte

  • Re: Caselle combinate a cascata con tutto

    ...non ti risponde proprio nessuno? Provo a dire qualcosa, ma:
    - Non ho dimistichezza con SQL, quindi non riesco a interpretare quello che hai scritto.
    - Le caselle combinate a cascata fanno leva su una serie di "filtri". Mettendo Tutto significherebbe non mettere affatto quel filtro.
    - Non ho capito lo sviluppo delle tue caselle combinate a cascata.

    Almeno per me potresti elencare tutti i nomi tabelle, nomi campi, relazioni?
  • Re: Caselle combinate a cascata con tutto

    Ok provo a spiegarmi meglio. Ho 3 tabelle Regione, negozi, prodotti strutturate con 2 campi ciascuna ID, descrizione. Ovviamente i negozi non vendono tutti gli stessi prodotti e le regioni non contengono gli stessi negozi. Queste tabelle sono collegate alla tabella Catalogo in cui ogni record È costituito da ID, Prodotto, Negozio, Regione, Costo. Le celle combinate a cascata mi servono perché io potrei voler vedere quanto costa un determinato prodotto in un determinato negozio e quindi in una determinata regione (uso tutti e tre i parametri), o potrei voler vedere che prodotti vende un determinato negozio (uso i parametri regione e negozio) o potrei voler vedere a quanto viene venduto lo stesso prodotto nei diversi negozi o quali negozi lo vendono (uso il parametro prodotto e lascia tutto in regione e negozio) e così via... Grazie dell'aiuto
  • Re: Caselle combinate a cascata con tutto

    Access? ha scritto:


    Ok provo a spiegarmi meglio. Ho 3 tabelle Regione, negozi, prodotti strutturate con 2 campi ciascuna ID, descrizione. Ovviamente i negozi non vendono tutti gli stessi prodotti e le regioni non contengono gli stessi negozi. Queste tabelle sono collegate alla tabella Catalogo in cui ogni record È costituito da ID, Prodotto, Negozio, Regione, Costo. Le celle combinate a cascata mi servono perché io potrei voler vedere quanto costa un determinato prodotto in un determinato negozio e quindi in una determinata regione (uso tutti e tre i parametri), o potrei voler vedere che prodotti vende un determinato negozio (uso i parametri regione e negozio) o potrei voler vedere a quanto viene venduto lo stesso prodotto nei diversi negozi o quali negozi lo vendono (uso il parametro prodotto e lascia tutto in regione e negozio) e così via... Grazie dell'aiuto
    Qualche cosa di anomalo lo si intravede... ad esempio un Prodotto può essere associato esclusivamente ad un Negozio...? Oppure possono esserci Molti Negozi...?
    La logica con cui descrivi, parrebbe questa:
    Regione(1)<--->(M)Negozi(1)<--->(M)Prodotti
    siamo certi che un prodotto non possa essere venduto in Molti Negozzi....?

    In tutti i casi, hai scelto per la selezione di TUTTI una strada che io non condivido, anche se fattibile.
    Io preferisco non usare cose artificiose, ed il TUTTI lo è... richiedendo una UNION che peratro richiede poi una gestione...!

    La sintassi elementare per gestire TUTTI in assenza di selezione è questa:
    SELECT *
    FROM T1
    WHERE [CampoX]=Forms!NomeForm!NomeCombo OR Forms!NomeForm!NomeCombo IS NUll;
    Ti invito tuttavia a riflettere sulle considerazioni sopracitate.
Devi accedere o registrarti per scrivere nel forum
3 risposte