Modifica campo in casella combinata in base a criterio

di il
9 risposte

Modifica campo in casella combinata in base a criterio

Buongiorno a tutti, sto cercando di portare a termine un piccolo lavoro ma mi sono bloccato su una casella combinata.
Arrivo subito al dunque con un esempio pratico:

Ho una casella combinata dove la seconda colonna sta ad indicare la qualifica di alcuni nominativi e vorrei che se questa colonna contiene valori specifici come MEDICO CAPO, OPER. TEC. C., REV. TEC. C.,, allora la rappresentazione di queste qualifiche deve essere rispettivamente M.C., O.T.C., R.T.C., in pratica deve essere prese solo il primo carattere di ogni qualifica e renderlo puntato.

L'origine riga è in SQL, mentre i dati provengono da una query.
Non so se serve altro.

Grazie.

9 Risposte

  • Re: Modifica campo in casella combinata in base a criterio

    Perchè nella Tabella da cui prendi i dati non aggiungi un campo che po valorizzi con il Dato da Mostrare...?
    Esempio
    
    IdNom   Nominativo      NominativoDaMostrare
    1       Medico Capo     M.C.
    2       OPER. TEC. C.   O.T.C.
    La combo avrà sempre 2 Colonne ma invece di usare la 2° userai la 3° come interfaccia...
  • Re: Modifica campo in casella combinata in base a criterio

    Diciamo che potrebbe essere una giusta soluzione. La difficoltà adesso è un'altra.
    Queste qualifiche vengono assegnate attraverso una scelta fatta in un'altra combo. Quindi bisognerebbe automatizzare il campo NominativoDaMostrare in modo che se a un nuovo nominativo gli assegno la qualifica di MEDICO CAPO, allora il campo NominativoDaMostrare si deve aggiornare in automatico in M.D. e così via per tutte le altre qualifica. E' un po' un problema per me. Tu sai darmi un consiglio al riguardo?
  • Re: Modifica campo in casella combinata in base a criterio

    UN database Relazionale con le Chiavi Primatrie/Chiavi Esterne ha proprio lo scopo di evitare quello cha hai appena definito un problema... forse dovresti rifletterci.
  • Re: Modifica campo in casella combinata in base a criterio

    Notavo che potrei inserire una condizione nell'evento AfterUpDate della combo QUALIFICA che verifica la qualifica inserita e se è uguale a MEDICO CAPO allora riporta nella combo NominativoDaMostrare il valore M.D.
    Volevo chiederti se mi sai dare un suggerimento per il codice, in modo inserire nella condizione IF tutte le qualifiche da verificare.
    In pratica la mia idea sarebbe quella di codificare così
    Private Sub QUALIFICA_AfterUpdate()
    If Me.qualifica.Value = "MEDICO CAPO" Then         '------->>>qui dovrei inglobare anche le qualifiche OPER. TEC., COLL. TEC., REV. TEC. ecc....
        Me.QUALIFICA_DA_MOSTRARE.Value = "M.D."    '------->>>qui dovrei inglobare anche le qualifiche OP. TEC., C. TEC., R. TEC. ecc....
    End If
    End Sub
    
  • Re: Modifica campo in casella combinata in base a criterio

    C.V.D. non hai capito... e cerchi un accrocchio per fare una cosa sbagliata.
    Ti lascio lavorare al tuo metodo.
  • Re: Modifica campo in casella combinata in base a criterio

    Tu come faresti? Giusto per capire il percorso da intraprendere.
  • Re: Modifica campo in casella combinata in base a criterio

    @Alex ha ragione e la questione mi sembra molto più semplice di come te la vuoi complicare tu. Non occorre VBA. Solo ottimizzare query e relative caselle combinate. Ora a me sfugge qualcosina qui

    alexps81 ha scritto:


    L'origine riga è in SQL, mentre i dati provengono da una query
    Il campo con le iniziali puntate è frutto di una funzione oppure lo digiti manualmente in un campo della stessa tabella Qualifiche?
    Comunque sia, se il tuo gioco di relazioni-tabelle è corretto, si tratta solo di ottimizzare le Proprietà delle caselle combinate.
  • Re: Modifica campo in casella combinata in base a criterio

    Il campo con le iniziali puntate è frutto di una funzione oppure lo digiti manualmente in un campo della stessa tabella Qualifiche?
    Tipo origine riga: Elenco Valori
    Origine riga: "A.S.";"ASS.";REV. C.";"COLL. TEC." ecc...

    Cosa intendi per ottimizzare le Proprietà delle caselle combinate?
  • Re: Modifica campo in casella combinata in base a criterio

    alexps81 ha scritto:


    Tipo origine riga: Elenco Valori
    Origine riga: "A.S.";"ASS.";REV. C.";"COLL. TEC." ecc...
    Sicuramente qualcosa di errato parte proprio da qui. Elenco Valori si usa solo quando i valori sono "pochi" (max 3-4). Normalmente è sempre preferibile appoggiarsi su una tabella o query.

    Vediamo di mettere un po' di ordine. Io farei così:
    1. Innanzitutto io prevederei una tabella Qualifiche con i seguenti campi
    IDQualifica (numerazione automatica, chiave primaria)
    Qualifica
    Sigla (qui ci scrivi le corrispondenti sigle puntate...diciamo che io preferirei scriverle a mano piuttosto che delegare questo compito a una funzione in una query...)
    ...sulla falsariga del suggerimento di @Alex...
    2. Crea una query in visualizzazione struttura, importi la tabella Qualifiche, poi trascini i campi nel seguente ordine: IDQualifica, Sigla, Qualifica. Poi direi di mettere Ordinamento: Crescente su Sigla. Salva la query con nome QualificheOrdinate
    3. Nella tabella dove prevedi la casella combinata, devi avere il corrispondente campo numerico IDQualifica
    4. Il campo IDQualifica nella TuaTabella lo imposti come "casella combinata", poi scrivi le seguenti proprietà:
    Tipo origine riga: Tabella/query
    Origine riga: QualificheOrdinate
    Colonna associata: 1
    Numero colonne: 3
    Larghezza colonne: 0 cm; 2cm; 3 cm (è importante che la prima (IDQualifica) sia 0 cm)
    Larghezza elenco: 5 cm (il totale di Larghezza colonne)
    5. Salva tutto

    alexps81 ha scritto:


    Cosa intendi per ottimizzare le Proprietà delle caselle combinate?
    La risposta sta nel punto 4.
Devi accedere o registrarti per scrivere nel forum
9 risposte