Newsgroup: it.comp.lang.visual-basic
Titolo: Metodo Find con ADO

Ciao a tutti,
ho un recordset ADO, conosco nel DB i 3 campi chiave, come utilizzare il
metodo ado?
Ho provato nel seguente modo:
rc.find "campo1='" & campo1,"'campo2='" & campo2,"'campo3='" & campo3 & "'"
ma non funziona.
Vorrei verificare se un record esiste conoscendo appunto le PK. (ho pensato
che potrei aprire un altro recordset utilizzando una select con condizine
where dei PK, ma sarebbe sicuramente molto piu' pesante del metodo FIND)
Qualche suggerimento?
Thanks
Andrea

rc.find "campo1='" & campo1 & " and campo2='" & campo2 &" and campo3='" &
campo3 & "'
Saluti Rensy

Non so se sono fesso io ma a me il metodo find riesce di farlo funzionare
solo con un campo e il suo valore, stai molto attento alle opzioni perchč
altrimenti parte dal record corrente (e non necessariamente č il primo) e la
ricerca la fa solo in avanti.
Se devi cercare piů campi io ti consiglio di fare select ...... where .....
e cosě trovi tutti  i record che ti interessano, find trova solo il primo e
poi si ferma.

dall'help
Metodo Find (ADO)
Cerca in un recordset il record che soddisfa i criteri specificati. Se
vengono soddisfatti tutti i criteri, la posizione del recordset verrà
impostata sul record trovato. In caso contrario, verrà impostata sulla fine
del recordset.
Sintassi
Find (criteri, righeIgnorate, direzioneRicerca, inizio)
Parametri
criteri   Elemento String contenente un'istruzione che specifica il nome
della colonna, l'operatore di confronto e il valore da utilizzare nella
ricerca.
righeIgnorate   Valore Long che, in base all'impostazione predefinita, è
uguale a zero e specifica l'offset dalla riga corrente o il segnalibro
inizio per l'inizio della ricerca (opzionale).
direzioneRicerca   Valore SearchDirectionEnum che specifica se la ricerca
deve cominciare dalla riga corrente o dalla successiva riga disponibile
nella direzione della ricerca (opzionale). Tale valore può essere
adSearchForward o adSearchBackward. A seconda del valore di
direzioneRicerca, la ricerca si interrompe all'inizio o alla fine del
recordset.
inizio   Segnalibro Variant che indica la posizione iniziale per la ricerca
(opzionale).
Osservazioni
L'operatore di confronto specificato in criteri può essere ">" (maggiore
di), "<" (minore di), "=" (uguale a) o "like" (criteri di ricerca).
Il valore specificato in criteri può essere una stringa, un numero a virgola
mobile oppure una data. I valori stringa sono delimitati da virgolette
singole ('), ad esempio "state = 'WA'". I valori data sono delimitati da
simboli di numero (#), ad esempio "start_date > #7/22/97#".
Se l'operatore di confronto è "like", il valore stringa potrà contenere "*",
ovvero una o più occorrenze di un carattere qualsiasi, oppure "_",
un'occorrenza di un carattere qualsiasi. Specificando "state like M_*"
vengono ad esempio trovati sia Maine che Massachusetts.
--
Ing. Venturelli Aldo
via Vittorio Emanuele, 12
25042 Borno -Bs-
E-mail: 
aldo...@coopcsc.it

>rc.find "campo1='" & campo1 & " and campo2='" & campo2 &" and campo3='" &
campo3 & "'
Non funziona
Andrea

Provo a spiegare un po' meglio cio' che mi serve.
Leggo da un file di testo una riga (un record), e voglio verificare
se tale record esiste gia' in un
recordset ADO già aperto.
Per fare cio' utilizzo il metodo FIND
Ho provato entrambe le seguenti righe di codice:
        rs.Find ("CodiceVoce=180 AND Anno=2000 AND Mese =2 AND Tipo =0 AND
CodiceVoce=1")
        rs.Find ("CodiceVoce=180,Anno=2000,Mese =2,Tipo =0,CodiceVoce=1")
Ricevo sempre l'errore
Run-Time error '3001':
Gli argomenti utilizzati dell'applicazione non sono di tipo valido,
non sono compresi nell'intervallo consentito o sono in conflitto.
Il DB da cui il recordset estrae i dati di riferimento
ha come PK l'insieme delle seguenti colonne:
CodiceDitta =>numerico
anno =>numerico
Mese =>numerico
tipo =>numerico
CodiceVoce =>numerico
Qualcuno sa darmi una mano?? Come si usa il metodo find
su una tabella che ha piu' di 1 campo chiave?
Thanks
Andrea

 wrote in message
news:8cgp1g$ps3$1...@nslave2.tin.it...

E quello che avevo pensato di fare ma posso fare una select di un recordset
ADO??
Non mi tocca forse dichiarare una nuova variabile recordset
ed assegnare a questa il risultato della select?? Il metodo find mi
permetterebbe di evitare cio' !
thanks
Andrea

 campo3 & "'
Purtroppo il tuo suggerimento non funziona.
Leggo da un file di testo un record, e voglio verificare
se tale record esiste gia' in un
recordset ADO già aperto.
Per fare cio' utilizzo il metodo FIND
Ho provato entrambe le seguenti righe di codice:
        rs.Find ("CodiceVoce=180 AND Anno=2000 AND Mese =2 AND Tipo =0 AND
CodiceVoce=1")
        rs.Find ("CodiceVoce=180,Anno=2000,Mese =2,Tipo =0,CodiceVoce=1")
Ricevo sempre l'errore
Run-Time error '3001':
Gli argomenti utilizzati dell'applicazione non sono di tipo valido,
non sono compresi nell'intervallo consentito o sono in conflitto.
Il DB da cui il recordset estrae i dati di riferimento
ha come PK l'insieme delle seguenti colonne:
CodiceDitta =>numerico
anno =>numerico
Mese =>numerico
tipo =>numerico
CodiceVoce =>numerico
Ti ringrazio comunque per avermi risposto :-)
Bye
Andrea

ricerca.
Detto questo l'help non mi e' stato d'aiuto nel caso di una ricerca su +
colonne,
ho pensato di ovviare in tal maniera:
        rs.Find ("CodiceVoce=180 AND Anno=2000 AND Mese =2 AND Tipo =0 AND
CodiceVoce=1")
glia altri parametri del metodo FIND non mi servono.
Purtroppo non funziona.
Andrea

 wrote in message
iL_G4.82772$pn3.9...@news.infostrada.it...
