Combobox aggiorna casella di testo

di il
3 risposte

Combobox aggiorna casella di testo

Ho una maschera e vorrei che dalla scelta di una voce di una casella combinata, si aggiornasse una casella testo con il corrispondente campo dello stesso record entrambe (combobox e casella di testo) prendono i valori da un'altra tabella.

Qual è la maniera migliore per ottenerlo? Io avevo rimediato temporaneamente con 2 combobox a cascata, ma in questo caso il secondo campo lo si deve selezionare lo stesso anche se filtrato ed unico

3 Risposte

  • Re: Combobox aggiorna casella di testo

    Esponi più chiaramente:
    - come si chiama la maschera
    - come si chiama la combobox
    - come si chiama la tabella di origine da cui la combobox prende i dati
    - che dati visualizza la combobox
    - quante colonne ci sono nella combobox quando scegli un valore
    - rispiega cosa vuoi ottenere usando i nomi propri

  • Re: Combobox aggiorna casella di testo

    Maschera: Schede informative

    Combobox; CBOUFFICIO

    Tabella di origine da cui la combobox prende i dati; Uffici e competenze (formata da 3 campi: IDUC, UFFICIOUC, COMPETENZAUC)

    La combobox mostra la 2^ colonna di 3, in cui ci sono dati testuali (Nomi di uffici)

    Voglio che scegliendo un Ufficio sulla combobox "CBOUFFICIO" venga aggiornata la casella di testo "Competenza" col valore del campo "COMPETENZAUC" del record della Tabella "Uffici e competenze" in cui il campo "UFFICIOUC" corrisponde col valore della combobox (CBOUFFICIO).

    Ho provato come origine per la casella di testo:

    =DLookUp("COMPETENZAUC";"Uffici e competenze";"UFFICIOUC =" & [CBOUFFICIO])

    ma non funzionava, ma associando la 1^ colonna formata da campi numerici funziona l'origine con codice:

    =DLookUp("COMPETENZAUC";"Uffici e competenze";"IDUC =" & [CBOUFFICIO])

    A questo punto però si dovrà aggiornare anche il campo "UFFICIO" della tabella associata alla maschera, quindi ho inserito come codice come evento dopo l'aggiornamento della combobox:

    COMPETENZA.Value = DLookup("[COMPETENZAUC]", "Uffici e competenze", "[IDUC] =" & Me.CBOUFFICIO)
    UFFICIO.Value = DLookup("[UFFICIOUC]", "Uffici e competenze", "[IDUC] =" & Me.CBOUFFICIO)

    Ha funzionato, c'era un metodo migliore?

  • Re: Combobox aggiorna casella di testo

    Fai attenzione, se ho capito bene nella Combo selezioni un Valore, e vorresti valorizzare una TextBox con un campo relativo allo stesso Record.

    Se ho capito bene, quello che fai non serve a nulla, ovvero, non serve codice, basta che l'origine controllo della combo INCLUDA il campo in questione, puoi anche non visualizzarlo giocando con la LARGHEZZA=0 della colonna da usare, quindi nell'Origine Controllo della TextBox, ti basta mettere

    =NomeCombo.Column(NumeroColonna-1) ' Column è un Variant Array ZERO BASED INDEX da cui il motivo del [-1]

    Fai attenzione che questo controllo di fatto è considerabile come Controllo Calcolato, pertanto non deve essere salvato essendo già presente e correlato.

Devi accedere o registrarti per scrivere nel forum
3 risposte