Newsgroup: it.comp.appl.access
Titolo: Unire due tabelle via codice per visualizzare delle comme su maschera

Salve a tutti,
ho creato una mschera con due caselle di testo che servono da parametro ad
una query, solo che non vorrei che apparisse la query, ma soltanto che mi
dia l'opportunità di prelevare il risultato di questa query (che fa le somme
del campo a, b, ecc.) e visualizzare i valori risultanti di ogni somma su un
campo della maschera.
Ho provato di tutto ma non ci sono riuscito, ho pensato di fare tutto da
codice ma non trovo la strada per fare l'unione delle due tabelle e poi
trattare il tutto come se fosse una sola tabella e fare la somma di questi
campi.
Qualcuno mi può aiutare ??
Ho access 2000
Grazie
ThaiChi

 ha scritto nel messaggio
news:aki4ue$nr1$1...@fe2.cs.interbusiness.it...

Da codice apri il recordset associato alla query. La query però dovrai
riscriverla da codice perchè usi dei parametri esterni. A questo punto, puoi
accedere ai valori restituiti dalla query tramite fields, e potrai farci
tutte le operazioni da codice che vuoi.
Quindi assegni i risultati ai controlli non associati della maschera
Antonio

Il problema è proprio quello, non so come fare a scrivere la query con le
tabelle collegate e come utilizzare il fields per prendere poi i valori, se
mi puoi aiutare....
Grazie Infinite
ThaiChi


Prova a rispondermi di nuovo postando del quoting significativo del tuo
problema!!!
Antonio

 >
----------------------------------------------------------


 Antonio
Vista la buona volontà passo sopra al fatto che non hai scritto DOPO il
quoting, però fallo la prossima volta.
Fai così: vai nella query che hai preparato, visualiiza l'sql e copialo.
Quindi vai nella maschera, crea una procedura sul clic di un pulsante e
incolla l'SQL.
Quindi fai una cosa del genere
sql_cmd = "SELECT Tuatabella.*, Tuatabella.CampoFiltrato "
sql_cmd = sql_cmd & "FROM Tuatabella WHERE "
sql_cmd = sql_cmd & "(((Tuatabella.CampoFiltrato)="
sql_cmd = sql_cmd & Controllo_Filtro & "));"
Il WHERE nella query era qualcosa del genere
WHERE (((TuaTabella.CampoFiltrato=[forms]![tuaform]![Controllo_Filtro]))
In pratica devi sostituire i riferimenti alla form nella query con il nome
del controllo stesso.
Ricordati che se i campi sono di tipo testo devi mettere i doppi apici
quindi qualcosa del genere
sql_cmd = sql_cmd & "(((Tuatabella.CampoFiltrato)="""
sql_cmd = sql_cmd & Controllo_Filtro & """));"
in quanto per mettere un doppio apice in una stringa lo devi raddoppiare
A questo punto farai
dim rst as recordset
set rst = currentdb.openrecordset(sql_cmd)
A questo punto dipende come è il risultato di questa query: se c'è un solo
record allora ti basta fare
rst.movefirst
valorecampo1 = rst.fields(0)
valorecampo2 = rst.fields(1)
e così via
ma se ci sono più record allora devi trovare quello desiderato, ma diciamo
che non è così
i valori trovati li puoi sbattere nei controlli della maschera.
Antonio

 wrote in message
aki4ue$nr1$1...@fe2.cs.interbusiness.it...

Sempre se ho ben capito il tuo problema,  potrai visualizzare i risultati
della tua query in una sottomaschera che ha come origine record la query in
questione, oppure in caselle di testo non associate inserite nella maschera,
utilizzando la funzione DLookUp (vedi help) nella loro origine controllo.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------