Copiare il valore della seconda colonna di una combobox

di il
4 risposte

Copiare il valore della seconda colonna di una combobox

Buongiorno,
come suggerito da voi in un recente argomento che ho aperto, ho sostituito i miei campi di tabella che consentivano più valori, con campi che consentono un solo valore. Adesso, quindi, nelle combobox associate a quei campi non compare più la casellina di controllo accanto ad ogni valore della lista della combo, ma sono delle normalissime combobox con selezione di un solo valore.
Ed eccoci però al problema. La mia combo nelle proprietà ha 1 colonna associata ma su formato-->numero colonne, ha 2 (entrambe sono due campi della stessa tabella di origine). Io avevo impostato un codice che dopo selezione del valore della combo (della prima colonna), il relativo valore della seconda colonna veniva copiato in una casella chiamata "valore". Purtroppo questo codice funzionava quando potevo aggiungere più valori alla combo (consenti più valori-->sì), ma adesso non più.
Di sicuro ho commesso qualche errore... Voi sapete quale?

Grazie mille per la gentilezza.


Private Sub cmb1_AfterUpdate()
Dim ind As Long

    valore = 0
    
    For ind = 0 To Me.cmb1.ItemsSelected.Count - 1

        Me.valore = Me.valore + Me.cmb1.Column(2, Me.cmb1.ItemsSelected.Item(ind))

    Next
End Sub

4 Risposte

  • Re: Copiare il valore della seconda colonna di una combobox

    Non ha senso quello che fai
    sei sull'evento "dopo aggiornamento" della cmb1 che può avere un solo valore giusto? allora perchè cicli?
    poi che devi fare che non ho capito?
    hai + combo e devi sommarne i valori?
    allora in ogni afterupdate richiami un'unica funzione in cui cicli per le N combo e ne sommi i valori oppure fai tutto una sola volta al salvataggio della form (dipende dalle tue esigenze)
    però... hai abbandonato il campo multivalore ok ma in un "sistema" relazionale corretto, se le N combo fanno riferimento ad uno stesso concetto (dato che usavi un multivalore lo ritengo quasi scontato, avresti potuto/dovuto creare una tabella 1-N e quindi una subform associata e non N combo nella stessa form ... poi capisco che così sia + semplice ma poi quando devi aggregare te ne accorgi.
  • Re: Copiare il valore della seconda colonna di una combobox

    Per cambiare il Valore esposto dalla Combo, si deve modificare il contenuto del campo in tabella ed eseguire il Requery, NON SI CAMBIA il contenuto della Combo a meno che questa non sia UNBOUND ovvero NON ASSOCIATA ed impostata ad ELENCO VALORI.

    Sei sicuro di aver capito come funziona la cosa...?
  • Re: Copiare il valore della seconda colonna di una combobox

    Ciao.

    Non so se ho ben capito il problema.
    Ma mi sembra che usavi COLUMN per prelevare il secondo dato che ti interessava e poi salvarlo.
    In una combo box, tutte le colonne che hai inserito, vengono visualizzate, anche se poi vai a salvare solo un valore di un campo.
    Secondo me il tuo è solo un problema di visualizzazione e c'è un modo veloce per vedere a video solo i campi che ti interessano, indipendentemente dalle colonne che hai impostato nella combo box.
    Su LARGHEZZA COLONNE della combo box, devi mettere a 0 cm le colonne che non vuoi visualizzare.
    A video vedrai solo le colonne che non hai impostato a zero, ma tutte le altre verranno comunque caricate dal sistema e potranno essere usate per salvare il campo relativo, oppure per riempire altre caselle del form.

    Quindi seguendo il tuo approccio al problema puoi risolvere in questo modo.
    Esempio:

    hai quattro campi da recuperare
    idazienda, Nome rappresentante, azienda e telefono.
    ipotizziamo che per comodità nella combobox devi visualizzare "azienda", ma nella tabella di destinazione devi salvare "idazienda" ed in altre caselle di testo della maschera o del report, i valori "Nome rappresentante" e "telefono"
    Basta impostare la larghezza colonne della combobox in questo modo 0cm;0cm;9cm;0cm. Verrà visualizzato solo il valore della terza colonna, ma potrai salvare il valore della prima COLUMN ed usare anche tutti gli altri, in base alle tue esigenze.
    Spero di aver capito quello che intendevi fare.

    Anche se la stessa cosa la puoi fare in altre maniere, soprattutto se devi salvare solo un dato.
  • Re: Copiare il valore della seconda colonna di una combobox

    Ok grazie mille a tutti. Ho capito i vostri suggerimenti e sono ovviamente giusti. Io provavo a risolvere tutto tramite codice per fare prima, però devo riconsiderare un po' il tutto.
    Fratac: ti ringrazio per il suggerimento. Quello che proponi lo sto già usando ed è molto comodo. grazie cmq ancora.

    Grazie ancora a tutti
Devi accedere o registrarti per scrivere nel forum
4 risposte