Newsgroup: it.comp.lang.visual-basic
Titolo: [ADO] Trovare, se c'è, un record in un recordset

E sono ancora qui...
Sono un po' testone, ma ADO non l'ho riesco a digerire:
Come faccio a trovare, se c'č, un record in un recordset?
Ho provato:
DataEnvironment1.rsPortafoglio.MoveFirst
DataEnvironment1.rsPortafoglio.Find "Campo = 'Pippo'"
e mi risponde:
"Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al
numero richiesto"
se addirittuta scrivo:
DataEnvironment1.rsPortafoglio.MoveFirst
DataEnvironment1.rsPortafoglio.Find "Campo1 = 'Pippo' AND Campo2 = True"
mi risponde:
"Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo
consentito o sono in conflitto".
PERCHČ? :( Sbaglio qualcosa? (sě, ovviamente...)
Grazie e ciao,
Brio

Errata Corrige:
Riflettendoci il problema č l'ora tarda:
Sbagliavo il nome del Campo...
Perņ mi resta il problema setteso:
Io vorrei subordinare l'Enable di una voce di menu all'esistenza o meno di
un record all'interno di un recordset. Come faccio?
Con Find vedo se c'č, e poi????
Magari Poi sbaglio anche ad usae Find
Mi sono impelagato di nuovo.
Ciao,
Brio

 Magari Poi sbaglio anche ad usae Find
gira e prilla, con ado quello usi. con dao e seek sarebbe piu' veloce,
ma lascia perdere. piuttosto comincia a guardare il linguaggio sql e
capirai come ottimizzare.
piu' che altro, legare un menu a una ricerca in un db puo' essere
lento, specie se il recordset contiene molte schede.
ciao, j.


 Magari Poi sbaglio anche ad usae Find
ZAC
Fai tutto da codice amico mio....impari di più e godi di più...nel senso che 
il codice è più veloce.
Considera questo...i controlli sono un vantaggio e uno svantaggio allo 
stesso tempo.
In teoria dovresti usare solo quei pochi controlli standard che fornisce di 
default vb per spremerlo al meglio....poi però bisogna mediare ...ed una 
griglia ci vuole.....ma usiamo al limite una flexgrid (H o no)
Nello specifico
Se USI un po di sql per interrogare un database
SELECT * FROM PincoPallino WHERE CampoRec=Condizione
e li fai popolare un recordset
puoi avere due condizioni
a) HO TROVATO e popolo il recordset
b) PRRRRRRR non ho trovato ed i recordset rimane vuoto
e quindi puoi abilitare o meno una voce del menu
Nei miei programmi è il caso tipico:
1)Popolo una griglia
2)l'uTonto clicca su una riga col tasto destro
        2a)recupero il recordset associato alla riga (che può essere il 
record della griglia o tabelle collegate ad esso dipendenti!)
        2b)Testo alcune condizioni (vuoto, pieno, Importo a saldo o a debi
to etc etc)
        2c) Abilito/Disabilito voci di un menu popup che  mostro alla
 mercè dell'uTonto
etc etc
Se usi il codice ti fai il mazzo (ma poi mica tanto) una volta sola 
...impari molto...elabori una serie di Sub/Funct (l limite ti fai una 
classe se proprio vuoi strafare) che riusi nei tuoi progs....un piccolo 
sforzo supplementare ma un grande controllo e riusabilità futura!
piccola Tip:
Se mai ti sposterai per questo progetto da Access usa DAO come tecnologia di 
accesso ai dati.
E' più veloce...se invece privilegi la portabilità ...usa ADO...è un po più 
lento ma basta cambiare una riga di codice e se l'app non fa cose strane 
sul database cambi automaticamente database
Ahloa!
-- 
Wodka si è mandrakizzato!!!

Ehm, sì ho capito quello che mi avete suggerito, ma sono anche un po'
uTonto...
cioè:
mi potreste postere di ricghe di codice per subordinare l'esito positivo
della ricerca all'enable?
es:
DataEnvironment1.rsPortafoglio.MoveFirst
DataEnvironment1.rsPortafoglio.Find "Campo = 'Pippo'"
If (che ci scrivo qui??? Come gli dico: se hai trovato Pippo...?) Then
    mnuMNU.Enable =  True
Else
    mnuMNU.Enable =  False
End If
Grazie,
Brio
P.S.: la prossima volto farò tutto col codice ma ormai ho già fatto un po'
di strata con questo programmino...

Nessuno mi da un altro aiutino????
:(
Ciao,
Brio