Newsgroup: it.comp.appl.access
Titolo: VBA: problem with recordset

Ciao a tutti
Dovrei confrontare il contenuto del recordset rsAfter con il recodset tmp
ovvero estrarre tutti i record comuni ai due recordset. Come posso fare?
CODICE:
Set dbs = CurrentDb
Set loqd = dbs.QueryDefs("qry_anacli")
stSQL = "SELECT * FROM anacli"
loqd.SQL = stSQL
Set rsBefore = loqd.OpenRecordset(dbOpenDynaset)
rsBefore.Filter = "statgiur like '" &
Forms!scheda_work_portafoglio!persona_tipo & "'"
Set tmp = dbs.OpenRecordset("polcli")
Set rsAfter = rsBefore.OpenRecordset()
GRAZIE!
SDAMY

 wrote in message
IpTD6.428$o3....@news2.tin.it...


 wrote in message
CdXD6.60115$s93.6...@news.infostrada.it...

Secondo me stai a fa un sacco di giri inutili.
Invece di dare la tua soluzione, perchè non provi a spiegare che cosa
vorresti fare?
Antonio

 wrote in message
TgXD6.60132$s93.6...@news.infostrada.it...

In sintesi voglio costriure una maschera "parametrica" con parecchi
controlli, caselle combinate e caselle di riepilogo. Impostando tali
controlli voglio che la maschera mi restituisca i clienti che soddisfano i
parametri impostati sulla maschera. All'inizio me la cavavo utilizzando una
query collegata ai parametri della maschera... ma la cosa è diventata
ingestibile ed ora vorrei utilizzare il codice per rendere la cosa piu
strtutturata, performante e manipolabile a mio piacimento.
Volevo quindi utilizzare il comando filter per "scremare" i vari recordset
secondo i parametri della maschera e alla fine congiungere il risultato nei
recordset per tenere solo i dati comuni (il codice sopra è solo uno
spezzone.... per la tipologia del progetto ho bisogno di usare 4 recordset,
scremarli secondo dei parametri e poi fare il join di tutti e 4)
Se puoi darmi una dritta mi faresti un grosso piacere... stanotte alle ore
1:30 mi sono arreso.. non riesco a legare i vari recordset..
GRAZIE CIAO

 1:30 mi sono arreso.. non riesco a legare i vari recordset..
Io non uso mai i filter. Se devo fare una maschera parametrica uso due
strade:
1) o preparo una query, definita una volta per tutte, che abbia una serie di
criteri like sotto i campi corrispondenti ai controlli della maschera su cui
filtrare. Ogni criterio è fatto in questo modo
like nz([forms]![miaform]![miocontrollo];"*")
in modo che se nel controllo non c'è scritto nulla, restituisce tutti i
valori con like "*".
2) Oppure mi costruisco da codice una stringa SQL andando a testare dove ci
sono i valori nei controlli filtro e scrivendo criteri WHERE in
corrispondenza dei campi associati. Poi assegno la stringa al controllo
(tipo una sottomaschera o una casella di riepilogo) o alla maschera stessa
se è legata, ad ogni evento dopo aggiornamento dei controlli filtro.
Questo lo puoi fare anche se devi avere 4 origine dati diverse (e questo, ti
dico, continua sempre e comunque a suonarmi strano!!!)
Antonio

 valori con like "*".
A questa buona idea non ci avevo pensato!
Ma sei il vero Biso o il falso?
Altrimenti non la scopiazzo.
Ale

 wrote in message
9c8hul$c8i24$1...@ID-15127.news.dfncis.de...

Vero, vero...
Il falso è una zappa sparacavolate trolleggiante.
Antonio

 wrote in message 
bmwF6.6553$PE.6...@news.infostrada.it
...

Ciao antonio.... alla fine ho preso la strada delle 
querydef+stringhe SQL... è stata dura ma ci son riuscito...


