Newsgroup: it.comp.lang.visual-basic
Titolo: list view risolto....ma combo box....

ho già risolto ...grazie comqe a tutti..però ne approfitto per porre un
altro quesito..
Come faccio per caricare i dati di un db in access in un combo box ?


Do While Not tabella.EOF
        combo.AddItem (tabella!campo)
        tabella.MoveNext
 Loop
ovviamente prima devi aprire e settare la tabella

  Loop
Giusto per pignoleria... ma c'è un 30% in più di performance de non si 
utilizza EOF nei loop.
Magari cambiando il tuo codice in:
N=tabella.RecordCount
If N>0 Then
    For I=1 to N
       combo.AddItem tabella!campo
    Next I
End If
-- 
Nella vita una sola cosa è certa: se la storia ci ha insegnato qualcosa, 
è che si può uccidere chiunque. (Micheal Corleone)

 N=tabella.RecordCount
giusto per ripignoleria... c'č un 30% di recordset che non sanno cosa č il
recordcount... e sono quelli che di solito offrono le migliori prestazioni.
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 
-- 


 Giusto per ri-ripignoleria... si parlava di un database Access...
E allora?

 Giusto per ri-ripignoleria... si parlava di un database Access...
anche con access hai il cursore lato server e forwardonly, se usi ado.
sì, lo so che è lato server per finta, ma il recordcount non te lo dà lo
stesso.


 Giusto per ri-ripignoleria... si parlava di un database Access...
se non sbaglio alcuni cursori ado non dispongono del recordcount, qualunque
sia il db sotto. credo che sergio intendesse questo.
ciao, j.

 E allora?
E allora il recordcount c'è. O sbaglio?


E comunque tutto questo è partito dal mio consiglio di non usare EOF nei 
loop.
E alcuni recordset non hanno RecordCount. E vabè.... ma forse è inteso 
che sto parlando dei casi in cui esiste recordcount...


 che sto parlando dei casi in cui esiste recordcount...
mi sono limitato a puntualizzare :-)


> mi sono limitato a puntualizzare :-)
Deh ih ih oh! Hai fatto benone :)


 che sto parlando dei casi in cui esiste recordcount...
A parte, come da altri detto, che alcuni cursori ADO (e anche alcune
istruzioni SQL per altri database) non rendono il recordcount, tu lo stai
usando come un contatore di records, rilevato all'inizio e come tale
mantenuto. Un recordset dinamico (proprio per questo) non renderà il
recordcount, ma supponi di recuperarne l'omologo significato in altro modo
(per esempio con una Select Count(*) ...) e lo metti in N.
Se il recordset è dinamico ti cambia (come puntatore e come numero di
records) intanto che stai lavorando sul recordset. Il test su EOF, invece, è
reale, ovvero ti dice se stai a fine records, ben diverso dal dire "se hai
contato i records come rilevati all'inizio".
In altre parole, il recordcount (o risultato simile) andrebbe usato solo per
gestire un'eventuale barra di scorrimento, nemmeno precisissima.
Tieni inoltre conto che molti comportamenti (compresa, appunto, la
restituzione del recordcount) dipendono dal motore di gestione e/o dal
provider ADO adottato. Se oggi usi il recordcount perchè l'hai, che succede
al tuo programma se domani cambi database e/o provider?

 
Mi spiegate questo codice? Come si scorre nel recordset senza una 
istruzione move?
grazie
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 istruzione move?
battuta cattiva: per risparmiare un altro 30% del tempo di elaborazione.
in realtà, semplicemente, non me ne ero accorto :-(
(e mica solo qui: ho dovuto prendere come abitudine, quando faccio un loop
del genere, di scrivere il movenext come prima istruzione, se no lo
dimentico.)


 
Sfortunatamente anch'io lo dimentico spesso, di solito quando nel ciclo 
  viene aggiunto un record ad una tabella.
"E aspetto ... e come e' lento oggi ... forse devo modificare questa 
routine ... 'Out of memory' ?!?"
:-)


 routine ... 'Out of memory' ?!?"
e' perche' non tieni l'iconina del taskman nel tray.
lo facessi, la stanza si illumina a giorno :)
ciao, a.

 
:-)
