Newsgroup: it.comp.appl.access
Titolo: query che non funziona se impostata da VBA

Salve a tutto il NG.
Non riesco a venire a capo di un errore che mi segnala A03 su XP provo
a riportarvi la situazione in cui sto eseguendo il test sperando di
riportare tutti gli elementi utili al caso:
TABELLE:
Testate CONTRATTI
TECIDContratto 		CONTATORE
TECNumeroContratto 	                STRINGA
IDCompratore 		NUMERICO   Molti a uno con ID
IDVenditore 		NUMERICO
TECDataContratto	                DATA
TECImponibile		NUMERICO
……
RigheCONTRATTI
TECIDContratto		CONTATORE
CAMIDCampione	                STRINGA
…….
DITTE
DITIDAzienda		CONTATORE
DITIDRagioneSociale	                STRINGA
….
Ho testato questa query immettendo manualmente  in successione i dati
ad ogni richiesta dell'applicazione ovvero 158 (ID del Cliente) quindi
01/10/2008 e per finire 31/12/2008, così come sono scritte. Ecco il
codice SQL della query.:
==== start
SELECT TestateCONTRATTI.TECIDContratto,
TestateCONTRATTI.TECNumeroContratto, TestateCONTRATTI.IDCompratore,
TestateCONTRATTI.IDVenditore, TestateCONTRATTI.TECDataContratto,
RigheCONTRATTI.TECIDContratto, RigheCONTRATTI.CAMIDCampione,
TestateCONTRATTI.TECImponibile FROM TestateCONTRATTI INNER JOIN
(CAMPIONI INNER JOIN RigheCONTRATTI ON CAMPIONI.CAMIDCampione =
RigheCONTRATTI.CAMIDCampione) ON TestateCONTRATTI.TECIDContratto =
RigheCONTRATTI.TECIDContratto WHERE (((TestateCONTRATTI.IDCompratore)=
[n]) AND ((TestateCONTRATTI.TECDataContratto) Between  [ t1]  And
[ t2])) ORDER BY TestateCONTRATTI.TECNumeroContratto,
TestateCONTRATTI.TECImponibile;
====end
Tutto funziona correttamente e nella tabella ritrovo tutti i record
filtrati.
Se invece provo ad impostare da un modulo l’origine record di una form
in visualizzazione “Maschere continue”
Non esegue il filtro per data e cliente (nel caso testato l’id del
cliente è 158), ma espone tutti i record presenti nella tabella
Testate CONTRATTI e non riesco a trovare dove sbaglio.
Sub prova()
calcola "01/10/2008", "31/12/2008", 158
End Sub
Sub calcola(t1 As String, t2 As String, n As Integer)
strSQL = "SELECT TestateCONTRATTI.TECIDContratto, " _
        & "TestateCONTRATTI.TECNumeroContratto, " _
        & "TestateCONTRATTI.IDCompratore,
TestateCONTRATTI.IDVenditore, " _
        & "TestateCONTRATTI.TECDataContratto,
RigheCONTRATTI.TECIDContratto, " _
        & "RigheCONTRATTI.CAMIDCampione,
TestateCONTRATTI.TECImponibile " _
        & "FROM TestateCONTRATTI INNER JOIN (CAMPIONI INNER JOIN
RigheCONTRATTI " _
        & "ON CAMPIONI.CAMIDCampione = RigheCONTRATTI.CAMIDCampione) "
_
        & "ON TestateCONTRATTI.TECIDContratto =
RigheCONTRATTI.TECIDContratto " _
        & "WHERE (((TestateCONTRATTI.IDCompratore)=" & n & ") AND
((TestateCONTRATTI.TECDataContratto) " _
        & "Between  #" & t1 & "# And #" & t2 & "#)) " _
        & "ORDER BY TestateCONTRATTI.TECNumeroContratto,
TestateCONTRATTI.TECImponibile;"
DoCmd.OpenForm "frm_dettaglio_Cliente"
If IsLoaded(frm_dettaglio_Cliente) Then
    frm_dettaglio_Cliente.RecordSource = strSQl
End If
End Sub

 wrote in message 
news:8b7845ff-48d9-418b...@r15g2000prh.googlegroups.com...
Salve a tutto il NG.
Non riesco a venire a capo di un errore che mi segnala A03 su XP provo
a riportarvi la situazione in cui sto eseguendo il test sperando di
riportare tutti gli elementi utili al caso:
[...]
Intanto correggi questa:
((TestateCONTRATTI.TECDataContratto) " _
        & "Between  #" & Format(t1, "mm/dd/yy") & "# And #" & Format(t2, 
"mm/dd/yy")  & "#)) " _
Bruno 

 Bruno
Me lo sentivo che mi perdevo in un bicchier d'acqua... grazie di cuore
Bruno
Andrea