Newsgroup: it.comp.lang.visual-basic
Titolo: Le tabelle ... CHE BELLE

Io sto realizzando un programma che attraverso delle query mi trovi un
determinato/i elementi.
Se io provo un metodo alla volta tutto ok, ma con più metodi è un problema,
funziona solo l'ultimo ( usando il comando SELECT ad ogni funzione mi
ritorna tutto all'inizio e quindi resta solo l'ultimo; ma se io lo uso solo
nel corpo principale mi dice che non può concatenare i criteri di ricerca)
come posso dare i risultati di ogni funzione ad una tabella di comodo e
raffinare sempre quella ricreandola ad ogni funzione di raffinazione.
Cioè se io dico solo numeri pari e dò il risultato alla tabella COMODO se
dico anche solo numeri dispari la tabella COMODO deve risultare vuota.
Non posso modificare la Principale di tabella per non perdere dati
importanti.
P.S.
Se si può fare anche senza tabella di COMODO ditemi solo come.
Grazie Mille
    Chris

 wrote in message 7nkiqg$73m$1...@news.flashnet.it...

Giuro che poche volte ho letto frasi piu' incasinate di queste...
Comunque, se e' corretto quel (poco) che ho capito, hai bisogno di fare una
serie di filtri, in cascata, su una tabella Principale.
L'uso di una tabella temporanea per mantenere i dati dell'ultimo filtro, su
cui applicare il successivo step e' fattibile, ma ha diversi problemi;
se usi un db Access, ad esempio, il file MDB del database si ingrossera'
molto velocemente (soprattutto se hai molti records nella tabella.
Una soluzione piu' "dinamica" potrebbe essere questa:
ad ogni step di affinamento del filtro modifichi la stringa SQL originale,
semplicemente aggiungendo nella parte WHERE le condizioni dei successivi
steps.
Es.
STEP1:
SELECT * FROM Principale WHERE Numero=Pari
STEP2
SELECT * FROM Principale WHERE Numero=Pari AND Numero=Dispari
ad ogni step in pratica:
"affini" la query e la ri-applichi.
--
Roal Zanazzi
z...@iol.it

Praticamente quello che serve a me è usare diverse raffinazioni, se scelte,
quindi visto che sono un pò non posso considerare a priori tutte le
possibili scelte e cosi creare delle raffinazioni ad oc.
Quando io provo a fare
query = " select * from tabella "
query = query & "where numero > 2 "
e poi faccio
query = query & " where numero = (divisibile per 3) "
il compilatore mi risponde che manca un operatore nell'istruzione
query = "select * from tabella where numero >2 numero = (divisibile per 3)
mancando infatti l'operatore AND fra le due richieste di raffinazione.
Cosa devo fare, come devo scrivere?
GRAZIE

 wrote in message
01becc2d$58f505c0$eba1d8d4@vvallon...


 query = " select * from tabella "
  query = query & "where numero > 2 "
  query = query & " and numero = (divisibile per 3) "


 query = query & " and where numero = (divisibile per 3) "
			^^^^^
Sei sicuro di questo "AND WHERE"?
Io farei una cosa del tipo:
strQuery = "SELECT * FROM Tabella"
...
If InStr (strQuery, "WHERE") > 0 Then
    strQuery = strQuery = " WHERE Numero > 2"
Else
    strQuery = strQuery = " AND (Numero MOD 3) = 0"
End If
Naturalmente devi essere certo che non ci siano raggruppamenti o
ordinamenti nella query...
--
Giovanni "Gyo" Perdicaro
E-Mail: 
theg...@hotmail.com

 wrote in message
37aa6c75.13632244@netserver...


Controlla il tuo codice!
Ooops!!
hai ragione: la condizione deve essere cosi' ^__^;;
If InStr (strQuery, "WHERE") = 0 Then
