Sottomaschera: filtrare i valori di un campo in base al valore selezionato in un altro campo

Anonimo
2015-07-31T08:02:38+00:00

Buongiorno, apro un thread nuovo per l'argomento in oggetto di cui vado a spiegare la necessità.

Sempre la stessa maschera con sottomaschera. La maschera riporta i dati generici della campagna pubblicitaria,

la sottomaschera riporta i cartelloni pubblicitari affittati per la campagna.

I campi della sottomaschera sono IDAffissioni (campo correlato alla maschera), poi IDFornitore, IDManufatto, IDTipoAffitto, IDNegozio ecc. ecc.

Vorrei che, in base all'IDFornitore selezionato (tramite casella combinata) il campo IDManufatto mostrasse solo i manufatti relativi a quel determinato fornitore. E' possibile?

Spero in un vostro aiuto...

fausto.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2015-08-11T09:52:17+00:00

ciao Fausto,

 Me.txtSupplier = aSupplier(1)

Provo, selezioni IDProdotto e NomeProdotto (non capisco però le lettere p. e a., le dovrei utilizzare anche io??) dalla tabella "articoli" che è relazionata alla tabella prodotti tramite i campi A.IDProdotto e P.IDProdotto e filtri dove l'IDfornitore è uguale

a quello riportato da aSupplier in txtSupplier... è così??

p e a sono alias, usati per identificare tabelle e campi in Sql.

è pratico l'utlizzo degli alias per abbreviarne il nome, fondamentali nei campi calcolati per identificarli.

Rendono la risoluzione della query, relazionale.

Puoi utilizzare il nome per esteso della tabella oppure semplicemente il nome del campo, è preferibile sempre però identificare il campo con il nome della tabella o alias che sia.

il ragionamento che esponi circa la query è corretto, però nella textbox visualizzo il nome per esteso del fornitore, nella clausula where utizzo invece l'idfornitore.

strSQL = "SELECT IDCartellone, Ubicazione " & _

         "FROM tblCartelloni "where IDFornitore=" & aSupplier(0)

Me.lstCartelloni.RowSource = strSQL

Me.txtSupplier = aSupplier(1)

ora non ricordo la struttura del tuo db per verificare la validità dell'sql...( ho il vizio di dimenticare facilmente... :-(( ), ma la stringa sql per come l'hai impostata è spezzata nella concatenazione prova così :

"SELECT IDCartellone, Ubicazione " & _

         "FROM tblCartelloni where IDFornitore=" & aSupplier(0)

o così :

"SELECT IDCartellone, Ubicazione " & _

         "FROM tblCartelloni " & _

         "where IDFornitore=" & aSupplier(0)

ciao, Sandro.

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2015-07-31T20:24:44+00:00

ciao Fausto,

modifica l'origine riga del controllo idmanufatto così :

PARAMETERS IDFornitore Long;

SELECT tblManufatti.IDManufatto,

       tblManufatti.Cimasa,

       tblManufatti.IDFornitore

FROM

       tblManufatti

WHERE

      tblManufatti.IDFornitore=[IDFornitore];

e su evento dopo aggiornamento del controllo idfornitore:

me.idmanufatto.requery.

imposta tre colonne per il numero di colonne della combo Idmanufatto e la larghezza 3;3;3

non so se già erano impostate così, ma modificando velocemente.....le ho impostate come sopra.

Non ho guardato bene il tuo db ma forse qualcosina a livello di normalizzazione da rivedre magari c'è...

ciao :-)

Sandro.

La risposta è stata utile?

0 commenti Nessun commento

37 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-08-01T07:23:14+00:00

    Buongiorno Sandro, ti ringrazio per la risposta. Lunedì al rientro in ufficio proverò le tue indicazioni. Come immaginavo ci sono un po' di cose da sistemare... magari se mi dai qualche indicazione provo a rimediare.

    Intanto ringrazio te e la community per la professionalità e l'assistenza che fornite.

    Grazie!!

    Fausto

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-07-31T09:52:27+00:00

    Sandro, ti ringrazio per il file. Nell'esempio che mi hai linkato le combo sono nella maschera e si riferiscono a 2 tabelle. Il mio caso è un po' differente in quanto le due combo sono nella Sottomaschera che prende i campi dalla maschera "RigheAffissioni".

    Per evitare ulteriori incomprensioni posto il mio progetto, tanto ancora non contiene dati sensibili. Così magari mi potreste dare suggerimenti su eventuali errori da me commessi (sicuramente ce ne saranno centinaia).

     http://1drv.ms/1UbDE9Q

    Spero di averlo inserito correttamente....

    Mimmo grazie anche a te per il tuo contributo!!!!

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-07-31T08:53:30+00:00

    Ciao,

    quindi si tratta del classico : caselle combinate in cascata.

    Prova ad effettuare una ricerca nel presente forum, è un argomente largamente trattato.

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento