Newsgroup: it.comp.appl.access
Titolo: [OT?] VBA e le matrici

Forse il msg è un po OT ma facendo parte di VBA ho provato a postarlo. Ho
creato un array in un modulo di Access 2000 in questo modo:
Pippo = Array("BO", "BQ", "BS", "BU", "BX", "BX", "CD")
Chiaramente se faccio
prova = Pippo(2)    'prova contiene "BQ".
ma come faccio ad ottenere per esempio dal numero 4 il corrispondente valore
nell'array cioè BU ? In pratica volevo chiedervi se siete a conoscenza di
una funzione del tipo:
ordine= fantafunzione.pippo("BU")    che mi restituisca in ordine il numero
4.
TIA            Mattia
--
P.S. Togli NOSPAM dall'indirizzo e-mail


Per il momento utilizzo una funz del genere per rilevare l'indice
Function trovaindex(mioarray, valore) As Integer
'Fornisco un array ed un valore da ricercare
'Restituisce l'indice cioč la sua posizione nell'array
'Si basa sul fatto di partire da 0 per l'indice degli array
' I valori restituiti presuppongono che il limite
' inferiore sia impostato su 1
quanti = UBound(mioarray)
For k = 0 To quanti
    pluto = mioarray(k)
    If mioarray(k) = valore Then
        trovaindex = k + 1
        Exit Function
    End If
Next k
trovaindex = "Elemento non trovato !!"
End Function
Comunque se ci fosse qualche funz di VBA sarebbe magari piů bello, veloce e
"professionale". Fatemi sapere.
Aloa                        Mattia


 4.
Devi scorrere la matrice fino a che lo becchi!
For cont = 0 To UBound(pippo)
    If pippo(cont) = "BU" Then MsgBox cont
Next
Saluti.
Luciano
(DOC)

 ha scritto nel messaggio
news:9fii85$44afn$1...@ID-86073.news.dfncis.de...

Scusa ma mi sono dimenticato la Option Base 1 all'inizio del modulo.
Comunque per il resto anch'io ero arrivato alla stessa conclusione (msg
precedente), speravo ci fosse qualche cosa di + veloce. Grazie comunque di
tutto.
Aloa                    Mattia


 Semmai ti da  "BS"...gli indici delle matrici partono da 0.
ROTFL!
0 1 2 3 ...
ricordi?
-- 
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------

ricordi?
Confesso che scrivendo quel msg ti ho pensato....:-))
Ciao.
Luciano

 tutto.
Anche se esistesse una funzione built-in del VBA, non potrebbe fare altro
che scorrere l'array per trovare l'elemento, quindi, in termini di
"complessità", sarebbe sempre lineare.
In realtà esistono delle alternative, ma bisogna vedere se il gioco vale la
candela. Per array relativamente piccoli, lascia stare... Alcuni
suggerimenti:
1) indicizzarti gli elementi della matrice (come fa Access per le tabelle)
2) accedere all'array con un sistema hashing, ricavando la posizione
direttamente dal valore dell'elemento (gestendo i duplicati, e gli elementi
che generano lo stesso codice nel "codominio")
3) ordinare l'array ed accederci con la ricerca bilineare, con complessità
log(n). Tieni presente però che ad ogni inserimento, devi riordinare
l'array.
--
Ciao, AntoGal
*************************************************
Gestione punti vendita (casse e pos NCR)
 
www.powerretail.it
-------------------------------------------------------------
per scaricare un gioco di DAMA ITALIANA
http://volftp.mondadori.com/italiani/galletta/
*************************************************