Il problema non era di avere 4 origini di dati 
diverse ma di vedere lo stesso archivio sotto 4 ottiche diverse....


Alla fine ho creato le "4 ottiche" e le ho unite 
alla fine....


 


Il mio prox obiettivo unificare il tutto 
con un'unica grossa stringa SQL.... ma per ora il mio cervelletto non 
ci arriva...


vorrei provarci ma penso di 
fonderlo....
 


Se hai voglia di dargli un'occhiata al codice.... 
è  in allegatoo


 


 


GRAZIE 10000


CIAO CIAO
DAMIANO


 


 


Private Sub calcola_dati_Click()
Dim stSQL As 
String
Dim loqd As QueryDef


 


' (((Polcli.scad) Between 
[forms]![scheda_work_portafoglio]![data_inizio] And 
[forms]![scheda_work_portafoglio]![data_fine])


 


' Costruzione stringa sql da parametri maschera per 
Portafoglio AUTO


 


If Forms!scheda_work_portafoglio!auto_tipo = "*" 
Then
stSQL = "select npc from anacli"
Else
    If 
Forms!scheda_work_portafoglio!auto_tipo = "SI" 
Then
        If 
Forms!scheda_work_portafoglio!categoria_scelta_auto = "*" 
Then
        stSQL = "select npc from 
polcli where ((ramo ='031') or (ramo ='032') or (ramo ='013')) and (motstor is 
null) and ( scad between Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by 
npc"
        
Else
            If 
Forms!scheda_work_portafoglio!categoria_scelta_auto = "SI" 
Then
            stSQL 
= "select npc from polcli where ((ramo ='031') or (ramo ='032') or (ramo 
='013')) and (categ in  (" & Me!txt_categ & ")) and (motstor is 
null) and ( scad between Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by 
npc"
            
Else
                
stSQL = "select npc from polcli where ((ramo ='031') or (ramo ='032') or (ramo 
='013')) and (categ not in  (" & Me!txt_categ & ")) and (motstor is 
null) and ( scad between Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by 
npc"
            End 
If
        End 
If
        
Else
            stSQL 
= "select npc from polcli where ((ramo <>'031') and (ramo <>'032') 
and (ramo <>'013')) and (motstor is null) and ( scad between 
Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by npc"
    End 
If
End If
      
' Aggancio stringa sql alla 
query "po_auto"
    
Set loqd = 
CurrentDb.QueryDefs("po_auto")
loqd.SQL = stSQL
loqd.Close


 


' Costruzione stringa sql da parametri maschera per 
Portafoglio VITA


 


If Forms!scheda_work_portafoglio!vita_tipo = "*" 
Then
stSQL = "select npc from anacli"
Else
    If 
Forms!scheda_work_portafoglio!vita_tipo = "SI" 
Then
        If 
Forms!scheda_work_portafoglio!categoria_scelta_vita = "*" 
Then
        stSQL = "select npc from 
polcli where ((ramo ='081') or (ramo ='086') or (ramo ='090')) and (motstor is 
null) and ( scad between Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by 
npc"
        
Else
            If 
Forms!scheda_work_portafoglio!categoria_scelta_vita = "SI" 
Then
            stSQL 
= "select npc from polcli where ((ramo ='081') or (ramo ='086') or (ramo 
='090')) and (categ in  (" & Me!txt_categ_vita & ")) and (motstor 
is null) and ( scad between Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by 
npc"
            
Else
                
stSQL = "select npc from polcli where ((ramo ='081') or (ramo ='086') or (ramo 
='090')) and (categ not in  (" & Me!txt_categ_vita & ")) and 
(motstor is null) and ( scad between Forms!scheda_work_portafoglio!data_inizio 
and Forms!scheda_work_portafoglio!data_fine) group by 
npc"
            End 
If
        End 
If
        
Else
            stSQL 
