Newsgroup: it.comp.appl.access
Titolo: Dividere stringa e utilizzare il risultato come variabile

Salve a tutti. In un campo di una tabella ho un elenco di nomi di campi. Questo mi serve in quanto devo, a seguito di una ricerca sapere quali campi compilare in una maschera. Pertanto vorrei riuscire a fare in modo da mettere in una matrice (penso sia la via più percorribile) l'elenco e far compilare i campi omonimi della maschera. Ho provato con la funzione EstraiParola di Claudio trovata in questo gruppo ma mi restituisce tutte le parole del campo e poi non so come richiamarla per compilare la mia maschera con codice del tipo me.controls(miamatrice(1))=xyz.
Qualcuno ha qualche idea?

 Qualcuno ha qualche idea?
 
Ho trovato una porzione di codice che potrebbe fare al caso mio e l'ho adattata così:
MascheraRiferimento = DLookup("[formRiferimento]", "T_Ricerca", "[Nome]= " & "'" & NomeMaschera & "'")
            CampidaCompilare = DLookup("[DaCompilare]", "T_Ricerca", "[Nome]= " & "'" & NomeMaschera & "'")
 
            IndArry = Split(CampidaCompilare, ";")
 
            For i = 0 To UBound(IndArry) - 1
            Debug.Print IndArry(i)
 
            Next
            For i = 0 To UBound(IndArry) - 1
            Forms(MascheraRiferimento).Controls(IndArry(i)) = Me.Elenco0.Column(i)
            Next
 
In questo modo nella tabella T_Ricerca inserisco i campi da compilare e il codice li va a prelevare direttamente lì. Dovrò però adattare la tabella in modo che i campi presenti nella listbox Elenco0 siano in ordine con i campi da compilare. Se qualcuno ha qualche idea migliore...
Ciao


Questo è quello che funziona a me:
  MascheraRiferimento = DLookup("[formRiferimento]", "T_Ricerca", "[Nome]= " & "'" & NomeMaschera & "'")
            CampidaCompilare = DLookup("[DaCompilare]", "T_Ricerca", "[Nome]= " & "'" & NomeMaschera & "'")
 
            IndArry = Split(CampidaCompilare, ";")
 
            For i = 0 To UBound(IndArry) - 1
 
 
            Forms(MascheraRiferimento).Controls(IndArry(i)) = Me.Elenco0.Column(i)
            Next
 

 Qualcuno ha qualche idea?
 
La mia idea e' quella di raggruppare i vari controlli, linkati ai campi, in una "matrice" ( un raggruppamento che permette di specificare ad esempio me.Textbox(x) ) A quel punto avesti una serie di valori ( estrarre numeri al posto di parole credo sia anche piu' semplice ) che potresti utilizzare per identificare i controlli interessati.


Potrebbe anche essere. Però nella maschera di inserimento che devo compilare ho dei campi collegati ad una tabella. La porzione di codice fa parte di una sub più ampia che comprende alcune casistiche. 
Ho realizzato una maschera di ricerca con una listbox per così dire "universale". In una qualsiasi form di inserimento, metto un pulsante che apre questa form di ricerca e allo stesso tempo valorizza una variabile (NomeMaschera). Il codice parte alla ricerca di tale variabile con un Dlookup all'interno di una tabella (T_Ricerca) nella quale sono riportati alcuni parametri da inserire nella maschera di ricerca (n. colonne della listbox, origine dati, larghezza delle colonne, ecc...). In questo modo all'apertura della maschera di ricerca la listbox si popola con i dati che mi interessano il quel momento. Allo stesso modo quando faccio doppio click sulla listbox, il codice va a verificare nella T_Ricerca se in quel caso lì mi interessa spostarmi da un record ad un altro oppure se deve compilare dei campi particolari. E' proprio in questo caso che entra in gioco la matrice. Nella T_Ricerca ho inserito un campo che mi dice quali sono i campi della form di inserimento da compilare. Siccome possono essere più d'uno, devo caricare una matrice e poi farla leggere ed utilizzare i "record" della matrice come se fossero nomi di campi. Campi che vengono così popolati con quanto è presente nella listbox. Lo so che sembra contorto, ma mi ci trovo bene. Uso una maschera solo, con l'unica noia di andare a compilare la mia tabella T_Ricerca con tutti i criteri che mi interessano. 
Pertanto come sto facendo adesso, mi serve avere i nomi più che i numeri.
Grazie della risposta