Newsgroup: it.comp.appl.access
Titolo: Runsql con query concatenata

Salve ragazzi,
Vi chiedo aiuto per risolvere un problema.   In un modulo, vorrei
utilizzare una istruzione sql di query annidata.
Poiche mi riesce difficile spiegare ciò che intendo, ho inserito un
database di esempio che si trova al seguente indirizzo (spero di non
creare problemi ad inserire il link)
hxxp://
www.webalice.it/elettrotar/esempio/db1.mdb
(ovviamente mettere http al posto di hxxp)
Nel database ho creato una maschera la quale con il tasto 1 si
richiama la query2 (che contiene il riferimento alla query1)
mentre con il tasto2 vorrei avere la stessa informazione ma
utilizzando unicamente i moduli (nessuna query presente nel
database!!!)
questo ovviamente è solo un esempio che poi dovrei applicare ad un
database molto piu complesso.
Voglio creare un database senza utilizzo di query, ovvero con il solo
utilizzo di query sottoforma di sql inserite all'interno di moduli..
Mi potete aiutare??  E' realizzabile?
Scusate se non sono stato chiaro nell'esposizione, ma spero mi abbiate
capito..
Saluti


perchè vuoi farti del male?, che vantaggio pensi di averne?
-- 
Cinzia [Office Access MVP]
_______________________
 
www.riolab.org
----------------------------------------

sepri...@gmail.com
 ha scritto:

Ciao se vuoi usare i moduli e creare le stringhe sql al volo non puoi 
usare runSql, perché accetta solo istruzioni di azione, come DELETE, 
DROP, CREATE, APPEND, UPDATE...
Puoi invece creare una query al volo con l'oggetto QUERYDEF
Devi usare openquery a cui passi il nome della query che crei al volo:
Function Macro2()
Dim qd As QueryDef
Dim strQryName As String
Dim strSQLTest As String
strQryName = "Test"
  'Prima cancelli la query
Dim TQuery As QueryDef
'Ora scorri per vedere se esiste
For Each TQuery In CurrentDb.QueryDefs
  If TQuery.Name = "Test" Then CurrentDb.QueryDefs.Delete ("Test")
Next
strSQLTest = "select * from tabella1"
Set qd = CurrentDb.CreateQueryDef(strQryName, strSQLTest)
DoCmd.OpenQuery (strQryName)
qd.Close
Set qd = Nothing
Set TQuery = Nothing
End Function
-- 
http://www.pierpaoloromanelli.com

 
seprita...@gmail.com
 ha scritto:

Ciao, e grazie per le risposte..
Era (quasi) proprio quello che cercavo!! In realtà pensavo si potesse
creare una query virtuale, ma probabilmente non si può!!
Anche cosi però va bene, in quanto non appena utilizzata per creare la
tabella poi la cancello sempre tramite modulo.
A cosa mi serve ciò?  Chi utilizza il software è un gran smanettone,
al chedopo l'ennesimo problema ho deciso di ricercare questa strada..
una volta trasformato in mde infatti, non sarà più modificabile e
forse non avrò i problemi che ho avuto fino ad ora..
Grazie 1000!!  siete dei grandi!


Ciao, e grazie per le risposte..
Era (quasi) proprio quello che cercavo!! In realtà pensavo si potesse
creare una query virtuale, ma probabilmente non si può!!
Anche cosi però va bene, in quanto non appena utilizzata per creare la
tabella poi la cancello sempre tramite modulo.
A cosa mi serve ciò?  Chi utilizza il software è un gran smanettone,
al chedopo l'ennesimo problema ho deciso di ricercare questa strada..
una volta trasformato in mde infatti, non sarà più modificabile e
forse non avrò i problemi che ho avuto fino ad ora..
Grazie 1000!!  siete dei grandi!
Ciao ti ho risposto al tuo quesito, ma se il tuo scopo è di rendere nascoste 
le query, potresti una strada facile, creare una tabella nascosta di 
sistema, dove metti le tue query, o anche usare delle query nascoste. Poi 
con il metodo che ti ho detto le crei al volo.
Io lo feci per un progetto anni fa, ponevo tutte le query in un database 
mysql, in delle tabelle, e poi creavo le query al volo...
In ogni caso se usi i recordset fai quello che ti pare...
In ogni caso se diventa mde, sarà difficile, ma sempre possibile, arrivare 
alle query, ma deve essere proprio tanto smanettone!
Ciao
Pierpaolo Romanelli
http://www.pierpaoloromanelli.com