Philcattivocarattere ha scritto:
Cercavi risposte / soluzioni e ti tempesto di domande / osservazioni ma ti sto solo affiancando nell'analisi.
Ti ringrazio per questo, perché a volte, visto che sono l'ideatore, il solo produttore ed il principale consumatore di questo Database, fa piacere avere uno scambio di vedute e di idee con qualcuno che è ferrato sull'argomento.
Philcattivocarattere ha scritto:
Si ha a che fare con tabelle collegate pure da Sql Server che non conosco quindi la soluzione potrebbe essere oltre le mie conoscenze. Per dare maggiori informazioni a chi è più ferrato di me e che magari a colpo d'occhio riconosce "il problema", quali sono le tabelle / query che risiedono su Sql Server, quali quelle su un altro db Access e quali quelle nel db dove esegui la query che si blocca? Tutte e 3 le query sono costruite sul db "locale", sono presenti sul SQL Server o l'altro db Access collegato? (ammesso che abbia capito quello che intedevi con)
mikelemm ha scritto:
Preciso che il database ha tabelle collegate sia di Access sia di SQL Server e con Access 2007 funzionava bene.
Ancora: con che sistema ti colleghi a Sql Server? ODBC? (Ripeto: questo forse può essere d'aiuto a chi è più esperto di db collegati in rete)
Sul Server risiedono Anagrafica1, Anagrafica2, incarichi1 e Incarichi2 mentre Anagrafica3 risiede in un file mdb di Access. Invece, tutte e 3 la Query sono sul Database locale. Le Tabelle SQL le ho collegate sul Database locale con ODBC.
Philcattivocarattere ha scritto:
Osservazione numero 1: perché usi "UNION ALL" e non solo "UNION". Hai bisogno di mantenere duplicati presenti in più tabelle? Questo sia per le tabelle anagrafiche (che sono 3) sia per le tabelle incarichi (che sono 2).
Ammetto la mia ignoranza e sinceramente ti dico che non ho mai approfondito la differenza tra "UNION ALL" e "UNION". Nelle tabelle anagrafiche non ci sono duplicati mentre nelle tabelle degli incarichi ho dei duplicati.
Philcattivocarattere ha scritto:
Osservazione numero 2: lo stesso soggetto può essere presente in più tabelle anagrafiche? in particolare con lo stesso codice - chiave primaria?
Osservazione numero 3: la stessa cosa dell'osservazione 2 ma fatta su "incarichi".
Come ho detto prima, nelle tabelle anagrafiche un soggetto può appartenere ad una sola tabella ed il codice è unico per ogni persona. Invece, lo stesso soggetto può avere più incarichi anche di differente tipologia (lo stesso soggetto può essere presente più volte nella stessa tabella o essere presente nelle due tabelle degli incarichi)
Philcattivocarattere ha scritto:
Osservazione numero 4: perché usi Left join? C'è l'esigenza particolare di avere tutte le anagrafiche anche in assenza di incarichi?
Si, mi serve avere tutte le persone anche se non hanno incarico.
Dopo aver risposto alle tue osservazioni, ti dico che dopo diversi tentativi e svariate prove sono riuscito a trovare una soluzione.
Per prima cosa, sono riuscito ad avere sul computer sia A2010 che A2007 così da poter aprire il Database locale con le due versioni a seconda che le Query funzionavano o meno su A2010.
Mi sono accorto che su A2010, togliendo le condizioni "WHERE" ad Incarichi1 e ad Incarichi2 nella Query di unione Incarichi
... WHERE [CampoTesto2] IS NOT NULL AND [CampoBooleano1]=False AND [CampoBooleano2]=False ...
... WHERE [CampoBooleano1]=False AND [CampoBooleano2]=False ...
riuscivo ad aprire la Query ma, naturalmente, non restituiva i risultati che mi servivano.
A questo punto ho creato una nuova Query di selezione, che ho chiamato IncarichiFiltro. Questa Query prende i dati da Incarichi e qui ho messo i criteri di selezione corrispondenti alle condizioni "WHERE" precedentemente tolte da Incarichi. Ho sostituito questa nuova Query nella Query incriminata e finalmente è si è aperta.
Alla fine, forse, mi sono fatto un idea di quale fosse il problema. Sperando di non dire eresie, presumo che il problema stia nella conversione fatta da A2010 sui tipi di dati di SQL Server perché i campi che in Access sono testo sul Server sono "varchar" mentre i si/no sono "bit".
Non so se ho fatto cose corrette o meno dal punto di vista informatico ma finalmente il mio Database è tornato a funzionare!