VALORE GRUPPO OPZIONI

di il
9 risposte

VALORE GRUPPO OPZIONI

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

9 Risposte

  • Re: VALORE GRUPPO OPZIONI

    Si usa Choose
    nel tuo caso, ponendo che le opzioni si chiamano Cornice0 nel controllo [miotesto] ci devi scrivere
    =Choose([Cornice0];"buono";"discreto";"brutto")
  • Re: VALORE GRUPPO OPZIONI

    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.
  • Re: VALORE GRUPPO OPZIONI

    nelsonblu ha scritto:


    si usa Choose
    nel tuo caso, ponendo che le opzioni si chiamano Cornice0 nel controllo [miotesto] ci devi scrivere
    =Choose([Cornice0];"buono";"discreto";"brutto")
    Grazie...... non so se ho fatto bene...sono andato sulle proprietà del casella di testo... che dovrebbe attaccare il campo unione (il testo)...
    ho copiato il tuo codice all'interno della casella origine controllo della finestra dati.....
    (mio testo) non l'ho trovato.....
    così facendo all'interno della maschera compare il testo e non il numero ma attando il campo unione ad un file di testo (.doc) attacca sempre il numero....

    Potresti aiutarmi??????
    Grazie....
  • Re: VALORE GRUPPO OPZIONI

    @Alex ha scritto:


    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.
    grazie mille ma non sono molto esperto.... (ovviamente non sono programmatore).... quindi non ci ho capito un gran chè.....
    se potresti fare un passo a passo???????
    Grazie...
  • Re: VALORE GRUPPO OPZIONI

    steren ha scritto:


    .....
    grazie mille ma non sono molto esperto.... (ovviamente non sono programmatore).... quindi non ci ho capito un gran chè.....
    se potresti fare un passo a passo???????
    Grazie...
    Premessa che la soluzione soprariportata in alternativa ovviamente non può funzionare come ti ho spiegato, principalmente perchè non salva nulla, ma anche per il resto...

    Mi pare che una preparazione di BASE sia necessaria, i Forum non servono per Corsi ONLINE.
    Ti ho fatto una spiegazione che se avessi qualche barlume di BASE sarebbe chiara, reputo che il passo successivo sia a tuo carico.
  • Re: VALORE GRUPPO OPZIONI

    steren ha scritto:


    nelsonblu ha scritto:


    si usa Choose
    nel tuo caso, ponendo che le opzioni si chiamano Cornice0 nel controllo [miotesto] ci devi scrivere
    =Choose([Cornice0];"buono";"discreto";"brutto")
    Grazie...... non so se ho fatto bene...sono andato sulle proprietà del casella di testo... che dovrebbe attaccare il campo unione (il testo)...
    ho copiato il tuo codice all'interno della casella origine controllo della finestra dati.....
    (mio testo) non l'ho trovato.....
    così facendo all'interno della maschera compare il testo e non il numero ma attando il campo unione ad un file di testo (.doc) attacca sempre il numero....

    Potresti aiutarmi??????
    Grazie....
    Steren [miotesto] e [Cornice0] erano esempi non sapendo come sia chiamano la tua casella di testo e la tua cornice. Al posto di miotesto ci devi mettere il nome della tua casella di testo
  • Re: VALORE GRUPPO OPZIONI

    @Alex ha scritto:


    steren ha scritto:


    .....
    grazie mille ma non sono molto esperto.... (ovviamente non sono programmatore).... quindi non ci ho capito un gran chè.....
    se potresti fare un passo a passo???????
    Grazie...
    Premessa che la soluzione soprariportata in alternativa ovviamente non può funzionare come ti ho spiegato, principalmente perchè non salva nulla, ma anche per il resto...

    Mi pare che una preparazione di BASE sia necessaria, i Forum non servono per Corsi ONLINE.
    Ti ho fatto una spiegazione che se avessi qualche barlume di BASE sarebbe chiara, reputo che il passo successivo sia a tuo carico.
    Ok prometto che m'impegno.....
  • Re: VALORE GRUPPO OPZIONI

    steren ha scritto:


    @Alex ha scritto:


    steren ha scritto:


    .....
    grazie mille ma non sono molto esperto.... (ovviamente non sono programmatore).... quindi non ci ho capito un gran chè.....
    se potresti fare un passo a passo???????
    Grazie...
    Premessa che la soluzione soprariportata in alternativa ovviamente non può funzionare come ti ho spiegato, principalmente perchè non salva nulla, ma anche per il resto...

    Mi pare che una preparazione di BASE sia necessaria, i Forum non servono per Corsi ONLINE.
    Ti ho fatto una spiegazione che se avessi qualche barlume di BASE sarebbe chiara, reputo che il passo successivo sia a tuo carico.
    Ok prometto che m'impegno.....
    sono le 02.53 e come promesso mi sono applicato e grazie ai suoi consigli sono riuscito nel mio intento.....Grazie
  • Re: VALORE GRUPPO OPZIONI

    steren ha scritto:


    ...
    sono le 02.53 e come promesso mi sono applicato e grazie ai suoi consigli sono riuscito nel mio intento.....Grazie
    Ottimo complimenti per la caparbietà... mi ricorda molto i miei approcci ad Access... ho fatto molte mattine...
Devi accedere o registrarti per scrivere nel forum
9 risposte