Newsgroup: it.comp.appl.access
Titolo: Interrogazione a database mooolto complessa

Ciao a tutti,
innanzitutto complimenti x l'attività di questo newsgroup molto efficace ed
efficente.
Veniamo al dunque:
Ho fatto un database abbastanza complesso (42 tabelle e un centinaio di
maschere e sottomaschere) ma mi sono arenato sulla richiesta di effettuare
query (sempre poi visualizzate su maschera) molto complesse ad esempio:
Visualizzami i libri di tutti gli autori nati dal 36 al 45, libri di
narrativa scritti in italiano, di non meno di 100 e non più di 150 pagine e
magari anche con un titolo lungo almeno 100 caratteri....
Questo è un esempio ma la cosa potrebbe essere più complessa con between e
altro.
Il problema è che se io imposto una query parametrica con i valori anche
facoltativi (non è detto che tutti vogliano anche che siano scritti in
italiano ad esempio) per darmi il risultato ci impiega una marea di tempo
(sempre se ci riesce).
Avete una soluzione?
Si riuscirebbe (magari in VBA) a fare le domande a "gruppi" cioè chiedere di
filtrare il tutto per 3 parametri e poi (dopo aver visualizzato i risultati)
rifiltrare il risultato in base ad altri parametri?
Oppure vi viene in mente altro? Io pensavo a una soluzione in VBA con un po
di codice, con recordset e quant'altro. (Ho in mente un po di teoria ma mi
manca la pratica)
Vi prego datemi qualche indizio (la soluzione non sarebbe male ;-) )
PS: Ovviamente le interrogazioni interessano più tabelle con varie relazioni
(o 1-1 o 1-N).
Grazie (anche per aver letto tutto il papiro),
Alessio
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
puoi cominciare filtrando direttamente le tabelle originali e poi facendo i 
join tra i risultati.
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
+-------

[cut]
Perchè non fare usare all'utente il tasto destro sulle maschere ed
insegnargli (se già non lo sa) l'utilizzo di filtra in base a selezione,
filtro ad esclusione selezione e filtra per?
Con pochi esempi sull'uso di between e dei caratteri jolly, puoi fare
eseguire in successione tutte le ricerche possibili.
Ciao
Salvatore

 [cut]
Hai esagerato con il cut.
E' necessaria lasciare l'header del messaggio e almeno la domanda
principale...
Antonio

 ha scritto nel messaggio
news:bmud1p$gl5$1...@lacerta.tiscalinet.it...

Non è così facile perchè gli utenti sono taaanti e di varia estrazione
scolastica x cui devo far si che la cosa sia for dummies al massimo.
Ciao,
Alessio


non si possono risolvere problemi "complessi" con applicativi semplici.
Da quello che dici a te serve una cosa che in access c'e', e' il QBE per la
generazione delle query o in forma piu' "professionale" l'SQL. Tutto il resto
sono "surrogati" che prevedono taaanti vincoli, ogni vincolo abbassa la liberta'
del sistema, ergo per innalzare la liberta' dovresti eliminare i vincoli e
questo riporta all'SQL.
Com'era la storia del serpente che si mangia la coda? ;<)
--
a.cara 
Togli qualcosa dall'email

 ha scritto nel messaggio
news:3F93B343...@blunet.it...

Non ho nessun problema ad usa SQL ma apparte il metodo per fare le
interrogazioni che do per scontato SQL che uso già nelle altre x query che
ho già creato, il problema è che se la query è troppo complessa mi sta 20
minuti ad estrarre i risultati (se non si inchioda tutto).
Alessio

 minuti ad estrarre i risultati (se non si inchioda tutto).
Ho riletto il tuo post in funzione della tua risposta.
Mi ero soffermato solo sulla parte di "creazione" delle query
Per quanto riguarda la parte prestazionale ci sono un po' di cose da tenere 
presenti
1) Fare le query su una query (il tuo fare le query a "gruppi")
2) Impostare correttamente gli indici per la ricerca
3) Evitare funzioni "custom" (comprese la dlookup et similia)
4) In certe occasioni usare le subselect invece delle join (e/o viceversa)
5) Nelle join impostare a sx (mi pare) la tabella con meno righe
6) Evitare le "or" nella where (certe volte e' meglio fare una union, sopratutto
se il campo della where e' un indice)
