Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ACCESS - caselle combinate sequenziali

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

ACCESS - caselle combinate sequenziali

Postdi mikecodadilupo » 10/10/06 13:05

ciao a tutti....ho il seguente problema...

ho una tabella SCUOLA ed una tabella MATERIE.

la tabella scuola è composta da: IDScuola, NomeScuola

mentre la tabella materie è composta da: IDMateria, NomeMateria e IDScuola

la due tabelle sono correlate UNO (idscuola di scuola) a MOLTI (idscuola di materie)


ho creato una maschera con due casella combinate.....

nella prima vi è l'elenco di tante scuole, nella seconda l'elenco di un sacco di materie...


adesso vorrei che nel momento in cui nella prima casella combinata scelgo una scuola, non mi appaiano tutte le materie nella seconda casella combinata, ma soltanto quelle relative a quella scuola....(ad esempio se scelgo Classico non deve spuntarmi la materia elettronica ma solo quelle che nella tabella stavano sotto il nome del classico)..

come posso fare???

il fatto che le tabelle sia legate da una relazione, permette di semplificare qualcosa, o è ininfluente??

spero di essere stato chiaro...grazie
mikecodadilupo
Utente Junior
 
Post: 38
Iscritto il: 18/04/06 10:52

Sponsor
 

Postdi archimede » 11/10/06 08:24

Supponendo che le due caselle combinate si chiamino Scuola e Materia rispettivamente:

1) Nell'evento Dopo aggiornamento di Scuola metti =[Materia].[requery]

2) Nell'Origine riga di Materia metti SELECT IDMateria, NomeMateria FROM MATERIE WHERE IDScuola=[Scuola] ORDER BY NomeMateria;

HTH.

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mikecodadilupo » 11/10/06 12:10

dunque...grazie mille per il suggerimento che funziona ma con un piccolo intoppo

dunque....tabella scuola ha i campi IDScuola e Scuola

tabella materia ha i campi IDMateria, Materia e IDScuola


col tuo codice devo avere nella "casella combinata Scuola", ovvero nella prima, due colonne, l'IDScuola che uso come filtro, e il nome scuola, perchè se no non avrebbe senso scegliere un IDScuola e non il nome della scuola nella casella combinata. ma cmq con le due colonne nella casella che ti danno ID e nome della scuola diciamo che può funzionare.

