Report filtrato, da maschera con sotto maschera .

di il
15 risposte

Report filtrato, da maschera con sotto maschera .

Report da maschera con sotto maschera
Buongiorno.

Premetto che non sono espertissimo di VBA ma qualcosa mastico.
Utilizzando un DB esistente e adattato, funziona benissimo ma mi sono arenato sulla creazione di un report che deve estrarre i dati da un campo di una sotto maschera contenuta in una maschera, popolato da una query, anzi da 2 query relazionate.

Detta così non dice nulla ma provo a chiarire.

1) query 1  CONTATTI_ESTESI
Query su tabella NOMINATIVI dove esistono i campi 
ID
Cognome
Nome.. (Non servono tutti gli altri campi)

SELECT IIf(IsNull([Cognome]),IIf(IsNull([Nome]),[Nome]),IIf(IsNull([Nome]),[Cognome],[Cognome] & ", " & [Nome])) AS Archivia_come, IIf(IsNull([Cognome]),IIf(IsNull([Nome]),[Nome]),IIf(IsNull([Nome]),[Cognome],[Nome] & " " & [Cognome])) AS [Nome contatto], Contatti.*, Contatti.ID
FROM Contatti
ORDER BY If(IsNull([Cognome]),IIf(IsNull([Nome]),[Nome]),IIf(IsNull([Nome]),[Cognome],[Cognome] & ", " & [Nome])), IIf(IsNull([Cognome]),IIf(IsNull([Nome]),[Nome]),IIf(IsNull([Nome]),[Cognome],[Nome] & " " & [Cognome]));
____________________________________________

2) query 2  VESTIARIO_ESTESO
Query su tabella VESTIARIO dove esistono i campi 
VESTIARIO.Articolo
Proprietario
Data ritiro
ID   (Non servono tutti gli altri campi)

SELECT VESTIARIO.*, VESTIARIO.Articolo, CONTATTI_ESTESI.Archivia_come
FROM VESTIARIO INNER JOIN CONTATTI_ESTESI ON VESTIARIO.Proprietario = CONTATTI_ESTESI.Contatti.ID
WHERE (((VESTIARIO.[Data ritiro]) Is Null Or (VESTIARIO.[Data ritiro])>=Date()))
ORDER BY VESTIARIO.Articolo, CONTATTI_ESTESI.Archivia_come;

---

a) Le 2 query sono relazionate 1 a 1 fra CONTATTI_ESTESI.Contatti.ID e VESTIARIO_ESTESO.ID.

Nella maschera primaria, DETTAGLI_NOMINATIVI_E_VESTIARIO, prelevo con la prima query tramite casella combinata (nome cboGoToContact), il valore Archivia_come che contiene Cognome e Nome uniti. (Query 1).

b) Passo il valore a una sotto maschera SOTTOMASCHERA_VESTIARIO_X_VOLONTARIO campo Proprietario con la query 2. Correlati sono Contatti.ID e Proprietario.

c) Quando la sotto maschera si popola di diversi articoli intestati al Proprietario scelto in maschera principale, (Cognome e nome), 
come posso creare un report soltanto con QUEL dato cioè l'attuale Proprietario con i suoi articoli ?

Mi sono arenato perché il report continua a riportare a rottura di Proprietario tutti i proprietari e relativi articoli.

Ho utilizzato il comando DoCmd.OpenReport "TEST", acViewReport, , strScelta, e varianti
ma... sempre tutti i record. 


Non riesco a capire cosa devo passare al report per avere soltanto il nome del Proprietario corrente con il materiale a lui assegnato.

Difficile essere chiaro al massimo ma..... Grazie.
Posso passare il Db volendo.....

