visualizzare sottoreport in report

Anonimo
2017-02-12T20:11:37+00:00

Salve a tutti,

in un report, all'interno del corpo, ho inserito altri report collegati con campi master e secondari.

apro il report principale (report1) da un comando da una maschera con il seguente codice:

DoCmd.OpenReport "report1", AcViewPreview, , whereCondition:='id_gservizi=" &me.idgservizi

vengono visualizzati però solo i sottoreport che hanno i campi master e secondari popolati.

E' possibile visualizzare i sottoreport anche se non sono presenti i record in ogni sottoreport?

Grazie a tutti

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2017-02-13T18:51:04+00:00

    Ciao,

    imposta come origine dati della sottoreport:

    SELECT T_gestioneServizi.id_gestioneServizi AS Id, tbl_veicoli_servizio_utilizzati.id_veicolo_servizio, tbl_veicoli_servizio_utilizzati.nome_veicolo, tbl_veicoli_servizio_utilizzati.id_gestioneServizi, tbl_veicoli_servizio_utilizzati.kminiziali, tbl_veicoli_servizio_utilizzati.kmfinali, tbl_veicoli_servizio_utilizzati.ora_inizio, tbl_veicoli_servizio_utilizzati.ora_fine FROM T_gestioneServizi LEFT JOIN tbl_veicoli_servizio_utilizzati ON T_gestioneServizi.id_gestioneServizi=tbl_veicoli_servizio_utilizzati.id_gestioneServizi;

    Nella maschera principale, per il controllo sottomaschera imposta Collega campi secondari a Id

    Ciao Mimmo

    P.s. Normalmente sulle maschere/ reports  non vengono visualizzati gli ID delle tabelle perché sono campi tecnici e non utili all'utente finale.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-02-13T18:42:07+00:00

    ciao Peppino38,

    non so se ho capito correttamente, ma seguendo il ragionamento di Karl, devi preservare il lato 1 della relazione 1->M, in modo da generare la riga con valori null nel lato molti.

    prova ad impostare questa query per il sottoreport :

    SELECT T_gestioneServizi.id_gestioneServizi,

                 tbl_veicoli_servizio_utilizzati.id_veicolo_servizio,

                 T_gestioneServizi.data, T_gestioneServizi.Orario,

                 T_gestioneServizi.Zona,

                 tbl_veicoli_servizio_utilizzati.nome_veicolo,

                 tbl_veicoli_servizio_utilizzati.kminiziali,

                 tbl_veicoli_servizio_utilizzati.kmfinali,

                 tbl_veicoli_servizio_utilizzati.ora_inizio,

                tbl_veicoli_servizio_utilizzati.ora_fine

    FROM

           T_gestioneServizi

    LEFT JOIN

            tbl_veicoli_servizio_utilizzati

    ON T_gestioneServizi.id_gestioneServizi = tbl_veicoli_servizio_utilizzati.id_gestioneServizi;

    salvala come oggetto ed impostala come recordSource nel sottoreport e riprova,

    Una volta popolata solo la riga lato1 in modo da generare una riga nella tabella T_gestioneServizi inserendo anche solo la data, generi la riga lato molti legando pk e fk.

    Tutto questa 1/2 tua maschera M_gestioneServizi.

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-02-13T17:54:48+00:00

    Ciao Karl,

    grazie in anticipo.

    ho provato ad usare una query ma non riesco.

    Provo a ricapitolare quanto mostrato nel file allegato:

    dal pulsante stante dalla form M_gestione servizi il primo record, popolato, viene stampato correttamente nel report. Poi nel record successivo, essendo la tbl_veicoli_srvizio_utilizzati senza record, lanciando la stampa non vengono visualizzati nel sottoreport.

    Io vorrei vedere ugualmente i campi del sottoreport vuoti.

    Post il linkcon file esempio

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-02-13T10:43:06+00:00

    Salve,

    come origine record del sottoreport usa una query che mostra almeno il record dal lato 1 anche se non esiste un record sul lato n, tipo:

    SELECT A.id_gservici AS IdLato1, B.*

    FROM A LEFT JOIN B ON A.id_gservizi = B.id_gservizi

    Poi usa IdLato1 per "Collega campi secondari".

    La risposta è stata utile?

    0 commenti Nessun commento