Newsgroup: it.comp.appl.access
Titolo: Aiuto... non so come fare...

Ciao a tutti.
Ammetto di essere quasi alle prime armi con Access e non riesco a fare ciň:
Ho 3 Tabelle:
- Bibliografia (con tutte le colonne che mi interessano)
- Bacino (con 2 colonne, una di ID_bac e l'altra che si chiama BACINO (la
quale ha come record:SOTTOBACINO1, SOTTOBACINO2... )
- Sottobacino (con 4 colonne, una di ID_sottob e le altre che che si
chiamano SOTTOBACINO1, SOTTOBACINO2.....)
Io vorrei creare una maschera per inserire i dati nella tabella
"Bibliografia", contenente tra gli altri campi due caselle combinate, la
prima che prende i dati dalla colonna BACINO della tab Bacino (e sin quě non
c'č  problema) e la seconda che visualizzi i dati della colonna SOTTOBACINO1
o SOTTOBACINO2 ecc... in base alla selezione fatta un istante prima nella
casella combinata1.
Qualcuno sa risolvere questo quesito che mi tormenta ormai da 15 giorni?
 Vi prego, non so piů cosa fare....
Grazie infinite
Alessio

 ha scritto nel messaggio
news:SZ086.40172$eB2.4...@news.infostrada.it...

Non ti nascondo che c'č un pň di confusione (ad  esempio che cosa vuol dire
che la tabella Bacino che ha due campi ha poi "come record:SOTTOBACINO1,
SOTTOBACINO2... ").
Forse č bene che ci spieghi quale sia la struttura dettagliata delle tre
tabelle, evidenziando di ognuna la chiave primaria; indica inoltre come le
tre tabelle siano in relazione fra di loro ed in base a quali campi. Tutto
ciň č necessario per darti una dritta per usare le due caselle combinate in
cascade.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 wrote in message
Sc486.42306$eB2.4...@news.infostrada.it...



[CUT]
Innanzitutto, quando rispondi, il tuo messaggio di risposta scrivilo DOPO e
non prima dei messaggi cui rispondi.
Quanto al tuo database, ha un'architettura di tabelle che non rispetta
neppure una regola di un database relazionale, cosa praticamente
indispensabile visto che hai deciso di sviluppare un progetto con Access.
Infatti non sei riuscito a rispondere a parte della mia domanda dove ti
chiedevo come le tre tabelle fossero fra di loro in relazione: non hai
risposto perché nella struttura non esistono gli elementi per metterle in
relazione.
Quindi, prima di parlare di maschere e caselle combinate in cascade, è
necessario rivedere la struttura delle tre tabelle in maniera che sia
consona ad un database relazionale atto a fare quello che tu hai detto.
Ti suggerisco la seguente struttura:
Tabella BACINO
------------------
ID_bacino            Contatore e chiave primaria
Bacino                  Testo
Come puoi notare ho scelto come chiave primaria ID_bacino
---------------------------------------------------------------
Tabella SOTTOBACINO
--------------------------
ID_sottobacino        Contatore
ID_Bacino                Numerico
DatoSottobacino       Testo ?? (non so cosa contiene)
Indica come chiave primaria di questa tabella l'inseme dei due campi
ID_sottobacino e ID_bacino.
Nella struttura di questa tabella, relativamente al campo ID_bacino, esegui
l'Autocomposizione Ricerca... facendo riferimento alla tabella BACINO e
chiedi di inserire ambedue i campi di detta tabella. Così facendo ottieni
due risultati importanti: metti in relazione le due tabelle in base ai campi
ID_bacino ed inoltre, pur memorizzando nella tabella SOTTOBACINO il codice
ID_bacino, ogni volta che ti assocerai a questo campo in query, maschere e
report Access ti visualizzerà automaticamente NON il codice bensì la
relativa descrizione contenuta nel campo Bacino della tabella BACINO.
Come esempio, ora i tuoi dati in questa tabella dovranno essere così
memorizzati:
ID_sottobacino    ID_bacino    DatoSottobacino
1                            1                a1
1                            2                b1
1                            3                c1
2                            1                a2
2                            2                b2
2                            3                c3
---------------------------------------------------------------
Tabella DATI
--------------
ID                            Contatore e chiave primaria
ID_bacino                Numerico
ID_sottobacino         Numerico
Area                         Numerico (almeno credo)
Volume                     Numerico (almeno credo)
Per lo stesso motivo indicato per la tabella SOTTOBACINO, esegui
l'Autocomposizione Ricerca... per il campo ID_bacino.
Esegui l'Autocomposizione Ricerca... anche per il campo ID_sottobacino
facendo ri ferimento alla tabella SOTTOBACINO, ma questa volta nel wizard
chiedi di inseire solamente il campo ID_sottobacino.
----------------------------------------------------------------
Ora con Strumenti=>Relazioni... apri appunto la finestra Relazioni: clicca
sulle tre linee di relazione che troverai già tracciate e aggiungi
l'integrità referenziale.
A questo punto creati una query di selezione (chiamala Query1) basata su
tutti i campi della tabella SOTTOBACINO, avendo cura che nella griglia i tre
campi siano presenti in questo ordine: ID_sottobacino, DatoSottobacino e
ID_bacino; nella riga "Criteri:" relativa al campo ID_bacino scrivi:
[Forms]![Maschera1]![ID_bacino]
Ora creati la tua maschera per l'aggiornamento della tabella DATI e chiamala
Maschera1; avrà come origine record la tabella DATI e una visualizzazione a
Maschera singola.
Inserisci in Maschera1 due caselle combinate associate rispettivamente ai
campi ID_bacino e ID_sottobacino della tabella DATI e fai in modo che anche
le caselle combinate si chiamino rispettivamente ID_bacino e ID_sottobacino.
Come "Origine riga" della casella combinata ID_sottobacino scrivi (o
seleziona) Query1; indica come "Numero colonne" di questa casella combinata
3 e nella "Larghezza colonne" indica a zero la larghezza della prima e terza
colonna (ovvero 0cm;2,54cm;0cm).
A fronte dell'evento "Dopo aggiornamento" della casella combinata ID_bacino
genera il seguente codice VBA:
ME![ID_sottobacino].Requery
Stai attento che quando dovrai utilizzare il valore di DatoSottobacino (per
intendersi a1, a2 ecc.) non dovrai fare riferimento a Me![ID_sottobacino]
bensì a Me![ID_sottobacino].Column(1).
A questo punto apri Machera1, seleziona dalla prima casella combinata il
bacino e nell'elenco della seconda casella combinata dovresti trovare solo i
dati di quel bacino.
Prova e facci sapere.


 wrote in message
zFl86.51258$eB2.4...@news.infostrada.it...

Grazie molte. Funziona benissimo.
Scusa per tutto (reply) e grazie ancora
Alessio