Newsgroup: it.comp.appl.access
Titolo: query su access: dati mancanti

Utilizzo il php per estrarre dei dati da un database .mde di un programma di 
gestione che utilizzo per delle stampe di alcuni reports personalizzati.
Se nella query seleziono determinati campi, li visualizzo tutti...ad es. 300 
records.
Se invece ci aggiungo altri due campi nella stessa select, ne visualizzo una 
decina di record... o incontro errori nel campo Note Udienza (Warning: 
main(): Invoke() failed: Eccezione. Source: ADODB.Fields Description: 
Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al 
numero richiesto. )
Secondo voi dove sbaglio?
-----------------------------------------
I dati da estrarre sono:
Codice pratica
Nominativo cliente / Nominativo controparte
Data Udienza            Note udienza
Note pratica
la sigla operatore di studio č 'da'
----------------------------------------
ecco la select che mi funziona:
'SELECT tbl_Pratiche.Codice, tbl_Clienti.Nominativo, 
tbl_Controparti.Nominativo, tbl_Operatori.Sigla_Operatore, tbl_Pratiche.Note 
FROM tbl_Clienti tbl_Clienti, tbl_Controparti tbl_Controparti, tbl_Operatori 
tbl_Operatori, tbl_Pratiche tbl_Pratiche  WHERE tbl_Clienti.ID_Cliente = 
tbl_Pratiche.ID_Cliente AND tbl_Controparti.ID_Controparte = 
tbl_Pratiche.ID_Controparte AND tbl_Operatori.ID_Operatore = 
tbl_Pratiche.ID_Operatore AND ((tbl_Operatori.Sigla_Operatore="da"))  ORDER 
BY tbl_Pratiche.Codice'
ecco la select piů completa che NON mi funziona:
'SELECT tbl_Udienze.Data, tbl_Udienze.Note, tbl_Pratiche.Codice, 
tbl_Clienti.Nominativo, tbl_Controparti.Nominativo, 
tbl_Operatori.Sigla_Operatore, tbl_Pratiche.Note  FROM tbl_Udienze 
tbl_Udienze, tbl_Clienti tbl_Clienti, tbl_Controparti tbl_Controparti, 
tbl_Operatori tbl_Operatori, tbl_Pratiche tbl_Pratiche  WHERE 
tbl_Udienze.ID_Pratica  = tbl_Pratiche.ID_Pratica AND tbl_Clienti.ID_Cliente 
= tbl_Pratiche.ID_Cliente AND tbl_Controparti.ID_Controparte = 
tbl_Pratiche.ID_Controparte AND tbl_Operatori.ID_Operatore = 
tbl_Pratiche.ID_Operatore AND ((tbl_Operatori.Sigla_Operatore="da"))  ORDER 
BY tbl_Pratiche.Codice'
Grazie per la collaborazione

 Secondo voi dove sbaglio?
Vado un tantino a tentativi, essendo che non ho testato la query, ma a 
quanto ho letto funziona tutta come inner join.
Prima cosa, giusto per escludere problemi di vario tipo, hai provato a fare 
la select su access?
Poi i dati esistono in tutte le tabelle? Ovvero Ogni cliente ha una pratica, 
ogni pratica ha una controparte, ogni pratica ha un operatore (con sigla 
da?)
Ovvero se hai una tabella TblClienti e una TblPratiche e una TblCOntroparte.
Ora immagina che hai i clienti 1, 2 e 3, i quali hanno le rispettive 
pratiche A e B (il cli 3 non ha pratiche).
La pratica A non ha una controparte
Nel tuo caso la riga della pratica B non ti viene estratta in quanto manca 
la corrispondenza con la tabella delle controparti.
Come non ti viene estratto il cliente 3
Nel caso precedente puoi risolvere con le "join" che possono essere (inner, 
left o right -  in realtà ce ne sono altre ma per adesso mi fermo in quanto 
non credo risolvano il tuo problema)
Allora, in inner join (es. clienti con controparti) voglio che i dati 
vengano estratti solo se esistono in entrambe le tabelle, non voglio nel mio 
esempio vedere i clienti che non hanno pratiche.
La RIGHT JOIN, ivece, estrae tutti i dati dalla tabella che si trova a 
destra (di come la stai leggendo ) quindi la parte che mi interessa è
" TblControparti RIGHT JOIN TblPratiche "
Voglio che la pratica B del cliente 2 venga estratta anche se non ha una 
controparte.
SELECT TblCLienti.IDCliente, TblPratiche.IDCliente, TblPratiche.IDPratica, 
TblPratiche.IDControparte, TblControparti.IDControparte
FROM TblCLienti INNER JOIN TblControparti RIGHT JOIN TblPratiche ON 
TblControparti.IDControparte = TblPratiche.IDControparte ON 
TblCLienti.IDCliente = TblPratiche.IDCliente
Ora, non conosco il php, ma se è come l'asp non sbaglio nel dirti che 
(sempre con l'esempio qui sopra) se non hai una controparte, ovviamente 
tutti i dati della riga della pratica B che fanno riferimento alla 
tblControparte saranno nulli (in asp se visualizzo i dati in una tabella 
solitamente si inserisce il &nbsp; per non perdere la formattazione)
Boh, non mi viene in mente null'altro, magari sono completamente fuori 
strada, prova e fa sapere se ho imbroccato o no.
Tieni conto che è mezzanotte e non garantisco, spero ti possa comunque 
aiutare.
Ciao,
Massimo