Newsgroup: it.comp.appl.access
Titolo: scomporre vettore di dati

Ciao a tutti,
come posso scomporre un vettore di dati (ex: 232452 in 23 24 52), mostrare
singoli valori in una casella combinata e associare ogni singola coppia ad
un ID corrispondente (ex 23 a ID 23 di un'altra tabella di descrizione
prodotto).
Non ci riesco...
grazie per l'aiuto

 prodotto).
Ma quale dovrebbe essere la regola di scomposizione? I campi sono sempre da sei cifre, e
vanno scomposti sempre in tre campi da due cifre?
Ciao. Claudio.

Grazie per la risposta...
Dunque, le cifre totali possono variare, ma sono sempre multipli di due. In
poche parole la lunghezza della stringa cambia, ma va sempre scomposta in
numeri di due cifre.

 numeri di due cifre.
Allora, io farei cosě:
 - Suppongo di avere una tabella chiamata MercurioDati con un campo Vettore (che contiene
il vettore da scomporre)
- Suppongo di avere una tabella chiamata MercurioDesccrizioni, con due campi ID numerico e
Descrizione Testo, che per ogni ID di due cifre contenga una descrizione.
- Creo una maschera chiamata MercurioMaschera, con origine record MercurioDati e tre
campi:
    - Vettore, di tipo Casella di testo, con origine dati Vettore
    - VettoreScomposto, di tipo combo, non associata
    - Descrizione, di tipo Casella di testo, non associata
Con queste premesse, associo all'evento Su corrente della maschera il seguente codice:
Private Sub Form_Current()
If Not Vettore Then
    With VettoreScomposto
        .RowSource = Left(Vettore, 2)
        For i = 3 To Len(Vettore) Step 2
            .RowSource = .RowSource & ";" & Mid(Vettore, i, 2)
        Next i
        VettoreScomposto = .ItemData(0)
        Descrizione = DLookup("Descrizione", "MercurioDescrizioni", "ID = " &
.ItemData(.ListIndex))
    End With
Else
    VettoreScomposto.RowSource = ""
    VettoreScomposto = ""
    Descrizione = ""
End If
End Sub
e all'evento Su modifica di VettoreScomposto il seguente:
Private Sub VettoreScomposto_Change()
With VettoreScomposto
    Descrizione = DLookup("Descrizione", "MercurioDescrizioni", "ID = " &
.ItemData(.ListIndex))
End With
End Sub
Questa mi sembra una base sulla quale partire per sviluppare la tua idea.
Ciao. Claudio.

Grazie proverň a lavorarci sopra....ti farň sapere.
Intanto ti chiedo un ulteriore aiuto su questo problemino da neofita con una
query di selezione.
Ho due tabelle :
Tab1:                                                    Tab2
Id: contatore                                        Id:Numerico
Numero treno: Testo                            Nome Impianto:Testo
Data:    Data                                         A Bordo: Numerico
 Uso la tab1 come intestazione comune a
tutti i treni la tab2, per ogni treno, per immettere tutti gli impianti del
percorso con il numero delle persone a bordo.
La relazione tra le due č uno a molti tramite id.
Ora vorrei poter estrarre, per ogni treno ad una certa data, il numero di
viaggiatori Max a bordo e in quale impianto l'ho avuto.
Riesco ad ottenere il numero massimo, ma nel momento che cerco di avere
anche l'impianto relativo, la query mi restituisce tutti gli impianti del
persorso.
Grazie per l'aiuto

 Data:    Data                                         A Bordo: Numerico
Ciao. Ho qualche problema di comprensione su come popolare le tabelle. Riesci a farmi un
esempio, con il minor numero di record possibile?
Ciao. Claudio.

Ciao Claudio,
sono riuscito a risolvere il problema, grazie...tuttavia dopo aver provato
la tua routine per la caselle combinata ed il vettore di dati, ahimč, ho
sempre un errore di debug numero 424 "oggetto mancante.
Nel campo vettore si visualizza l'intero numero, ma sia la combo che il
campo descrizione rimangono vuoti.????
puoi fare qualcosa ??
Grazie

la riga segnalatami dal debug č:  .RowSource = .RowSource & ";" &
Mid(vettore, i, 2)

 Mid(vettore, i, 2)
Secondo me non hai seguito esattamente le istruzioni. L'errore 424 te lo beccheresti se
usassi, per esempio, la sintassi .RowSource senza essere all'interno di un blocco With.
Però il blocco With dovresti averlo, altrimenti fallirebbe il precedente riferimento a
.RowSource (due righe più su), e non arriverebbe alla riga da te segnalata.
Sono abbastanza certo del funzionamento (l'ho provata). Controlla nuovamente bene il
codice e le istruzioni, ed eventualmente posta la funzione Form_Current facendo tu questa
volta un copia/incolla.
Come soluzione estrema puoi mandarmi l'.mdb, e vediamo che cosa c'è che non va.
Ciao. Claudio.

Ciao,
Ok funziona, c'era solo da andare a c apo con una riga e da impostare
"elenco valori" in rowsourcetype.
Grazie ancora, alla prossima

 "elenco valori" in rowsourcetype.
Vero. Questo mi ero dimenticato di dirtelo. Qualcosa sfugge sempre. :-)
Ciao. Claudio.