Combox: listare tutti i valori ma limitarli in aggiunta/modifica

di il
8 risposte

Combox: listare tutti i valori ma limitarli in aggiunta/modifica

Ciao,
E' possibile fare in modo che un combox in una lista di record mostri tutti i valori sottostanti ma se aggiungo/modifico un record me ne proponga solo alcuni?
Esempio: un cmbox che lista una serie di causali. Alcune però sono flaggate come non + attive e non devono essere riproposte.
Grazie

8 Risposte

  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    SI chiama combobox ...

    Puoi fare quello che chiedi se nella tabella causali esiste un flag apposito da poter sfruttare in una query.
  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    Si c'è.
    Il problema è che se limito i dati del combobox a quelli flaggati, i record precedenti già in lista nel form presentano il campo combobox giustamente vuoto se si riferisce a un elemento non flaggato
    Ovvero: solo elementi flaggati come lista del combox quando lo apro, ma tutti per gli elementi per quelli listati
  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    Deciditi ... li devi vedere nella combobox o no? Se hai dei record collegati a causai non più utilizzate allora non devi limitare nulla e nella combobox devi vederle tutte.
  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    Secondo me a livello di TABELLA devono esserci tutti. A livello di MASCHERA puoi operare qualche filtro "significativo" per te, magari in una maschera a parte che svolga questo compito specifico quando fai input...però se spieghi tutto "bene-bene" con:
    - nomi propri di campi
    - nomi propri di un bel po' di "valori" che ci rendano l'idea
    - mostri almeno 5 casi significativi
    ...forse entriamo meglio nel merito del tuo problema.
  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    Non riesco a spiegarmi, forse non c'è soluzione penso sia un limite del controllo combobox.
    semplifico un po':
    tabella movimenti con campo causale-long. tabella causali con flag causale attiva/non attiva
    Maschera continua, tutti i movimenti
    Le causali nel tempo cambiano, alcune non sono + attive, "decadono". per esempio un'assicurazione di un auto che non ho +, l'affitto di un ufficio che ho lasciato...., un utenza che ho disdetto ecc ecc
    Quando inserisco un nuovo movimento vorrei che il combobox aprendo la tendina mi mostrasse solo le causali attive; nella maschera continua invece i record precedenti devono mostrare tutte le causali anche quelle non + attive (perché ci sono movimenti vecchi con causali (oggi) non + attive ma storicamente si
    Riassumendo non riesco a impostare la proprietà rowsource = causali solo attive quando si apre la tendina del combobox e invece rowsource = tutte le causali in visualizzazione normale (tendina chiusa)

    Con rowsource=solo causali attive i campi dei record con causali non attive restano comprensibilmente vuoti
  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    Secondo me ti sei spiegato ed Oregon ti ha dato la risposta.
    Se poi a te non va bene posso aggiungere che non puoi farlo se non con qualche artefizio essendo proprio in una Maschera Continua ed essendo la combo un controllo Databound usato come associato.

    Ora ti è chiaro...?

    Se vuoi approfondire apri Google e digita questo:
    vba msaccess filtered combobox in continuos form

    Leggi bene però i 3d fino in fondo almeno i link delle prime 2 pagine...
  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    Grazie, penso invece di non essermi spiegato. Comunque alla fine ho risolto cosÌ:

    Private Sub Causale_GotFocus()
    If Me.NewRecord Then
    Causale.RowSource = "Select * from Causali where Attiva=true"
    Else
    Causale.RowSource = "Select * from Causali"
    End if
    End Sub

    Private Sub Causale_LostFocus()
    Causale.RowSource = "select * from Causali"
    End Sub
  • Re: Combox: listare tutti i valori ma limitarli in aggiunta/modifica

    Otterrai un Macello nelle altre righe e ti accorgerai di cosa sto parlando...
    Ovviamente questo accadrà quando sei in NEW RECORD e, negli altri Records ci fosse un Attiva=False...
    Insomma la tecnica è SBAGLIATA, ma se ti soddisfa va bene anche a noi.
Devi accedere o registrarti per scrivere nel forum
8 risposte