15 Risposte

  • Re: Report filtrato, da maschera con sotto maschera .

    Non riesco a interpretare tutto l'ambaradan che hai messo in piedi. Più semplicemente io penserei a costruire una query parametrica contenente il TuoCampoSottomaschera, con il criterio

    [Maschere]![NomeMascheraPrincipale]![NomeSottomaschera]![TuoCampoSottomaschera]

    Poi costruisci il report su quest'ultima query creata.

  • Re: Report filtrato, da maschera con sotto maschera .

    Prima di tutto grazie e poi… si effettivamente è un pò incasinato ma perchè il Db è un pò più complesso e articolato il che rende difficile spiegare bene. Quello è solo una piccola parte. 

    Metto in atto il suggerimento subito  e ti dico.

    Grazie

  • Re: Report filtrato, da maschera con sotto maschera .

    14/06/2024 - guidosv ha scritto:


    Utilizzando un DB esistente e adattato, funziona benissimo ma mi sono arenato sulla creazione di un report che deve estrarre i dati da un campo di una sotto maschera contenuta in una maschera, popolato da una query, anzi da 2 query relazionate.

    Occorre fare un po' di chiarezza perche' altrimenti si fa confusione con i nomi propri degli oggetti: i report di regola prendono i dati dalle tabelle, o ancor meglio, dalle query debitamente filtrate in base a parametri (che possono provenire dalle maschere o caselle di input). Maschere e sottomaschere non contengono campi ma controlli che possono essere o meno associati ai campi delle tabelle.

    Se il controllo che vuoi portare nel report e' associato ad un campo di una tabella, crei una query filtrata e costruisci il report sulla query.

    Se invece il controllo non e' associato allora puoi prelevare il suo valore direttamente dal controllo nel report con la funzione Dlookup.

  • Re: Report filtrato, da maschera con sotto maschera .

    Grazie delle risposte e della pazienza ma sono io che ho postato male il quesito. 
    Ci riprovo e scusatemi....

    In pratica, nel DB, ho una maschera principale di gestione:
        DETTAGLI_NOMINATIVI_E_VESTIARIO 
    dove è presente una casella combinata:
            nome elemento: Contatto 
    che assume il valore Archivia_come  (il nominativo) da query:
        CONTATTI_ESTESI
        SELECT CONTATTI_ESTESI.[Contatti.ID] AS Espr1, CONTATTI_ESTESI.Archivia_come
        FROM CONTATTI_ESTESI

    Nella maschera principale DETTAGLI_NOMINATIVI_E_VESTIARIO, vi è inoltre una sotto maschera: 
        SOTTOMASCHERA_VESTIARIO_X_VOLONTARIO
    che assume i valori da query:
        VESTIARIO_ESTESO

    In questa sotto maschera oltre ai campi relativi al vestiario, vi è una casella combinata:
        nome elemento: Proprietario
    che assume il valore Archivia_come (il nominativo) da query:
        SELECT CONTATTI_ESTESI.Contatti.ID, CONTATTI_ESTESI.Archivia_come
        FROM CONTATTI_ESTESI;

    La sotto maschera  
        collega campi master:    Contatti.ID  (da query CONTATTI_ESTESI, numerico)
        collega campi secondari: Proprietario (da tabella VESTIARO, numerico)
    Le due sono in relazione 1 a 1.

    In visualizzazione funziona tutto ma non riesco a passare il valore giusto tramite pulsante (e a capire come e quale prendere..), creato nella maschera principale, a un report, che mi restituisca (come visualizzato come foglio di dati in sotto maschera), per  nominativo, tutto ciò che ha in dotazione. Lo fa ma nel report ci sono tutti i nominativi anche se raggruppati.

    Vorrei ottenere un report come sotto per il nominativo visualizzato: 
    ___________________________________
    Cognome: Pinco  Nome: Pallo
    Data di nascita:......
    Residenza: .......

    Vestiario in dotazione:
        Articolo     |  Taglia  | Categoria  | Condizione|
           ________________________________________________
        Casco        |    xl       |  A.I.B.        |  Nuovo       | 
        Giacca       |    xxl    |   A.I.B.        |  Nuovo       |
        Cinturone |  Pers.   |   Normale |  X                |

    Grazie di cuore a tutti  e scusate per la lunghezza del post....

  • Re: Report filtrato, da maschera con sotto maschera .

    Per poterti aiutare sarebbe importante avere una copia del file magari solo con le tabelle, le query e le maschere interessate in questa operazione.

  • Re: Report filtrato, da maschera con sotto maschera .

    Grazie della risposta.

    Ok, ho ridotto il Db solo alla funzione visualizza materiali per nominativo.

    Devo creare un report che riporti gli stessi dati per nominativo scelto nella maschera.

    Grazie per le dritte.

    Ecco il Db

    https://onedrive.live.com/redir.aspx?cid=28eb361163c88f9f&resid=28EB361163C88F9F!292622&parId=28EB361163C88F9F!270304&authkey=!AMB1ctE-qgQz8yk

  • Re: Report filtrato, da maschera con sotto maschera .

    Non si riesce a scaricare niente in quanto segnala un errore interno sul server, prova a utilizzare un altro sito di sharing tipo File Transfer.

  • Re: Report filtrato, da maschera con sotto maschera .

    Sono rientrato ora. Vedo di inviare il DB con File Transfer. 

    Grazie.

  • Re: Report filtrato, da maschera con sotto maschera .

    Proviamo così….

    https://uploadnow.io/f/R9Bjhd9

  • Re: Report filtrato, da maschera con sotto maschera .

    Oppure…

    https://www.transfernow.net/dl/DB_guidosv

  • Re: Report filtrato, da maschera con sotto maschera .

    Non è nello spirito del forum postare il database per farselo correggere. Sforzarsi di descrivere DETTAGLIATAMENTE l'intero scenario. Propongo di partire da zero:
    - di cosa parla il tuo database
    - elenca tutte le tue tabelle interessate al problema (nomi propri)
    - elenca tutti i campi delle tabelle, con indicazione della chiave primaria
    - le relazioni
    - in alternativa a questi ultimi 3 punti, puoi postare una immagine della Finestra Relazioni
    - rispiega tutto usando i nomi propri (anche di maschere)

  • Re: Report filtrato, da maschera con sotto maschera .

    14/06/2024 - guidosv ha scritto:


    Vorrei ottenere un report come sotto per il nominativo visualizzato: 
    ___________________________________
    Cognome: Pinco  Nome: Pallo
    Data di nascita:......
    Residenza: .......

    Vestiario in dotazione:
        Articolo     |  Taglia  | Categoria  | Condizione|
           ________________________________________________
        Casco        |    xl       |  A.I.B.        |  Nuovo       | 
        Giacca       |    xxl    |   A.I.B.        |  Nuovo       |
        Cinturone |  Pers.   |   Normale |  X                |

    Se questo deve essere il risultato… 11 risposte e restare ancora con le quattro frecce sa di strano.

    Supponi che i dati anagrafici siano quelli di un cliente o fornitore e il dettaglio sia il corpo della fattura di acquisto/vendita…

    Il fatto che siano attrezzi dati in dotaz8ne non esulano dalla logica master detail. Dove vedi la relazione 1 a 1?

  • Re: Report filtrato, da maschera con sotto maschera .

    Buon pomeriggio a tutti.

    Grazie delle vs. risposte e mi scuso con Osvaldo ma da suggerimento di  Stifone, ho messo il link. 
    Non è mia intenzione far correggere il DB.
    Poi, sono stato poco chiaro e vedrò di ripropormi in nel modo suggerito. Purtroppo il tempo è poco.
    sihsandrea, beh, su 11,  7 sono le mie ma comunque sono entrato ieri e come detto mi scuso ancora e riproporrò il tutto in maniera più Consona.

  • Re: Report filtrato, da maschera con sotto maschera .

    Direi che non hai il concetto di gestione di base dati in quanto:

    • manca la normalizzazione delle tabelle
    • manca la corretta gestione delle Propietà fondamentali, in base al Tipo, dei vari campi
    • una corretta gestione delle Maschere
    • una corretta gestione dei Report
    • l'utilizzo delle Tabelle o delle Query come Origine record degli oggetti sopra
    • ecc…

    quindi prima di andare oltre, che poi ti comporterebbe un gran lavoro di revisione del database, ti converrebbe approfondire la conoscenza delle varie problematiche riscontrate.

    Comunque qui trovi un esempio minimale.

Devi accedere o registrarti per scrivere nel forum
15 risposte