steren ha scritto:
BUON GIORNO A TUTTI....
AVREI BISOGNO DI RISOLVERE UN PROBLEMA INERENTE AL VALORE DEL GRUPPO OPZIONII....
MI SPIEGO...
UTILIZZANDO LA PROCEDURA GUIDATA PER LA REALIZZAZIONE DI UN GRUPPO OPZIONI,
MI VIENE CHIESTI DI SCRIVERE LE ETICHETTE ES... BUONO; DISCRETO, BRUTTO, ECC...
POI MI CHIEDE SE DESIDERO IMPOSTARE UNA SCELTA PREDEFINITA
QUINDI MI FA VEDERE IL VALORE DI OGNUNA DELLE OPZIONI
INFINE MI CHIEDE DI SCIEGLIERE UN CAMPO DOVE VADA MEMORIZZATA "L'OPZIONE"
IL PROBLEMA è QUANDO VADO A "SPUNTARE" AD ESEMPIO LA PRIMA ETICHETTA "BUONO" SI AGGANCIA IL VALORE (1) ANZICHè IL TESTO DELL'ETICHETTA...
COME FACCIO A FAR IN MODO CHE INVECE DEL NUMERO DEL VALORE VENGA MEMORIZZATO UN TESTO CHE POI IO POSSO ATTACCARE CAMPO UNIONE IN UN TESTO??????????
GRAZIE TANTE PER LA COLLABORAZIONE....STEFANO
Purtroppo l'indicazione che ti è stata data dal collega [Nelsonblu] è estremamente semplificativa e non tiene conto di molti aspetti che vado a completare senza fretta.
Chiaramente quanto descrivi è corretto in quanto nella Logica di fruizione di un Gruppo Opzioni, che ha un'indicizzazione numerica, è come dici.
Ora la Regola vorrebbe che tu disponessi di una tabella con indice e descrizione proprio per rimanere in linea con quanto è la corretta gestione di dati.
Di fatto dovresti salvare l'indice non la descrizione, in quanto quella dovrebbe essere ricavabile
dalla Tabella correlata con il riferimento automatico in una Query, processo chiamato AUTOLOOKUP dei dati nei database relazionali.
Ora lo scenario che esponi in questo caso, che resta pur fattibile, richiede una variante al nomale uso dei controlli ASSOCIATI questo perchè si vuole salvare il Testo Descrizione non l'indice, ma il controllo OPZIONI è Indicizzato, e quanto esposto da [nelsonblu] chiaramente non può essere applicato ad un Campo associato in quanto l'opzione Choose(...) andrebbe come Origine Controllo, a quel punto meglio inserire un Calcolato in una Query, ma questo non corrisponde a SALVARE nulla... se non l'indice necessario ed indispensabile ma non conforme a quanto tu hai esposto.
Le considerazioni pertanto invadono sia il salvataggio del valore, fattibile come descritto anche
da [nelsonblu] anche se io non uso quelle istruzioni che hanno un limite numerico e sono poco portabili, quindi indico il mio modo di vedere sotto, ma anche il viceversa... ovvero rendere
compatibile ed allineata la Descrizione con il Selezionato che in alcuni casi potrebbe non esserlo se non previsto l'aggiornamento reciproco...!
Il controllo associato al campo(testo) in cui andrai a salvare la scelta derivata deve essere BLOCCATO non editabile ovviamente, e dovrai NON ASSOCIARE il Gruppo Opzioni a nessun campo.
Quindi su Evento DOPO AGGIORNAMENTO(AfterUpdate) dovrai scrivere qualche riga di codice che vada a salvare nel Controllo(testo) quanto riportato nell'etichetta RELATIVA alla selezione.
Private Sub NomeOptionBox_AfterUpdate()
Select Case Me!NomeOptionBox.Value
Case Is = 1
Me!NomeTextDesc.Value = "ETICHETTA 1"
Case Is = 2
Me!NomeTextDesc.Value = "ETICHETTA 2"
Case Is = 3
Me!NomeTextDesc.Value = "ETICHETTA 3"
End Select
End Sub
Ora questo ti impone altre 2 riflessioni:
- non puoi usare in una maschera CONTINUA questo metodo da te ipotizzato, li devi obbligatoriamente usare il metodo Relazionale descritto inizialmente.
- devi pensare che quando scorri i Records oltre a vedere il Controllo TextDesc corretto solo per il fatto che è associato ad un campo, devi AGGIORNARE l'indice dell'OPTIONBOX altrimenti hai la descrizione difforme dalla selezione.
Per questo devi generare il codice opposto a quello precedente su 2 Eventi, Evento LOAD per aggiornare all'apertura ed Evento Current di Maschera per quando ti sposti di RECORD, ma valutando il NEWREC
Private Sub Form_Current()
If Not Me.NewRecord Then
Select Case Me!NomeTextDesc.Value
Case Is="Etichetta 1"
Me!NomeOptionBox.Value=1
Case Is="Etichetta 2"
Me!NomeOptionBox.Value=2
Case Is="Etichetta 3"
Me!NomeOptionBox.Value=3
End Select
End If
End Sub
Ti ho esposto in modo tecnico criteri e considerazioni che possono darti chiari concetti di autonomia sul sistema, ora valuta tu.