Newsgroup: it.comp.lang.visual-basic
Titolo: tempi attesa

Anzitutto un saluto a tutto il Ng,
di ritorno dalle vacanze, mi sono trovato con un grosso problema da
risolvere.
Devo creare una lista di nominativi in un combobox di VB6 collegandomi a
deifogli di lavoro excel (sono circa 12000 nomi per foglio + o -).
Ho dichiarato l'oggetto foglio excel (xlApp) con set e tutto funziona
ciclando sulla colonna dove si trovano i nominativi, il problema sono i
tempi d'attesa circa 30 sec per lista  (e sono varie liste).
Domanda: senza utilizzare controlli ado rdo ecc... come posso limitare i
tempi d'attesa!?
Grazie a quanti vorranno rispondermi.
Sotto es del listato
    xlApp.Application.Workbooks.Open (MyPathDati & varNominativi)
    Set MySheet = xlApp.Application.Workbooks(varNominativi).Sheets(1)
    With MySheet
      For i = 0 To 13000
        MyCell = .Cells(i + 1, 1).Value
        Select Case MyCell
          Case Is <> ""
             cmbCognome.AddItem MyCell                   '  ilcogn. si trova
sulla 1 cella
             cmbNome.AddItem .Cells(i + 1, 2).Value    ' il nome si trova
sulla 2 col
          Case Else
             Exit For                ' esce se non trova + nominativi
         End Select
      Next i
    End With

 deifogli di lavoro excel (sono circa 12000 nomi per foglio + o -).
CUT
ciccio io non so chi č il pazzo che ti commissiona un Combo con 12000 nomi!
Un tipo cosě va rinchiuso e buttata via la chiave!
Io me lo immagino a scorrere il combo.......cerchiamo "Matilde
Mengacci".........e scorri 6000 nomi!
Oppure ".....oh vediamo chi sta a Firenze.....e scorri 12000 nomi!"......un
tipo cosě č la gioia di ogni oculista!
FILTRA! FILTRA!
Una procedura che ha bisogno di un combo di 12000 nomi ...NON č
concettualmente sbagliata E' OPERATIVAMENTE (praticamente) sbagliata!

 tipo così è la gioia di ogni oculista!
...scusa ma hai mai sentito parlare di completamento automatico, tu scrivi
ME nel combobox et voilà per magia appare MECCANICO, scrivi MEN e colmo dei
colmi appare MENGACCI o giù di li.
E' pur vero che esistono gli omonimi (stesso cognome e stesso nome) ma in
questo caso ci vengono in soccorso altri campi univoci (data nascita,
residenza, ecc....) si fa quasi prima che non immettendo il cognome ed
attendendo che la ricerca (filtri ecc...) ci tiri fuori il/i risultati
(soprattutto se non si hanno a priori chiavi univoche).
Comunque il problema è che in excel l'operazione è velocissima + o - 2 sec,
ma quando lascio che a gestire il tutto sia VB6 si pianta tutto. Dai, lo so
che ce la puoi fare, dimmi che hai una soluzione sottomano!
Ciao da ciccio "the original"

CUT
Veramente il problema č tuo ce la devi far te!
se tanto hai dei filtri...importa il foglio dentro un db e fatti tutti i
filtri (query) che vuoi....va bene anche access!
anzi Access + DAO(molto veloce)
...considera che adesso istanzi excel e fai partire VB + Excel....tanto vale
o far tutto dentro Excel (c'č il vba)...o dentro vb6!
Cmq....č sempre sbagliato il combo(per me) se hai molti dati...completamento
o no!
Dai che ce la puoi fare!
;-)

     End With
    Cioe'?... Hai una combo per il cognome ed una per il nome? 12.000 +
12.000 = 24000 da riempire? E sono indipendenti o sincronizzate? Cioe' se i
nomi sono:
        De' Paperoni, Paperone
        De Pippis, Pippo
l'utente puo' tranquillamente selezionare cognome: De' Paperoni, nome:
Pippo, per sentirsi dire che non esiste? E riempirai cmbNome con centinaia
di Mario, Paolo, Marco, Maria, Anna?...
    C'e' qualcosa che non mi quadra...
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------


...perchè scusa...
il combo principale e cmbCognome, l'altro è bloccato (.locked = true), se io
selezionerò un cognome l'evento bropbutton mi farà apparire il nome
nell'altro combo.
Infatti come ben puoi notare se tu riempi in contemporanea due combo con
elementi della stessa riga del foglio excel (De' Paperoni- cella 1,1;
Paperone -cella 1,2 ; per capirci) questi avranno lo stesso numero di indice
nei combo e quindi se ne selezioni uno e l'altro (o gli altri) si
selezionerà da solo.