Newsgroup: it.comp.appl.access
Titolo: Sottomaschera - 4 combo filtro per scelta record e immissione dato

Buongiorno A tutti!!!!
Finalmente sono riuscita a creare 4 combo box in gerarchia, e mi
filtrano i dati alla grande.
Purtroppo però, dovrebbero xmettermi di scegliere un record da una
tabella e di conseguenza utilizzare questo id.
Mi spiego meglio:
ho la form principale, si chiama MSC_PRATICA, e la sua sottomaschera
che si chiama msc_praticaCat.
La struttura delle tabelle è:
TBL_PRATICA
praticaid
pratica_data
TBL_PRATICA_DettCatalogo
praticadettcat_id
praticaid
catalogoid
TBL_CATALOGO
catalogoid
catalogo_fornid
catalogo_nome
catalogo_edizioneanno
catalogo_destinazione
Le quattro combo box di  cui prima, mi permettono di filtrare i vari
cataloghi.
Allora ho la form principale MSC_PRATICA dove inserirsco la pratica,
vado sulla sottomaschera Msc_PraticaCAT che ha una query che pesca i
dati da TBL_Pratica_dettCatalogo e TBL_CATALOGO.
Ora, filtrando i dati dalle 4 combobox, dovrei avere il catalogo id, e
quindi inserire i dettagli in TBL_Pratica_dettCatalogo. Ma così non
va... non funziona non riesco che @@
Non va.
La query di Msc_praticaCAT è questa:
SELECT TBL_Pratica_Dett_Catalogo.Pratica_dettCatalogo,
TBL_Pratica_Dett_Catalogo.catalogo_id,
TBL_Pratica_Dett_Catalogo.Pratica_id, TBL_Catalogo.Catalogo_fornid,
TBL_Catalogo.Catalogo_catalogo, TBL_Catalogo.Catalogo_edizione,
TBL_Catalogo.Catalogo_denom,
TBL_CatalogoEdizione.CatalogoEdizione_anno,
TBL_CatalogoNome.catalogonome_desc,
TBL_CatalogoPacchettoDenominazione.CatalogoPacchetto_Nome,
TBL_fornitoreTour.forn_desc
FROM TBL_fornitoreTour INNER JOIN ((TBL_CatalogoPacchettoDenominazione
INNER JOIN (TBL_CatalogoNome INNER JOIN (TBL_CatalogoEdizione INNER
JOIN TBL_Catalogo ON TBL_CatalogoEdizione.CatalogoEdizione_id =
TBL_Catalogo.Catalogo_edizione) ON TBL_CatalogoNome.catalogonome_id =
TBL_Catalogo.Catalogo_catalogo) ON
TBL_CatalogoPacchettoDenominazione.CatalogoPacchetto_id =
TBL_Catalogo.Catalogo_denom) INNER JOIN TBL_Pratica_Dett_Catalogo ON
TBL_Catalogo.Catalogo_id = TBL_Pratica_Dett_Catalogo.catalogo_id) ON
TBL_fornitoreTour.forn_id = TBL_Catalogo.Catalogo_fornid
WHERE (((TBL_Catalogo.Catalogo_fornid)=[FORMS]![MSC_PRATICA]!
[MSC_PRATICACAT].[form]![cbo_cattour]) AND
((TBL_Catalogo.Catalogo_catalogo)=[forms]![msc_pratica]!
[Msc_PraticaCAT].[form]![cbo_catnome]) AND
((TBL_Catalogo.Catalogo_edizione)=[forms]![msc_pratica]!
[Msc_PraticaCAT].[form]![cbo_CatEdizione]) AND
((TBL_Catalogo.Catalogo_denom)=[forms]![msc_pratica]![Msc_PraticaCAT].
[form]![cbo_catDenominazione]));
Questo è l'evento dopo la scelta della quarta combo box
Private Sub cbo_catDenominazione_AfterUpdate()
Forms!msc_pratica!Msc_PraticaCAT.Requery
Forms!msc_pratica!Msc_PraticaCAT.Form!cbo_catDenominazione.Enabled =
True
Forms!msc_pratica!Msc_PraticaCAT.Form!cbo_catDenominazione.Requery
Forms!msc_pratica!Msc_PraticaCAT.Requery
End Sub
Questa è l'origine dati della quarta combo box cbo_catdenominazione:
q_cboCatDenominazione
SELECT DISTINCTROW
TBL_CatalogoPacchettoDenominazione.CatalogoPacchetto_id,
TBL_CatalogoPacchettoDenominazione.CatalogoPacchetto_Nome,
TBL_Catalogo.Catalogo_fornid, TBL_Catalogo.Catalogo_catalogo,
TBL_Catalogo.Catalogo_edizione
FROM TBL_CatalogoPacchettoDenominazione INNER JOIN TBL_Catalogo ON
TBL_CatalogoPacchettoDenominazione.CatalogoPacchetto_id =
TBL_Catalogo.Catalogo_denom
WHERE (((TBL_Catalogo.Catalogo_fornid)=[forms]![msc_pratica]!
[Msc_PraticaCAT].[FORM]![cbo_cattour]) AND
((TBL_Catalogo.Catalogo_catalogo)=[forms]![msc_pratica]!
[Msc_PraticaCAT].[FORM]![cbo_catNome]) AND
((TBL_Catalogo.Catalogo_edizione)=[forms]![msc_pratica]!
[Msc_PraticaCAT].[FORM]![cbo_catedizione]));
Siccome fino alla 4 scelta, laquarta combo box i dati dentro queste
caselle si presentano correttamente, io credo che sia tutto a posto,
ma così non è visto che non funziona.
Oltretutto, se apro la query di origine della sottomaschera, con la
maschera aperta e le caselle combo valorizzate, la query non mi da
alcun record. Questo perchè TBL_PRATICA_DETTCatalogo è vuota.. come
faccio a dirgli inserisci?
Sulle proprietà della sottomaschera cè consenti filtri, modifiche,
eliminazioni e aggiunte e immissione dati. Ma lo stesso il campo
contatore  di TBL_Pratica_DettCatalogo non incrementa, non aggiunge
dati.
Che devo fare?
Grazie 10000000 a lot!
Samantha

 
[cut]
taglio, troppo lungo
Non comprendo a cosa ti possano servire le quattro cbx.
Di fondo hai una gerarchia pratica-->righe pratica e sulle righe devi 
poter scegliere un catalogo e mi immagino che un  cbx sia definito per 
la scelta del catalogo.
I cbx ti potrebbero servire se vuoi definire, a monte, la scelta del 
catalogo e quindi al momento dell'inserimento della riga hai gia 
definito l'id da assegnare al catalogo.Al momento dell'inserimento di 
una seconda riga potrebbe essere necessario aggornare i 4 cbx (ci sono 
inoltre alcuni aspetti collaterali negativi se si usa una subform 
multiriga). Non so quanto possa essere pratico.
Ma sopratutto non so quanto ho capito il tuo problema ;<)
-- 
ac
y-1=x

 - Mostra testo tra virgolette -
Ciao Alessandro,
vedo di spiegarmi meglio
ho la maschera pratica
dentro la maschera pratica ho varie sottomaschere.  Per scegliere il
cliente, nella maschera pratica ho una combo box, scelgo il cognome
del cliente e automaticamente la sottomaschera cliente visualizza il
nome scelto.
Ho una seconda sottomaschera continua, dalla quale scelgo i
partecipanti. Da una combo box nella sottomaschera scelgo il cognome
del partecipante, e automaticamente mi riempie il record.
Ho questa terza sottomaschera, dove devo indicare il Tour operator,
nome del catalogo, edizione e nome pacchetto. Di seguito qualche
esempio:
Tour Operator    Catalogo Edizione  Pacchetto
Costa crociere - Russia   2007  Mosca la capitale
Costa crociere - Russia   2007  La cupola d'oro
Costa crociere - Russia   2008  Mosca la capitale
Le quattro combo box, mi permettono di filtrare fino a trovare il
catalogo che mi interessa.
Le combo box sono sull'intestazione di maschera. La maschera è a
visualizzazione singola, e all'ultima combo box, con il requery di
Pacchetto, dovrebbe fare il requery della sottomaschera, e
visualizzare il record filtrato. E invece non succede nulla.
Se quando dalla sottomaschera partecipante, dalla combo associata
scelgo il cognome, e automaticamente mi viene visualizzato il nome del
partecipante, nella sottomaschera relativa al catalogo, non si
completa.
ossia, io ho aperto la pratica id = 4 ,  la sottomaschera catalogo è
collegata con praticaid, perciò ad ogni volta che io ho una nuova
pratica dovrei avere un nuovo record dove inserire l'identificativo
del catalogo, come quando inserisco il cliente.
Il problema è proprio questo, la tabella di collegamento tra pratica e
catalogo non recepisce che io voglio inserire un nuovorecord.
come dicevo sopra, la tabella principale è:
Tbl_Pratica
pratica_id -> contatore key primaria
pratica_data
pratica_numero
TBL_PRATICA_DettCatalogo
praticadettcat_id  -> contatore key primaria
praticaid  -> chiave esterna di collegamento con TBL_Pratica
catalogoid  -> chiave esterna di collegamento con TBL_catalogo
TBL_CATALOGO
catalogo_id    contatore  key primaria
catalogo_fornid
catalogo_nome
catalogo_edizioneanno
catalogo_destinazione
Forse ho sbagliato ad utilizzare le 4 combo box per identificare il
record? Forse è + conveniente mettere una semplice maschera che pesca
i dati da TBL_CATALOGO  a visualizzazione continua, dove l'utente
clicca sul record che vuole?
mmm...  non so che caspita abbia, perchè non va...
Spero che puoi darmi qualche dritta a capire,
Grazie 100000000,      :D
Samantha

 Ma sopratutto non so quanto ho capito il tuo problema ;<)
L'inserimento di un nuovo record in TBL_Pratica_DettCatalogo da
maschera.
Grazie ancora
