Non è una richiesta d'aiuto classica, quanto una condivisione di un errore di Access di cui ero a conoscenza e che ho approfondito.
Di recente (vedi https://www.iprogrammatori.it/forum-programmazione/access/errore-sharpnome--t52129.html)
ho avuto occasione di ravvivare uno dei tarli che mi tormenta e che risale al 2015
https://www.iprogrammatori.it/forum-programmazione/access/somma-sottoreport-report-t26211.html
Per una sorta di folgorazione mi sono lanciato in una prova abbastanza strana: ho esportato il report con l'errore con il metodo non documentato SaveAsText e ne ho esaminato il contenuto ed ecco qualche spiegazione in più, anche se non risolve l'arcano
La textbox del report principale che punta al totale presente nel sottoreport e creata con Access 2002 ha questo ControlSource
=IIf(subOrdini.Report.HasData=True,subOrdini.Report!TotFreight,0)
La textbox creata con Access 2013 prima ma nulla cambia con Access 365 e che restituisce l'errore #Nome? ha questo ControlSource
=IIf([subOrdini].[Reports].[HasData]=True,[subOrdini].[Reports]![TotFreight],0)
Preciso che l'origine dati è stata creata in entrambi i casi con il generatore di espressioni.
Eccezion fatta per la presenza delle parentesi quadrate di cui non si riesce a liberarsi, la differenza è data dalla presenza nella prima della parola Report (senza la S del plurale inglese) e nella seconda, quella che va in errore, dalla parola al plurale: Reports
Modificando a mano il file di testo esportato da SaveAsText togliendo la “s” finale da Reports, ottenendo così la proprietà ControlSource
=IIf([subOrdini].[Report].[HasData]=True,[subOrdini].[Report]![TotFreight],0)
ed importando poi il file così modificato con LoadAsText, il nuovo report appena creato non riporta più l'errore #Name?
Questo mi porta a pensare che se si riesce ad evitare che Access intervenga con i suoi autocompletamenti dell'origine dati, si riesce ad ottenere quello che fino ad Access 2002 era normale, cioè fare in modo che una textbox nel report principale prenda il valore da una textbox nel sottoreport senza ricorrere a VBA.
Ritornare sulla casella di testo anche solo per fare un Taglia-Incolla dell'origine dati, che nell'interfaccia grafica rimane quindi
=IIf([subOrdini].[Report].[HasData]=True,[subOrdini].[Report]![TotFreight],0)
fa ricomparire l'errore. Esportando nuovamente il report con SaveAsText il ControlSource invece diverso da quanto appare dalla finestra delle proprietà: è tornato “Reports”, con la S finale, portando nuovamente all'errore #Nome? C'è quindi anche difformità tra quanto appare nell'interfaccia grafica da quello che presumibilmente è il vero contenuto del report, se quanto estratto con SaveAsText è rappresentativo della struttura reale.
Vogliamo chiamarlo BUG? Io non ho le competenze tecniche per dirlo. Però questa cosa mi dà un po' di soddisfazione: rispetto al 2015 un passetto avanti l'ho fatto. E' ovvio che non ci si può metter lì ad esportare il report in un testo, a modificare il testo e reimportarlo, avvalendosi tra l'altro di metodi non documentati (SaveAsText e LoadAsText) sui quali non si sa mai fino a che punto è possibile fare affidamento.
Se qualcuno vuole provare con qualcosa di già pronto ecco un file banalissimo. Il report rptMain è quello con errore, prtMainCopia è quello caricato con LoadFromText dopo aver tolto manualmente la S da Reports. Ci sono anche i due file dell'esportazione dei due report ottenuti con SaveAsText.
http://www.fileconvoy.com/dfl.php?id=g13dc44f19d75da9e100050472910f7387b0136496f
(SHA256 del file originale = 1a024262581caed742077e5d9d67c2ef4e1430ec9b7035bdc7e5081d42244493 )