Newsgroup: it.comp.appl.access
Titolo: rowsource - dov'è l'errore

Salve a tutto il NG.
In una maschera, dopo aver scelto l'azienda su cui inserire un nuovo
documento, vorrei filtrare i clienti solo della ditta   selezionata.
Quindi alla casella combinata IdAzienda ho impostato su dopo
aggiornamento :
Me![cod cliente].RowSource = "SELECT DISTINCTROW IdCliente, codcliente
FROM tblClienti WHERE IDAzienda = """ _ & Me!IDAzienda & " ORDER BY
[IdCliente];"
ed è tutto ok.
Siccome la tabella cliente ha solo i campi IdAzienda, IdCliente,
codcliente e IdAnagrafica per poter visualizzare il nome del cliente
devo mettere in relazione ID della tabella "TblAnagrafica" e
IdAnagrafica della tabella TblClienti.
Ho, quindi, integrato la riga di sopra in questo modo:
Me![cod cliente].RowSource = "SELECT DISTINCTROW IdCliente, codcliente
FROM tblClienti INNER JOIN TblClienti ON TblClienti.ID =
TblAnagrafica.IdAnagrafica WHERE IDAzienda = """ _
& Me!IDAzienda & " ORDER BY [IdCliente];"
ma non funziona.
Dov'è l'errore. Spero di essere stato chiaro.
Grazie. Ciao.

 wrote in message 
news:5d498a5e-dfe8-49ff...@a23g2000hsc.googlegroups.com...
Salve a tutto il NG.
In una maschera, dopo aver scelto l'azienda su cui inserire un nuovo
documento, vorrei filtrare i clienti solo della ditta   selezionata.
Quindi alla casella combinata IdAzienda ho impostato su dopo
aggiornamento :
Me![cod cliente].RowSource = "SELECT DISTINCTROW IdCliente, codcliente
FROM tblClienti WHERE IDAzienda = """ _ & Me!IDAzienda & " ORDER BY
[IdCliente];"
ed č tutto ok.
Siccome la tabella cliente ha solo i campi IdAzienda, IdCliente,
codcliente e IdAnagrafica per poter visualizzare il nome del cliente
devo mettere in relazione ID della tabella "TblAnagrafica" e
IdAnagrafica della tabella TblClienti.
Ho, quindi, integrato la riga di sopra in questo modo:
Me![cod cliente].RowSource = "SELECT DISTINCTROW IdCliente, codcliente
FROM tblClienti INNER JOIN TblClienti ON TblClienti.ID =
TblAnagrafica.IdAnagrafica WHERE IDAzienda = """ _
& Me!IDAzienda & " ORDER BY [IdCliente];"
ma non funziona.
Dov'č l'errore. Spero di essere stato chiaro.
Grazie. Ciao.
=========================================
Per eseguire un'operazione di filtro da una scheda puoi piů
semplicemente eseguire:
FilterOn = True
DoCmd.ApplyFilter, "[IDAzienda]=" & [IdAzienda]
e per togliere il filtro:
FilterOn = False
Andare a disturbare il RowSource per cosě poco...
Bruno 

 Bruno
scusa non è che sia molto esperto. Ma dove devo inserire il filtro?
E la riga di comando che funzionava che faccio la elimino?
Puoi spiegarmi meglio il da farsi?
Grazie. Gentilissimo.

 Bruno
scusa non č che sia molto esperto. Ma dove devo inserire il filtro?
E la riga di comando che funzionava che faccio la elimino?
Puoi spiegarmi meglio il da farsi?
Grazie. Gentilissimo.
===================================
FilterOn = True
DoCmd.ApplyFilter, "[IDAzienda]=" & [IdAzienda]
            e
FilterOn = False
sono due Sub.
La prima puoi metterla in AfterUpdate della combo dalla
quale selezioni il parametro di filtro.
Combo che ho supposto chiamarsi [IdAzienda].
La seconda puoi metterla in OnClick di un button.
In RowSource della Form metti la query o tabella non
filtrata.
Bruno


Hai usato due volte la stessa tabella "tblClienti" nel JOIN.
Per di più non è chiaro se usi i campi giusti.
Se non sai bene SQL sarebe meglio di lasciarti creare
la query da Access e poi copiarla dalla vis. SQL e modificarla.
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 Per di più non è chiaro se usi i campi giusti.
........ INNER JOIN TblClienti ON TblClienti.ID =
TblAnagrafica.IdAnagrafica
questa è la parte che l'SQL mi ha generato sul campo IdCliente. Dov'è
l'uso doppio della tabella?
Confermo che i campi in relazione sono esatti. Grazie. Ciao.

 Confermo che i campi in relazione sono esatti. Grazie. Ciao.
-- 



Allora ho messo su evento dopo aggiornamento questo codice:
Private Sub IDAzienda1_AfterUpdate()
Me!IDCliente.RowSource = "SELECT DISTINCTROW IdCliente, codcliente,
FROM tblClienti INNER JOIN ON tblAnagrafica.ID =
tblClienti.IDAnagrafica WHERE IDAzienda = """ _
& Me!IDAzienda & " ORDER BY codcliente;"
Me!IDCliente.Requery
ma dopo aver scelto l'azienda e spostandomi sul campo IdCliente la
casella combinata non mi restituisce alcun risultato.
Se clicco su puntini di origine riga della casella combinata IdCliente
non mi fa accedere e dice l'istruzione Select include una parola
riservata o un argomento scritto in modo errato o mancante oppure la
punteggiatura  non è corretta.
Scusa il rilancio ma cìè qualcos'altro che non va. Ciao e grazie.

 wrote:

Nella guida di Visual Basic ho trovato la dicitura da inserire nei
casi di Inner Join. Ho pertanto modificato l'ultima stringa della mio
precedente post in:
Me!IDCliente.RowSource = "SELECT DISTINCTROW IdCliente, codcliente,
FROM tblClienti INNER JOIN tblAnagrafica ON tblClienti.IDAnagrafica =
tblAnagrafica.ID WHERE IDAzienda = """ _
& Me!IDAzienda & " ORDER BY codcliente;"
Me!IDCliente.Requery
ma non funziona lo stesso. Ti prego sono rimasto bloccato e per
emettere nuove fatture le inserisco dalla tabella.
Grazie ancora.

 >>> Me![cod cliente].RowSource= "SELECT DISTINCTROW IdCliente, codcliente

Ho risolto. A beneficio di chi ne avesse bisogno, a me ha funzionato
così:
Me!Idcliente.RowSource = "SELECT DISTINCTROW tblClienti.IdCliente,
tblClienti.codcliente, tblAnagrafica.[ragione sociale1] FROM
tblAnagrafica INNER JOIN tblClienti ON tblAnagrafica.ID =
tblClienti.IDAnagrafica WHERE IdAzienda = " _
& Me!IDAzienda & " ORDER BY codcliente;"
Me!Idcliente.Requery
Ciao.