Casella combinata in maschere continue

di il
4 risposte

Casella combinata in maschere continue

Salve, ho un problemino che non riesco a risolvere.
ho due tabelle, la tabella lavoro e la tabella inconveniente collegate tra loro tramite relazione 1 a molti.
la tabella inconveniente è formata dai campi id , inconveniente , id_lavoro

quello che voglio fare è una maschera continua con la lista dei lavori ed aggiungere ad ogni riga una casella combinata che mostri gli inconvenienti di quel lavoro.
ho creato la maschera continua con la lista dei lavori, ed ho aggiunto una casella combinata non associata il problema è che non so come recuperare l'id della riga per poterlo usare come condizione nella query che popola casella combinata.
ho provato con il generatore automatico e mi tira fuori questo
Maschere![Maschera1]![ID] 
che mi popola le caselle combinate, ma hanno tutte le stesso contenuto ossia quello relativo al primo record della maschera.

come posso risolvere?

4 Risposte

  • Re: Casella combinata in maschere continue

    Salve,
    A mio parere devi mettere mano ad una modifica strutturale per normalizzare il tuo db.
    La prima cosa da fare è quella della scelta dei nomi di campi ed oggetti come dire convenzionali:
    1 i nomi degli oggetti vanno usati al plurale mentre quelli dei campi al singolare
    2 gli oggetti vanno preceduti da una desinenza sintetica senza spazi per le Tab io uso Tb per cui la tua diventa TbLavori
    3 gli Id vanno nominati sempre così IdLavoro, IdInconveniente cioè seguiti sempre dal nome Tabella cui si riferiscono.
    4 sui nomi va perso un po di tempo perchè questi siano più corti e indicativi possibile

    Detto questo, che ti può tornare utile in seguito, la tua struttura la vedrei così

    TbInterventi....Questa dovrebbe essere origine dati della maschera principale (Lato 1)
    IdIntervento ...ChiavePrimaria o Pk
    DataIntervento
    NomeCliente...etc

    TbOperazioni...Vedi tu se trovi un nome piu corto (Questa rappresenta il lato Molti della TbInterventi)
    IdOperazione...ChiavePrimaria
    IdIntervento ...ChiaveEsterna o Fk
    IdDifetto ...ChiaveEsterna o Fk
    ...etc

    TbDifetti...Questa Tab non deve essere relazionata con nessun'altra non è altro che un elenco dei difetti
    IdDifetto
    DescrizioneDifetto
    ...altri campi vedi tu

    Fatto questo creata la maschera Interventi e quella continua Operazioni io le avrei chiamate MkInterventi ed MkOperazioniStm devi relazionare CampiMaster/Secondari il Solo Campo "IdIntervento"

    La combo che io sono solito chiamare con la desinenza Cc in questo caso la "CcDifetti" preleva i dati dalla TbDifetti e va associata all'IdDifetto della TbOperazioni.

    Se crei anche una Maschera Continua con origine TbDifetti quindi MkDifetti e nella combo la chiami alla voce:
    Dati>Maschera di modifica voci : la puoi chiamare per le modifiche.
    Saluti e buon lavoro.
  • Re: Casella combinata in maschere continue

    A livello logico... non comprendo molto quanto fai.

    Se il MainDriver, la tabella lato 1, è LAVORI, io eventualmente visualizzerei l'elenco lavori, poi su Doppio Click aprirei il Dettaglio del lavoro con una Maschera che punta all'IDLavoro, ed una SubForm con gli inconvenienti in modalità Maschere continue.
    Questo è il modo corretto di sfruttare la gestione.

    Fai anche attenzione all'uso non pienamente consapevole delle ComboBox nelle maschere continue, spesso riservano sorprese a chi non ha ben chiaro come funzionano le maschere continue.

    Aggiungo, che a mio avviso ti manca un pezzo.
    Se non gestisci una Tabella "Inconvenienti" per rendere standard anche questi, tipico degli interventi manutentivi, rischi di avere della confusione nel tempo...
    Dovresti pertanto avere una Tabella CatalogoInterventi da cui pescare, di conseguenza gestire il tutto con una Relazione Molti a Molti.

    P.s. per Gianni le convenzioni, se uno le volesse usare, vorrebbero che la Combo fosse chiamata con prefisso [cbo]
    Quì una sintesi:
    http://access.mvps.org/access/general/gen0012.ht
  • Re: Casella combinata in maschere continue

    Salve e grazie per gli interventi.
    Per i nomi e per la struttura del db non posso cambiarli perche questo database lavora gia con un fe fatto tutto in vb6 che deve continuare a funzionare quindi non posso modificare nulla di strutturale.
    la tabella inconvenienti è una tabella che registra solo cio che il cliente lamenta quando arriva in accettazione non sono le operazioni che il meccanico fa per riparare la macchina che potrebbero loro essere standardizzate. al click sul lavoro si apre una maschera che contiene alcune sottomaschere tra cui i ricambi utilizzati le operazioni fatte il marcatempo e gli inconvenienti lamentati dal cliente.
    vorrei utilizzare una combo per poter visualizzare "al volo" cio che il cliente lamenta senza dover sempre aprire e chiudere una nuova maschera.
  • Re: Casella combinata in maschere continue

    Per Gianni55 ho riletto il tuo messaggio, ma la mia logica è completamente diversa. ora sono ancora a lavoro, quando arrivo a casa faccio uno screenshot delle mie tabelle e relazioni e la metto nel post così che puoi vedere meglio il modo in cui lavora
    prendere i dati da una tabella non relazionata sarebbe stato troppo bello....
    ma la mia combo deve essere popolata da record relazionati
Devi accedere o registrarti per scrivere nel forum
4 risposte