Newsgroup: it.comp.lang.visual-basic
Titolo: comando seek

salve a tutti,
    avrei una domanda...con il comando seek si riesce ad individuare il 
primo record che soddisfa una certa condizione, ma...è possibile recuperare 
tutti i record che soddisfano una certa condizione?, se si come è possibile 
farlo?.
Eventualmente, qual'è il modo più veloce e affidabile per recuperare tutti i 
campi di una tabella che soddisfano una certa condizione?.
GRAZIE 

 i campi di una tabella che soddisfano una certa condizione?.
Ma stai parlando di una tabella di un DB o di un file?
Ciao 

 campi di una tabella che soddisfano una certa condizione?.
Con ado puoi usare il metodo rs.filter:
Rs.Filter = "NomeCampo='" & valore & "'"
e per annullarlo
rs.filter= adfilternone
-- 
DBMS Firebird
VB6 + Ado

> Eventualmente, qual'č il modo piů veloce e affidabile per recuperare 


 intendo una tabella db, scusate se non ho specificato
La WHERE della SELECT non va bene?
Ciao 

 ha scritto nel messaggio 
news:4483e9c3$0$18284$4faf...@reader1.news.tin.it...


 come...
:)
Vediamo di capirci.
Il comando Seek, che in realtà è il *metodo* Seek è presente solo in DAO e 
lavora solo sui campi di una chiave.
Non capisco perchè tu voglia per forza usare il Seek quando esiste il filtro 
a monte con la SELECT o, al massimo, a valle con la Filter (che non ricordo 
se c'è anche in DAO) o le varie Find* a seconda se in DAO o ADO.
Ciao 

 ha scritto nel messaggio 
news:4483f4c1$0$18288$4faf...@reader1.news.tin.it...


 LA MIA ERA SEMPLICEMENTE UNA DOMANDA
Le tue erano più domande, e la mia era semplicemente una risposta ;)
Ciao 

 ha scritto nel messaggio 
news:448424ac$0$18281$4faf...@reader1.news.tin.it...


 alternativi.
Ufff... che pa//e :)
Mica mi sono offeso!
E' che a volte le domande sono cosě generiche che non si puň aiutare anche 
volendo.
Ancora adesso non ho capito con quale tecnologia accedi al db (e che tipo di 
db sia).
Ciao 

Public DB As Database
strDataSource = App.Path
strDataBaseName = "\DataBase.mdb"
Set DB = OpenDatabase(strDataSource & strDataBaseName, False, False, 
";pwd=***")
Public RS As Recordset
Dim strTabellaQuo As String
strTabella = "tabella_tb"
Set RS = DB.OpenRecordset(strTabella, dbOpenTable)
questo è il sistema con cui gestisco la connessione al database e alle varie 
tabelle.
il databese è fatto con access.
con il metodo seek individuo il primo record di una tabella che soddisfa una 
condizione ma vorrei ricavare tutti i record che soddisfano un condizione.
CIAO 

 ha scritto

manuel, dato che di tecnologie per accedere ai dati ce n'e' varie, se riesci 
a precisare e' meglio.
tu stai usando dao.
per fare quello che vuoi, puoi modificare il codice come sotto, poi pero' 
bisogna che guardi qualche guida sql, n rete ne trovi migliaia (cerca p.e. 
"sql tutorial").
ciao, a.
strtabella="select * from tabella_tb where cognome like 'rossi*'"
o
strtabella="select * from tabella_tb where codice=2"
poi
set rs= db.openrecordset(strtabella, dbopendynaset)
se devi scorrerlo solo in avanti, piu' veloce:
set rs= db.openrecordset(strtabella, dbopensnapshot)
nb che con in recordset sql non hai piu' gli indici della tabella, quindi 
cerca di farti restituire il rs gia' ordinato:
strtabella="select * from tabella_tb where cognome like 'rossi*' order by 
cognome"
strtabella="select * from tabella_tb where codice=2 order by provincia, 
comune"
ecc ecc ecc


   Ciao, se proprio vuoi farlo con le seek semplicemente fai cosi'
RS.index="NomeCampoIndice"
RS.seek "=",valore_da_cercare
if not(RS.NoMatch) then
    do
          ...................
          RS.MoveNext
          if RS.EOF then
                finito=true
          else
                finito= (RS.Fields("NomeCampoIndice") <>
valore_da_cercare)
          end if
     loop until finito
end if
Con Access l'ho usato qualche volta, semplicemente perche' e' piu'
veloce di una SELECT * FROM ... WHERE ....
Pero', a meno che non sei costretto, io eviterei....

GRAZIE DEL CONSIGLIO