Casella combinata e query di selezione

di
Anonimizzato13077
il
11 risposte

Casella combinata e query di selezione

Saluti!
Sono nuovo del forum e anche abbastanza novizio in access( 2013)
Ho un problema il mio database è costituito da tre tabelle la prima sono indicati tutti i nomi degli studenti, nella seconda che è collegata ci sono memorizzate le scelte fatte dai ragazzi nella partecipazione a certi progetti e il codice numerico collegato al' ID dello studente nella tabella principale.
Per inserire il nome dei progetti ho generato un altra tabella dove sono indicati i nomi dei progetti, in maniera tale che con una finestra a tendina chi deve inserire le scelte dei progetti lo faccia sempre scegliendo la stessa dicitura.
Sto cercando di fare una query di selezione che mi faccia uscire la lista dei nomi che partecipano a un determinato progetto.
Ho provato usando Like "*" & [progetto] & "*" ma restituisce sempre una casella vuota.
Qualcuno mi può aiutare?
Grazie in anticipo.

11 Risposte

  • Re: Casella combinata e query di selezione

    Io mi sono fatto la seguente idea di struttura tabelle:

    Studenti
    IDStudente (contatore, chiave primaria)
    Nome
    Cognome
    ...altri campi anagrafici

    Progetti
    IDProgetto (contatore, chiave primaria)
    NomeProgetto

    Scelte
    IDScelta (contatore, chiave primaria)
    IDStudente (numerico)
    IDProgetto (numerico)

    Relazioni:
    Studenti.IDStudente uno-a-molti con Scelte.IDStudente
    Progetti.IDProgetto uno-a-molti con Scelte.IDScelta

    Puoi confermare la struttura?
    Hai creato correttamente le relazioni uno-a-molti con la spunta su "Applica integrità referenziale"?
    Se mi confermi tutto, puoi dire esattamente la lista campi della tua query?
  • Re: Casella combinata e query di selezione

    Inanzitutto grazie!
    le mie tre tabelle sono cosi strutturate:
    Alunni:
    id alunni chiave primaria
    nome cognome
    ecc..

    Progetti scelti
    Progetto
    codice allievo (tra id alunni e codice allievo rel. uno a molti)

    Tipi di progetto
    id chiave primaria (in relazione uno a uno con progetto)
    tipo di progetto

    quindi piu o meno come avevi ipotizzato
    come ripeto vorrei avere una query che tirasse fuori da alunni tutti quelli che hanno scelto lo stesso progetto.
    Ciao e ancora grazie
  • Re: Casella combinata e query di selezione

    danlui ha scritto:


    Tipi di progetto
    id chiave primaria (in relazione uno a uno con progetto)
    tipo di progetto
    Sei sicuro della relazione uno-a-uno?
    Dovrebbe essere [Tipi di progetto].[IDProgetto] uno-a-molti con [Progetti scelti].[Progetto]
    Sottointendo che quest'ultimo campo è numerico altrimenti non ci troviamo ai conti.

    La tua query deve importare tutte e 3 le tabelle, poi trascini nella griglia i seguenti campi:
    Tipo di progetto
    Nome Cognome
    il criterio sul campo [Tipo di progetto] potrebbe essere quello da te proposto, ma un semplice:
    Like [Digita il Tipo di progetto]
    direi che è preferibile per darti la possibilità di scrivere il testo preciso. Quando vuoi un testo generico, aggiungi asterischi prima e dopo quando appare la finestra del parametro.
  • Re: Casella combinata e query di selezione

    Ho inserito come mi hai detto
    ma mi manda questo messaggio "tipo non corrispondente nell'espressione"
    Allegati:
    le relazioni cosi come appaiono
    le relazioni cosi come appaiono
  • Re: Casella combinata e query di selezione

    Mi baso dalla immagine che hai allegato. Questi i miei suggerimenti:
    1. Rinomina il campo ID (nella tabella [Tipi di progetto]) in IDProgetto
    2. Idem rinomina il campo Progetto (in tabella Scelte) in IDProgetto. Mi raccomando deve essere numerico.
    3. Nella tabella Scelte non esiste un campo chiave primaria. Per quanto superfluo, io preferisco inserirlo sempre e comunque. Considera ciò facoltativo.
    4. La relazione fra Progetti e Scelte attraverso il campo IDProgetto DEVE essere uno-a-molti.
    5. Non colgo il significato del campo "Ore di partecipazione"

    Dopo tutte queste correzioni puoi impostare la query come di ho detto. Ti faccio notare che, nella query, nonostante la tabella di congiunzione [Scelte] non farebbe testo fra i campi nella griglia, però è indispensabile per mantenere coerente il risultato finale della query stessa.
  • Re: Casella combinata e query di selezione

    Il campo progetto in tabella scelte è in formato testo breve e contiene il titolo del progetto
    Grazie ancora della tua pazienza e disponibiltà
    che faccio?
  • Re: Casella combinata e query di selezione

    Premetto che non sono pratico della relazione uno-a-uno in quanto si preferisce inglobare nella stessa tabella il campo.
    Se non ci siamo chiariti, allora:

    1. Due campi relazionati devono avere le stesse caratteristiche. Ad esempio entrambi Testo. Più spesso accade che il campo della tabella madre sia Contatore (cioè Numerico speciale), mentre il campo della tabella figlia sia Numerico (Intero lungo)...insomma questi due campi sono entrambi numerici.

    2. È necessario capire perchè tu vuoi che quella relazione sia uno-a-uno.
    Le relazioni si impostano dopo aver fatto un congruo ragionamento.
    Un Alunno può partecipare a più Progetti.
    Un Progetto può essere partecipato da molti Alunni? Io dico di sì
    Le tabelle Alunni e Progetti sono in relazione molti-a-molti e ciò viene esplicitato attraverso la tabella di congiunzione Scelte. Ecco perchè ti ho segnalato le due relazioni uno-a-molti.
  • Re: Casella combinata e query di selezione

    Forse è meglio che ti faccia un quadro di quello che dovrebbe fare questo database dal quale però non riesco estrarre l'inseme degli studenti che vogliono fare lo stesso progetto.
    Nella tabella alunni circa 1000 record ho associato una altra tabella (progetti scelti)con la relazione uno a molti dove trovo il nome dei vari progetti.
    Per rendere standard i nomi dei progetti ho creato un altra tabella in maniera che nell'inserimento dei progetti appaia una tendina coi nomi dei vari progetti da selezionare, che dovrebbe scrivere nel campo progetto della tabella progetti scelti.
    Il tutto funziona ma mi è impossibile separare tutti gli studenti che frequentano lo stesso progetto.
  • Re: Casella combinata e query di selezione

    danlui ha scritto:


    Forse è meglio che ti faccia un quadro di quello che dovrebbe fare questo database dal quale però non riesco estrarre l'inseme degli studenti che vogliono fare lo stesso progetto.
    Nella tabella alunni circa 1000 record ho associato una altra tabella (progetti scelti)con la relazione uno a molti dove trovo il nome dei vari progetti.
    OK. Il ragionamento è perfetto.

    danlui ha scritto:


    Per rendere standard i nomi dei progetti ho creato un altra tabella in maniera che nell'inserimento dei progetti appaia una tendina coi nomi dei vari progetti da selezionare, che dovrebbe scrivere nel campo progetto della tabella progetti scelti.
    Da come descrivi questa seconda parte del discorso, sospetto che tu abbia sentito il bisogno di costruire la tabella Progetti in un secondo momento, mentre prima digitavi a mano ogni singolo Progetto all'interno del campo Progetto nella tabella Scelte.
    Puoi confermare il mio sospetto?
    La tua necessità di creare una "casella combinata" (oppure ComboBox)(si chiama tecnicamente così quella che tutti chiamano comunemente il "menu a tendina") è legittima, ma manca una corretta impostazione della relazione fra Progetti e Scelte. Io, al posto tuo, non avrei creato il campo ID dentro la tabella Progetti. La tabella Progetti potrebbe avere un solo campo Progetto. Questo campo dovrà essere univoco, cioè la chiave primaria, e di tipo Testo. Il suo campo compagno Progetto nella tabella Scelte dovrà essere ugualmente di tipo Testo, avere la stessa dimensione caratteri (cioè la proprietà "Dimensione campo") in modo da uniformarsi al campo della tabella madre Progetti. La relazione fra questi 2 campi è di tipo uno-a-molti.

    danlui ha scritto:


    Il tutto funziona ma mi è impossibile separare tutti gli studenti che frequentano lo stesso progetto.
    Questo problema è strettamente legato al punto precedente.
  • Re: Casella combinata e query di selezione

    Ciao
    grazie ancora!
    Ho risolto, ho modificato in modo radicale il database un unica tabella con un campo che contiene i progetti inseriti non per nome ma con un codice.
    In questo modo basta nella query controllare se c'è quel codice.
    saluti e grazie ancora.
  • Re: Casella combinata e query di selezione

    Un'unica tabella??? Ma così avrai molti dati ripetuti che sarai costretto a digitare manualmente, sto parlando degli Alunni. A me sembra che tu faccia un passo indietro.
    Che il campo Progetto tu lo voglia pilotare con l'intero testo oppure con un codice, non modifica la sostanza del mio discorso relazionale su 3 tabelle. Anche un codice, poichè ripetuto per più Alunni, soggetto al rischio di una sbagliata digitazione, potrebbe aver bisogno di una casella combinata.
Devi accedere o registrarti per scrivere nel forum
11 risposte