= "select npc from polcli where ((ramo <>'081') and (ramo <>'086') 
and (ramo <>'090')) and (motstor is null) and ( scad between 
Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by npc"
    End 
If
End If
        
' Aggancio 
stringa sql alla query "po_vita"
    
Set loqd = 
CurrentDb.QueryDefs("po_vita")
loqd.SQL = stSQL
loqd.Close


 


' Costruzione stringa sql da parametri maschera per 
Portafoglio DANNI


 


If Forms!scheda_work_portafoglio!Danni_tipo = "*" 
Then
stSQL = "select npc from anacli"
Else
    If 
Forms!scheda_work_portafoglio!Danni_tipo = "SI" 
Then
        If 
Forms!scheda_work_portafoglio!categoria_scelta_danni = "*" 
Then
        stSQL = "select npc, ramo 
from polcli where ((ramo <>'031') and (ramo <>'032') and (ramo 
<>'013')and (ramo <>'081') and (ramo <>'086') and (ramo 
<>'090')) and (motstor is null) and ( scad between 
Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by npc, 
ramo"
        
Else
            If 
Forms!scheda_work_portafoglio!categoria_scelta_danni = "SI" 
Then
            stSQL 
= "select npc, ramo from polcli where ((ramo ='031') or (ramo ='032') or (ramo 
='013')) and (categ in  (" & Me!txt_categ_danni & ")) and (motstor 
is null) and ( scad between Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by npc, 
ramo"
            
Else
                
stSQL = "select npc, ramo from polcli where ((ramo ='031') or (ramo ='032') or 
(ramo ='013')) and (categ not in  (" & Me!txt_categ_danni & ")) and 
(motstor is null) and ( scad between Forms!scheda_work_portafoglio!data_inizio 
and Forms!scheda_work_portafoglio!data_fine) group by npc, 
ramo"
            End 
If
        End 
If
        
Else
            stSQL 
= "select npc, ramo from polcli where ((ramo ='031') or (ramo ='032') or (ramo 
='013') or (ramo ='081') or (ramo ='086') or (ramo ='090')) and (motstor is 
null) and ( scad between Forms!scheda_work_portafoglio!data_inizio and 
Forms!scheda_work_portafoglio!data_fine) group by npc, 
ramo"
    End If
End If
     
' 
Aggancio stringa sql alla query "po_danni"
    
Set loqd = 
CurrentDb.QueryDefs("po_danni")
loqd.SQL = stSQL
loqd.Close


 


' Gestione RAMI integrata nella query def 
"po_danni" precedentemente creata


 


If Forms!scheda_work_portafoglio!ramo_scelto = "*" 
Then
        stSQL = "select npc from 
po_danni"
        
Else
            If 
Forms!scheda_work_portafoglio!ramo_scelto = "SI" 
Then
            stSQL 
= "select npc from po_danni where ramo in  (" & Me!txt_rami & ") 
group by 
npc"
            
Else
                
stSQL = "select npc from po_danni where ramo not in  (" & Me!txt_rami 
& ") group by 
npc"
            End 
If
End If


 


' Aggancio stringa sql alla query 
"po_danni_rami"
    
Set loqd = 
CurrentDb.QueryDefs("po_danni_rami")
loqd.SQL = 
stSQL
loqd.Close 


 


 


QUERY DI UNIONE 
FINALE


SELECT [cognome1] & " " & [nome1] AS 
nominativo, Anacli.indir1, Anacli.numciv1, Anacli.cap1, Anacli.citta1, 
Anacli.prov1, Anacli.tel1
FROM ((Anacli LEFT JOIN po_auto ON Anacli.npc = 
po_auto.npc) LEFT JOIN po_vita ON Anacli.npc = po_vita.npc) LEFT JOIN 
po_danni_rami ON Anacli.npc = po_danni_rami.npc
WHERE (((po_auto.npc) Is Not 
Null) AND ((po_vita.npc) Is Not Null) AND ((po_danni_rami.npc) Is Not 
Null));