però resta memorizzata nella casella combinata, non il nome della scuola, bensì il numero ad essa corrispondente.... :(

Ma se si volesse nella casella combinata solo una colonna col nome della scuola scelta, come potremmo raggirare l'ostacolo che nell'SQL poi va messo l'IDScuola???
mikecodadilupo
Utente Junior
 
Post: 38
Iscritto il: 18/04/06 10:52

Postdi archimede » 11/10/06 12:45

mikecodadilupo ha scritto:però resta memorizzata nella casella combinata, non il nome della scuola, bensì il numero ad essa corrispondente.... :(
Non se imposti Colonna associata a 1.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mikecodadilupo » 12/10/06 08:45

ho capito.... :P

dunque....poichè nell'SQL ho messo due campi, il valore immesso in "colonna associata" è quello che poi mi ritrovo nella casella combinata, (cioè se metto 1 mi ritrovo il primo campo dopo SELECT, e cosi via) mentre il "numero colonne" è il numero di colonne che mi vedo apparire cliccando sulla freccetta della casella combinata, e che al max può essere pari al numero di campi dell'SQL.

perfetto tutto funziona a dovere....grazie tante

adesso però mi è balenata una nuova pensata.....
dunque, oltre alle tabelle SCUOLA e MATERIE, ho una tabella LIBRI cosi fatta:
IDLibro, Titolo, Autore, Codice, Casa Editrice, Materia, Scuola

è possibile mettere nella stessa maschera delle due caselle combinate, una casella di riepilogo in modo tale che accada la seguente situazione:

1. all'apertura della maschera, prima ancora di scegliere SCUOLA e MATERIA, nella casella di riepilogo mi appaiono tutti i libri memorizzati (solo i campi codice,titolo e autore, vanno piu che bene).

2. non appena scelgo una voce dalla casella SCUOLA, allora oltre ad avviarsi la requery per la casella combinata MATERIE, nella casella di riepilogo devono restare solo i libri della scuola scelta.

3. dopo aver scelto anche MATERIA, nella casella di riepilogo devono restare tutti e soli i libri appartenenti a quella scuola e di quella data materia....


forse sto chiedendo un pò troppo, infatti su "DOPO EVENTO" due requery non me le accetta proprio :cry:

grazie in anticipo
mikecodadilupo
Utente Junior
 
Post: 38
Iscritto il: 18/04/06 10:52

Postdi archimede » 12/10/06 09:40

mikecodadilupo ha scritto:oltre alle tabelle SCUOLA e MATERIE, ho una tabella LIBRI cosi fatta:
IDLibro, Titolo, Autore, Codice, Casa Editrice, Materia, Scuola
Siccome ogni Materia è già associata a una Scuola (il che sembra un po' strano: la stessa materia non puoi averla in due scuole? - ma questa è un'altra faccenda), il campo Scuola qui sembra ridondante.
mikecodadilupo ha scritto:1. all'apertura della maschera, prima ancora di scegliere SCUOLA e MATERIA, nella casella di riepilogo mi appaiono tutti i libri memorizzati (solo i campi codice,titolo e autore, vanno piu che bene).
SELECT IDLibro, Titolo, Codice, Autore FROM LIBRI ORDER BY Titolo; (N. colonne 4, Colonna associata 1).

mikecodadilupo ha scritto:2. non appena scelgo una voce dalla casella SCUOLA, allora oltre ad avviarsi la requery per la casella combinata MATERIE, nella casella di riepilogo devono restare solo i libri della scuola scelta.
Nell'evento Dopo Aggiornamento del campo Scuola metti la seguente Routine:
Codice: Seleziona tutto
Private Sub Scuola_AfterUpdate()
    Me!Materia.Requery
    Me!Materia = Null
    Me!Libri = Null
    Me!Libri.RowSource = "SELECT IDLibro, Titolo, Codice, Autore FROM LIBRI WHERE Scuola=" & Me!Scuola & " ORDER BY Titolo;"
End Sub

mikecodadilupo ha scritto:3. dopo aver scelto anche MATERIA, nella casella di riepilogo devono restare tutti e soli i libri appartenenti a quella scuola e di quella data materia
Nell'evento Dopo Aggiornamento del campo Scuola metti la seguente Routine:
Codice: Seleziona tutto
Private Sub Materia_AfterUpdate()
    Me!Libri.RowSource = "SELECT IDLibro, Titolo, Codice, Autore FROM LIBRI WHERE Materia=" & Me!Materia & " ORDER BY Titolo;"
    Me!Libri = Null
End Sub
Molto grezzo, ma dovrebbe darti un'idea.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mikecodadilupo » 13/10/06 08:30

ho messo il codice così come è (con soltanto le ovvie modifiche relative al mio caso) e mi capita una cosa strana:

quando apro la maschera, nella casella di riepilogo mi spuntano tutti i libri in archivio;

quando seleziono la scuola scompaiono tutti;

quando seleziono anche la materia allora mi spuntano esattamente quelli che cerco, cioè quelli relativi a quella scuola e a quella materia.


ho provato a variare il codice della casella combinata relativa a SCUOLA ma se sistemo una cosa ne rovino un'altra..... :evil:

cmq...oramai è solo questione di tempo..il meccanismo è abbastanza chiaro....grazie
mikecodadilupo
Utente Junior
 
Post: 38
Iscritto il: 18/04/06 10:52


Torna a Applicazioni Office Windows


Topic correlati a "ACCESS - caselle combinate sequenziali":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti