Casella combinata filtrata su selezione campo precedente

di il
15 risposte

Casella combinata filtrata su selezione campo precedente

Ciao a tutti. Uso Access per dei database molto semplici, ma adesso volevo fare un passo in avanti e non ce ne vengo fuori.
Ho un DB formato da tre tabelle:
Tabella MARCA: ID (chiave primaria, numerico) e MARCA (testo)
Tabella MODELLO: ID (chiave primaria, numerico), MARCA (ricerca guidata, campo MARCA della tabella MARCA), MODELLO (testo)
Tabella AUTOVETTURA: ID (chiave primaria, numerico), MARCA (ricerca guidata, campo MARCA della tabella MODELLO), MODELLO (ricerca guidata, campo MODELLO della tabella MODELLO), KM (numerico).
Il problema è che quando creo la maschera della tabella AUTOVETTURA, vorrei che quando seleziono MARCA mi venisse filtrato il campo MODELLO in base alla selezione (es: se ho TOYOTA, vorrei fossero filtrati i modello TOYOTA nel campo MODELLO).
Scusate se non sono stato chiaro... forse è strutturato male il DB. Mi potete dare qualche consiglio?

15 Risposte

  • Re: Casella combinata filtrata su selezione campo precedente

    Non ho capito bene. Ti serve per gestire l'attività di un parco macchine? Ad esempio un autonoleggio?
  • Re: Casella combinata filtrata su selezione campo precedente

    Innanzitutto:
    1) impara a nominare le tabelle al PLURALE, quindi Marche, Modelli, Autovetture.
    2) I campi chiave vanno dichiarati esplicitamente per non generare ambiguità, quindi IDMarca, IDModello, IDAutovettura.

    La tabella Autovetture non deve avere 2 campi Marca e Modello. In virtù del punto 2) devi usare un solo campo IDModello che contempli entrami i campi Marca e Modello. Suggerisco di implementare una filtrazione con caselle combinate a cascata "a parte".
  • Re: Casella combinata filtrata su selezione campo precedente

    eddy1973 ha scritto:


    Non ho capito bene. Ti serve per gestire l'attività di un parco macchine? Ad esempio un autonoleggio?
    Grazie per la risposta. In realtà non mi serve per un parco macchine, è solo un esempio per capire come fare a filtrare una seconda casella combinata. Potrei ad esempio fare lo stesso DB con FILM - GENERE - FILM NOLEGGIATI... e così via.
  • Re: Casella combinata filtrata su selezione campo precedente

    OsvaldoLaviosa ha scritto:


    Innanzitutto:
    1) impara a nominare le tabelle al PLURALE, quindi Marche, Modelli, Autovetture.
    2) I campi chiave vanno dichiarati esplicitamente per non generare ambiguità, quindi IDMarca, IDModello, IDAutovettura.

    La tabella Autovetture non deve avere 2 campi Marca e Modello. In virtù del punto 2) devi usare un solo campo IDModello che contempli entrami i campi Marca e Modello. Suggerisco di implementare una filtrazione con caselle combinate a cascata "a parte".
    Grazie per il consiglio al punto 1. Proverò a fare come indicato al punto 2, un po' generico per le mie conoscenze, pertanto prima vedrò di fare maggiore esperienza. Comunque sono ben accetti consigli pratici... Grazie ancora!
  • Re: Casella combinata filtrata su selezione campo precedente

    Ivan74mn ha scritto:


    capire come fare a filtrare una seconda casella combinata
    Ci sono numerosissime discussioni che parlano di "caselle combinate a cascata". Esiste un database esempio di @Alex che contempla Regioni\Provincie\Comuni. Leggi anche qui
  • Re: Casella combinata filtrata su selezione campo precedente

    Si ma prima di passare ai filtri, consiglierei di imparare a strutturare in maniera corretta un database.
  • Re: Casella combinata filtrata su selezione campo precedente

    Ho risolto con VBA. Praticamente attivo la seguente macro dopo l'aggiornamento della casella combinata MARCA:

    Private Sub Marca_AfterUpdate()
    Me.Modello.RowSource = "SELECT IDModello, Marca " & "FROM Modelli " & "WHERE Marca = " & "'" & Me.Marca & "'"
    Me.Modello.Requery
    End Sub

    Così funziona tutto!!! Grazie a tutti per il supporto!
  • Re: Casella combinata filtrata su selezione campo precedente

    Troppo virgolettato direi... Ad ogni modo spero che tu abbia accolto i suggerimenti che ti sono stati dati nello strutturare bene il tuo database in quanto quello che hai prospettato inizialmente non lo era neanche lontanamente.
  • Re: Casella combinata filtrata su selezione campo precedente

    Inoltre spero che adesso Modelli sia una query e non la tabella.... Anche se temo di no.
  • Re: Casella combinata filtrata su selezione campo precedente

    In realtà, non c è bisogno di usare il vb. La casella combinata ha già la proprietà specifica dove puoi creare una query. Origine controllo.
    Poi quello che hai realizzato non è una macro, ma una query utilizzando il vba.
  • Re: Casella combinata filtrata su selezione campo precedente

    eddy1973 ha scritto:


    Troppo virgolettato direi... Ad ogni modo spero che tu abbia accolto i suggerimenti che ti sono stati dati nello strutturare bene il tuo database in quanto quello che hai prospettato inizialmente non lo era neanche lontanamente.
    Grazie per il messaggio. Oltre ai giudizi gradirei anche dei consigli, ma grazie ugualmente! Ripeto: non sono un espero di Access...
  • Re: Casella combinata filtrata su selezione campo precedente

    fratac ha scritto:


    In realtà, non c è bisogno di usare il vb. La casella combinata ha già la proprietà specifica dove puoi creare una query. Origine controllo.
    Poi quello che hai realizzato non è una macro, ma una query utilizzando il vba.
    Grazie per la precisazione. Comunque ho usato VB (innegabile) in quanto non essendo pratico di Access era l'unica soluzione alla mia portata. Grazie comunque.
  • Re: Casella combinata filtrata su selezione campo precedente

    eddy1973 ha scritto:


    Inoltre spero che adesso Modelli sia una query e non la tabella.... Anche se temo di no.
    Infatti hai ragione. Un consiglio lo accetto sempre volentieri dagli esperti... mi sono iscritto apposta! Grazie comunque.
  • Re: Casella combinata filtrata su selezione campo precedente

    [quote=Ivan74mn post_id=8693906
    Grazie per la precisazione. Comunque ho usato VB (innegabile) in quanto non essendo pratico di Access era l'unica soluzione alla mia portata. Grazie comunque.
    [/quote]

    Beh, se conosci il vb, che comunque è un po' diverso dal vba, ti manca solo approfondire i controlli di access e il suo sql, che differisce di poco dal sql e come costruire un database e tempo due mesi access te lo mangi per colazione.
Devi accedere o registrarti per scrivere nel forum
15 risposte