Ottimizzare casella combinata

di il
4 risposte

Ottimizzare casella combinata

Ho il seguente scenario tabelle:

tabella A
IDA (contatore)
A1
A2
A3

tabella B
IDB (contatore)
B1
B2
B3
B4
B5

tabella C
IDC
IDA (numerico)
IDB (numerico)
C1
C2

C è tabella di congiunzione fra A e B con relazioni
A.IDA uno-a-molti con C.IDA
B.IDB uno-a-molti con B.IDB

Ho la necessità di costruire una casella combinata sul campo C.IDB che peschi da B.IDB.
Non voglio visualizzare il campo IDB (questo lo so fare).
La casella combinata, quando si clicca sulla freccetta, deve mostrare tutti i campi B1, B2, B3, B4, B5, ma, dopo il rilascio del clic di scelta, voglio mostrare esteticamente B1, B2, B3 (considerati, volendo, un indice multicampo univoco).

Avendo una maschera/sottomaschera A/C, vorrei visualizzare tutti i campi di B: (B1, B2, B3), B4, B5 (tra parentesi tonde sarebbe appunto la casella combinata). Quando cambio il valore della casella combinata, vorrei vedere automaticamente cambiare i valori nei campi B4 e B5.

In casi analoghi, per costruire la casella combinata, è stato spesso suggerito di scegliere un campo "il più rappresentativo possibile", oppure costruire una query, in cui la concatenazione B1&B2&B3 fosse visualizzata in un campo solo.
Esiste un'altra soluzione "più a colpo d'occhio" soddisfacente? Oppure ho già detto tutto io?

4 Risposte

  • Re: Ottimizzare casella combinata

    Non ho afferrato la cosa...
    Hai modo di allegare un esempio...?
  • Re: Ottimizzare casella combinata

    OsvaldoLaviosa ha scritto:


    Avendo una maschera/sottomaschera A/C, vorrei visualizzare tutti i campi di B: (B1, B2, B3), B4, B5 (tra parentesi tonde sarebbe appunto la casella combinata). Quando cambio il valore della casella combinata, vorrei vedere automaticamente cambiare i valori nei campi B4 e B5.
    Forse ti depista un po' questa frase. Allora farò un esempio concreto che mi è passato per le mani.

    La tabella A è Clienti
    IDCliente
    Cognome
    Nome

    La tabella B è Apparecchi (per apparecchi si intendono Computer, Stampanti...Apparecchi in genere)
    IDApparecchio
    Marca
    Modello
    Tipo
    Campo4
    Campo5
    ...questi ultimi 2 campi ce li aggiungo io adesso, giusto per rendere il discorso più generale

    La tabella C è congiunzione, quindi Clienti-Apparecchi
    Nella maschera/sottomaschera Clienti/Clienti-Apparecchi l'utente ha necessità di selezionare l'IDApparecchio (ex IDB) con casella combinata. Naturalmente evitiamo di visualizzare il solito odioso numero ID insignificante. Per l'utente è importante poter vedere direttamente Marca-Modello-Tipo tutti insieme (perchè nessuno di quei campi da solo è in grado di rappresentare esaustivamente tutto il record), senza essere costretto ogni volta a dover cliccare nella casella combinata per vedere tutta la storia che c'è sotto. Questo è già un primo problema: ho detto che si può realizzare con la concatenazione campi...ma so che tu riservi altre sorprese-soluzioni...

    Problema 2: Nella sottomaschera voglio mostrare anche Campo4 e Campo5 che mi piacerebbe vedere aggiornarsi automaticamente in base al cambiamento di selezione, poi in coda, anche tutti gli altri campi di Clienti-Apparecchi: C1 e C2 (ovviamente indipendenti da tutto questo discorso).

    Può darsi che dico qualcosa di assurdo e/o incoerente, ma mi piacerebbe sapere dove sbaglio.
  • Re: Ottimizzare casella combinata

    RISPOSTA 1
    Si puoi fare una Query nella quale il 1° Campo è sempre ID, il 2° è una concatenazione di Marca Modello...
    
    SELECT ID, ([Marca] & " " & [Modello]) As Apparecchio FROM T1 Order By  ([Marca] & " " & [Modello])
    Ho ordinato per marca modello in quanto è più intuitivo...!
    Chiaramente andrai a definire la Colonna associata la 1° ma la renderai a LARGHEZZA=0.

    RISPOSTA 2
    Aggiungi alla Query sopra anche i campi 4 e 5 ma li definirai sempre a LARGHEZZA=0 cosi non si vedono.
    Poi inserisci 2 TextBox Bloccate in Editazione e nella loro origine Controllo scrivi:
    
    =[NomeCombo].Column(2)
    =[NomeCombo].Column(3)
    Questo perchè la Column(0) sarà ID e la Column(1) sarà il campo concatenato.

    La tecnica è questa per capirci:
    http://forum.masterdrive.it/access-79/controlli-bound-sincronizzati-in-cascata-45725/

    Dovrebebro aggiornarsi in automatico... l'unico problema potresti averlo in visualizzazione maschere continue... ma non ricordo bene, è molto che non uso questo sistema e dovrei provarlo...
  • Re: Ottimizzare casella combinata

    OK funziona, addirittura con le sottomaschere in visualizzazione Foglio dati. Io direi che dovrebbe funzionare anche con le maschere continue.
    A questo punto, giusto per completezza, si può dire che, anzichè utilizzare la strategia del campo concatenato, si potrebbe sempre selezionare su un campo solo e poi costruire una Text Box bloccata in più.
Devi accedere o registrarti per scrivere nel forum
4 risposte