Newsgroup: it.comp.appl.access
Titolo: query e text box

buongiorno a tutti,
ho una query di selezione e dovrei visualizzarne il risultato (e' una somma)
in una textbox e salvarne il risultato in un campo di una tabella. Purtroppo
pero' ho visto che le textbox non hanno il rowsource e qui mi sono bloccato
:(
aiutoooo
grazie 1000
Dade

Dade - Home - ha scritto:

Una semplice somma la puoi fare con la funzione DSum, invece che con la
query:
DSum("nomecampo","nometabella","criteri")
e magari la metti in una routine evento e la fai eseguire quando modifichi
i dati, o quando premi un pulsante...
Se lo devi salvare in un campo della tabella associato ad una textbox
nella maschera:
Me.Totale=DSum("nomecampo","nometabella","criteri")
Se lo devi salvare in un record di una tabella non associata alla maschera:
Me.Totale=DSum("nomecampo","nometabella","criteri")
Currentdb.Execute("UPDATE [nometabella] SET [nomecampo]=" & Me.Totale & "
WHERE <criteri>;")
Namor
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Namor
la cosa e' un po' piu' complessa... questa e' la query:
SELECT DISTINCT (
select sum(include.quantita *
(select attrezzature.costo_unitario
 from attrezzature
 where attrezzature.cod=include.cod)
) as importo1
from include
where rif_prenotazione=FORMS!PRENOTAZIONE!TESTO42.VALUE group by cod
)
+
(
select distinct SUM(classe.prezzoalta) as secondo
from classe
where classe.classe=
(select distinct veicolo.classe
 from veicolo where veicolo.targa IN
 (select prenotazione.targa from prenotazione)
)
) AS [importo totale]
FROM veicolo, prenotazione, classe, include;
e lo dovrei salvare in una textbox associata ad un campo di una tabella
(prenotazione)
grazie 1000 per l'aiuto
Ciaooo
Dade

 Dade
Allora puoi aprire un recordset e leggerti il valore risultante, dovrebbe
funzionare:
Dim Rst As Recordset
Set Rst=Currentdb.OpenRecordset("<istruzione SQL>", dbOpenSnapshot)
Me.Totale=Rst![importo totale]
Rst.Close: Set Rst=Nothing



cosi' sembra funzionare... e ne approfitto per ringraziarti per l'aiuto di
ieri e di oggi!
mi chiedevo solo se invece di <istruzione SQL> fosse possibile inserire una
query gia' fatta e salvata (il problema nasce dal fatto che di query come
quella che ti ho allegato ne ho 3 e le devo scegliere a seconda del valore
che ho in una combo... io ho provato con .openrecordset("NOME QUERY",
dbopensnapshot) ma ovviamente (Si veda la legge di Murphy) ha dato errore :/
ciao e grazie di nuovo...
Dade

Dade - Home - ha scritto:


Hai provato giusto, solo che sicuramente la tua query avrà degli spazi nel
nome e ti sei dimenticato le parentesi quadre.
Per aprire le query (o tabelle) già salvate nel db:
Currentdb.Openrecordset("[Nome tabella o query]", dbOpenSnapshot)
dbOpenSnapshot va bene in questo caso (è più veloce e occupa meno memoria
ma impedisce eventuali modifiche al recordset), non è una cosa da mettere
sempre e comunque. Cerca sulla guida "OpenRecordset" per maggiori dettagli.


 wrote in message
mx01b.22637$zN5.7...@news1.tin.it...

Usa una funzione DLookup che abbia come dominio la tua query.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 wrote in message
dZ01b.22742$zN5.7...@news1.tin.it...

L'errore che ricevi è probabilmente dovuto al fatto che la tua query "già
fatta e registrata" è una query parametrica e quindi quando ci apri sopra un
recordset con VBA devi necessariamente passargli in quel momento i
parametri, altrimenti ti da giustamente errore.
Per maggiori dettagli vai sul Sito Comune (link qui sotto) e nella Sezione
Queries leggi la FAQ di Federico Luciani intitolata "Aprire una query
parametrica da codice VBA".


 Roberto
cioe'? mi spiegheresti meglio? il valore della query poi deve venir salvato
nel campo associato alla textbox
ho provato me.textbox.value=dlookup(queryname)  ma nn gli e' piuaciuto molto
ciao e grazie
Dade


 ha scritto nel messaggio
news:AD11b.255258$lK4.7...@twister1.libero.it...

mmm non proprio nel senso che i parametri se li prende gia' la query da
sola.... esempio se ho bisogno di un ID metto where
ID=FORMS!PRENOTAZIONE!TESTO42.VALUE quindi in teoria la mia query non ha
bisogno di parametri esterni...
ciao e grazie
Dade

 wrote in message
8521b.117070$cl3.3...@news2.tin.it...

Anche se per i parametri fai riferimenti al controllo di una maschera resta
il fatto che la tua query è parametrica e quindi per aprire con VBA un
recordset su di essa devi usare il metodo indicato nella FAQ del Sito Comune
che ti ho indicato nel mio precedente messaggio.



Se non ricordo male il campo della query che contiene il risultato si chiama
importo1, e se la query si chiamasse Query1 prova a scrivere:
Me!textbox = DLookup("[importo1]", "Query1")
e se Query1 ti dovesse restituire più di una riga, per selezionare quella
giusta usa i criteri della funzione DLookup.
Per maggiori dettagli della funzione di aggregazione DLookup vedi l'help.
--
Roberto
