Newsgroup: it.comp.appl.access
Titolo: Stringa SQL per ADO

Non riesco ad aprire un recordset con queste Query...
QryGiacenzaI:
SELECT QryMovimenti.MOV_COD_ART, Sum(QryMovimenti.QTAMOV) AS SommaDiQTAMOV
FROM QryMovimenti
WHERE (((Format([MV_Data],"yymm"))<[Forms]![ChiusuraMensile]![CodAnno] &
[Forms]![ChiusuraMensile]![CodMese]))
GROUP BY QryMovimenti.MOV_COD_ART;
QryMatMese:
TRANSFORM Sum(QryMovimenti.MOV_QTA) AS SommaDiMOV_QTA
SELECT materiali.ART_COD
FROM materiali INNER JOIN QryMovimenti ON materiali.ART_COD =
QryMovimenti.MOV_COD_ART
WHERE (((Format([MV_Data],"yymm"))=[Forms]![ChiusuraMensile]![CodAnno] &
[Forms]![ChiusuraMensile]![CodMese]))
GROUP BY materiali.ART_COD
PIVOT QryMovimenti.TipoRel In ("C","P","R","S","D");
QryModelloMateriale:
SELECT materiali.ART_COD, NZ([SommaDiQTAMOV],0) AS GiacenzaI, NZ([C],0) AS
SommaC, NZ([S],0) AS SommaS, NZ([P]-[R],0) AS Installato,
NZ(([GiacenzaI]+[C])-([S]+[Installato]),0) AS TotTeorico
FROM (materiali LEFT JOIN QryMatMese ON materiali.ART_COD =
QryMatMese.ART_COD) LEFT JOIN QryGiacenzaI ON materiali.ART_COD =
QryGiacenzaI.MOV_COD_ART
ORDER BY materiali.OrdineMod;
da codice..
Dim rs AS New ADODB.RECORDSET
dim strSQL as string
strSQL = "SELECT materiali.ART_COD, NZ([SommaDiQTAMOV],0) AS GiacenzaI,
NZ([C],0) AS SommaC, NZ([S],0) AS SommaS, NZ([P]-[R],0) AS Installato,
NZ(([GiacenzaI]+[C])-([S]+[Installato]),0) AS TotTeorico FROM (materiali
LEFT JOIN QryMatMese ON materiali.ART_COD = QryMatMese.ART_COD) LEFT JOIN
QryGiacenzaI ON materiali.ART_COD = QryGiacenzaI.MOV_COD_ART ORDER BY
materiali.OrdineMod"
rs.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Perchè mi da errore? cosa non va?
Rs.Open apre una query del genere? (intendo a campi incrociati ecc ecc..)
Grazie!


Scusate, dimenticavo di dire che singolarmente tutte le Query funzionano
benissimo!
Spero in un vostro aiuto
Grazie

 [Forms]![ChiusuraMensile]![CodMese]))
dalle 2 SubQuery va tutto bene...


La form è aperta quando esegui la query?
Ciao.
-- 
Sergio MAZZA


Grazie,
Si , č aperta
Come dicevo, ci deve essere un problema nella clausola Where..
se non metto la condizione il recordset mi viene aperto ( i dati selezionati
finiscono in un foglio excel).


Scusatemi se continuo a inviare informazioni... ma spero che davvero
qualcuno mi possa dare una mano a risolvere questo problema!
appena metto la clausa where nelle 2 query (QryGiacenzaI e QryMatMese..) mi
da questo errore:
-
2147217904
 Nessun valore specificato per alcuni parametri necessari.
Ciao.


Prova ad inserire dei valori fissi nella clausola where invece dei
riferimenti ai controlli sulla maschera...
Ciao.
--
Sergio MAZZA

Grazie!
qui chiami [Forms]![ChiusuraMensile]![CodAnno]
ma la form ChiusuaMensile è aperta?
cmq dal codice metti dopo la query un debug.print che ti genera la
stringa sql reale che verra' eseguita (apri la finestra di debug,
copia la query sql e mettila in una query di access, e provala ora)
se non ti da errore è un problema di rs....altrimenti anche dalle
query avrai l'errore (magari qualche campo nullo...)
Ciao :)

...

Le query funzionano tutte (anche singolarmente..), la maschera
chiusuramensile è aperta, i controlli sono esatti, la tabella che
visualizzo eseguendo la query ha tutti i campi pieni, cioè non
nulli...
ma se una subquery non ha record ed io, per ovviare a questo, nella
principale ci metto un NZ() potrebbe dare problemi ?
Non c'è stato modo per far funzionare questa benedetta query con ADO!
Momentaneamene ho dovuto creare da codice una tebella temporanea
eseguendo la query (Docmd.RunSql..) ed aprire un recordset sulla
tabella per poter trasferire i dati in un foglio excel.
Ma vorrei davvero capire cosa è che non va...
Ehi, se ti va, a te e a tutti quelli che leggono questo post, potrei
mandare il prog...
credo che il programmino sia alquanto confuso e mi farebbe piacere
qualche dritta, un consiglio...
Grazie ancora!
Franco

 mandare il prog...
Posso aiutarti volentieri, anche se ho poco tempo...
ma cmq hai messi i firerimento a DAO e ADO (tutti e 2) nei riferimenti di access?
Inviami il db  se vuoi, nel fine settimana sono abb. spiccio.
Ciao :)