Newsgroup: it.comp.appl.access
Titolo: Ancora problemi con le caselle combinate

Ciao a tutti,
premesso che il Sig. Riccardo mi ha già aiutato e lo ringrazio moltissimo,
ma
siccome sono un po' tardo ti chiedo gentilmente se puoi ancora aiutarmi :
ho ancora problemi con le caselle combinate. Ti faccio subito un esempio di
ciò che voglio realizzare così magari capisco meglio la soluzione...
Io ho due tabelle : Marca e modelli
la tabella marca è così composta :
Id marca - Contatore - con la chiave primaria
Nome Marca - testo - con inserito tutte le marche
mentre la tabella modelli è fatta così :
Id modelli - contatore - con la chiave primaria
N - Numerico - relazionato con l'id marca della tabella Marca
Modello - testo - descrive il modello
Alimentazione - testo - descrive il tipo di alimentazione
ecc.
ecc.
Tramite una maschera con relativa sottomaschera sono riuscito a fare in modo
che selezionando un tipo di marca con una opportuna casella combinata (che
punta
sulla tabella marca) si visualizzino tutti i modelli corrispondenti a tale
marca.
La mia esigenza adesso è questa :
io ora ho una nuova tabella (chiamata preventivi) così composta :
Id preventivo - contatore - con la chiave primaria
N marca - numerico - relazionata con [tabella marca]![id marca]
N modello - numerico - relazionata con [tabella modelli]![id modelli]
nome cliente - testo - descrive il nome cliente
ecc.
ecc.
Vorrei realizzare una maschera che abbia due caselle combinate dove :
la prima mi mostra tutte le marche descritte nella tabella marche e associ
al campo [tabella preventivi]![id marca] ---> e fin qui ci sono arrivato...
Una volta che poi si sceglie la marca vorrei che nella seconda casella
combinata
mi mostrasse (dalla tabella modelli) solo le auto della marca che ho appena
scelto
e non tutte. Scegliendo così un modello tra quelli esistenti nella tabella
modelli
con quella marca si andrà a  memorizzare il valore nel campo
[tabella preventivi]![id modello]...
Pensate che sia possibile?
Grazie!
Saluti
Sergio Della Giora


Se non ho capito male la maschera l'hai fatta (ammettiamo che si chiami
MaskPreventivi).
Hai anche fatto la la prima casella combinata che mi sembra faccia il suo
mestiere di selezionare la marca dell'auto (ipotiziamo che si chiami
NMarca).
Mi sembra di capire che hai fatto anche la seconda casella combinata
(ammettiamo che si chiami NModello) e con questa riesci anche a selezionare
il modello dell'auto, ma vorresti che in elenco non ti comparissero tutti i
modelli ma solamente i modelli della marca selezionata con l'altra casella
combinata.
Allora apri la struttura della query che hai come origine riga della casella
combinata NModello (clicca sui tre puntini ... a destra di questa
proprietŕ); sicuramente questa query č basata sulla tabella modelli. Nella
riga "Campo:" della prima colonna vuota trascinaci il campo N della tabella;
nella riga "Criteri:" relativa al campo N scrivi:
[Forms]![MaskPreventivi]![NMarca]
Ora a fronte dell'evento "Dopo aggiornamento" della casella combinata NMarca
genera il seguente codice VBA:
Me![NMod
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------
ello].Requery


----------------------------------------------------------------
Riposto la risposta perchč prima ne ho tagliata un pezzo
----------------------------------------------------------------
Se non ho capito male la maschera l'hai fatta (ammettiamo che si chiami
MaskPreventivi).
Hai anche fatto la la prima casella combinata che mi sembra faccia il suo
mestiere di selezionare la marca dell'auto (ipotiziamo che si chiami
NMarca).
Mi sembra di capire che hai fatto anche la seconda casella combinata
(ammettiamo che si chiami NModello) e con questa riesci anche a selezionare
il modello dell'auto, ma vorresti che in elenco non ti comparissero tutti i
modelli ma solamente i modelli della marca selezionata con l'altra casella
combinata.
Allora apri la struttura della query che hai come origine riga della casella
combinata NModello (clicca sui tre puntini ... a destra di questa
proprietŕ); sicuramente questa query č basata sulla tabella modelli. Nella
riga "Campo:" della prima colonna vuota trascinaci il campo N della tabella;
nella riga "Criteri:" relativa al campo N scrivi:
[Forms]![MaskPreventivi]![NMarca]
Ora a fronte dell'evento "Dopo aggiornamento" della casella combinata NMarca
genera il seguente codice VBA:
Me![NModello].Requery



########
Nell'origine riga della tua casella combinata (Modelli) devi inserire
SELECT DISTINCTROW modelli.[id modelli], modelli.modello, modelli.n FROM
modelli WHERE (((modelli.n)=[Forms]![Preventivi]![marca]));
(controlla i noimi esatti dei controlli, io ho chiamato "marca" la Casella
con le Marche e ""Modelli" la Casella con i modelli)
e come colonna associata inserisci   1
e su evento dopo aggiornamento della Casella "Marca" devi scrivere
Me.Modelli.Requery
ciao Riccardo