Questa situazione l'ho scoperta nel 2015, verificata con Access2013, 2016 e 365.
Modalità per riprodurre il problema:
Utilizzando Access in italiano in una relazione uno a molti, creare il report principale per la tabella lato 1, ed un sottoreport per la tabella lato Molti. Inserire nel sottoreport una textbox (dal contenuto fisso o calcolato, non importa). Inserire nel report principale un'altra textbox e tramite il generatore di espressione andare a collegarla alla textbox del sottoreport.
L'origine dati della textbox del report principale riporta
=[NomeSottoreport]![Report]![NomeTextbox]
in alternativa si può anche digitare manualmente la stessa cosa che si ottiene con l'uso del generatore di espressioni.
Visualizzare in anteprima di stampa il report. La textbox del report principale visualizza #Nome?
Origine del problema
Per constatare che l'origine dati della textbox è diversa da quanto visualizzato dall'interfaccia grafica, tramite VBA controllare la proprietà ControlSource. Questa risulterà essere
[NomeSottoreport]![Reports]![NomeTextbox]
con la lettera S alla fine di Report
La stessa cosa è riscontrabile esportando il report principale con il metodo non documentato SaveAsText.
Dall'interfaccia grafica non c'è un sistema per fare in modo che l'origine dati (ControlSource) sia salvata senza la S dopo Report.
Workaround
- Tramite VBA aprire in modalità struttura il report principale, attribuire alla proprietà ControlSource dalla textbox il valore corretto: "=[NomeSottoreport]![Report]![NomeTextbox]"; salvare e chiudere il report.
- Esportare il report con SaveAsText; aprire il file creato con un editor di testo, individuare la proprietà ControlSource della textbox e sostituire a "=[NomeSottoreport]![Reports]![NomeTextbox]" il testo "=[NomeSottoreport]![Report]![NomeTextbox]". Salvare il file ed importarlo nel database con il metodo non documentato LoadFromText.
Aprire il report in anteprima di stampa per constatare il corretto funzionamento della textbox del report principale.
Questo comportamento non si presentava fino alla versione 2003.
NB: questo errore si presenta solo nella versione italiana di Access. Ho provato la versione Inglese, Francese e Spagnola di Access 2021 e con quelle funziona correttamente.
Una situazione simile riguarda anche le maschere con sottomaschere, in cui il generatore di espressioni popola l'origine dati con
=[NomeSottoMaschera]..Scheda![NomeTextBox]
ma l'errore è rilevato immediatamente, non è permesso uscire dal Generatore di Espressioni.