Visualizzare una casella di riepilogo come input per query

di il
20 risposte

20 Risposte - Pagina 2

  • Re: Visualizzare una casella di riepilogo come input per query

    Branzi ha scritto:


    Ok quindi la cosa più naturale è quella di fare una tabella Giornali con i campi: NomeGiornale, DataPubbl, IDGiornale; una tabella Articoli con i campi: NomeArticolo, Tipologia, Descrizione. Ora, in un progetto del DB corretto come dovrei relazionare le due tabelle?
    Una tabella Giornali pensata così, avrà nel campo NomeGiornale il ripetersi di valori come "Il Sole 24 ore"; "Il Tempo"; ecc... Questa tabella deve chiamarsi Pubblicazioni e avere un IDPubblicazione (non IDGiornale). Al di sopra di questa tabella deve esistere una tabella Giornali con i seguenti campi: IDGiornale/NomeGiornale. OK, il campo NomeGiornale comparirà soltanto una volta e questo garantirebbe la sua UNIVOCITA'...si potrebbe anche relazionare:
    Giornali.NomeGiornale uno-a-molti con Pubblicazioni.NomeGiornale
    in questo caso potresti anche non avere il campo IDGiornale (relativamente supefluo)...ma...devi sapere che si preferisce più comodamente usare per prassi i campi ID numerici, più veloci e immediati per Access (si tratta di fare un discorso che va un po' per il sottile).
    Ritornando alla domanda "come faccio a relazionare"? La tabella figlia (quella di arrivo), quando non ce l'ha tale campo, bisogna crearlo appositamente. Di conseguenza la tabella Articoli deve contenere un campo IDPubblicazione. Riepilogando tutto, schematizzerei così:

    Giornali
    IDGiornale (Numerazione automatica, chiave primaria)
    NomeGiornale

    Pubblicazioni
    IDPubblicazione (Numerazione automatica, chiave primaria)
    IDGiornale (numerico)
    Data (data)
    Numero (numerico, da digitare manualmente)

    Articoli
    IDArticolo (Numerazione automatica, chiave primaria)
    IDPubblicazione (numerico)
    Titolo
    Descrizione
    Pag (numerico)
    IDGiornalista (numerico)
    (non devi includere qui il campo Tipologia o Categoria, vedi il seguito)

    Giornalisti
    IDGiornalista (Numerazione automatica, chiave primaria)
    Nome
    Cognome

    Categorie
    IDCategoria (Numerazione automatica, chiave primaria)
    Categoria

    Articoli-Categorie
    IDAC (Numerazione automatica, chiave primaria)
    IDArticolo (numerico)
    IDCategoria (numerico)

    Relazioni:
    Giornali.IDGiornale uno-a-molti con Pubblicazioni.IDGiornale
    Pubblicazioni.IDPubblicazione uno-a-molti con Articoli.IDPubblicazione
    Giornalisti.IDGiornalista uno-a-molti con Articoli.IDGiornalista
    Articoli.IDArticolo uno-a-molti con Articoli-Categorie.IDArticolo
    Categorie.IDCategoria uno-a-molti con Articoli-Categorie.IDCategoria

    Come puoi notare ho preferito usare sempre relazioni fra campi ID Numerazione automatica------>Numerico per tenere fede alla prassi consolidata.

    Branzi ha scritto:


    In tutto questo continuo a non trovare la motivazione per cui la selezione degli articoli effettuata nella casella di riepilogo presente nella mia MascheraGiornali non riesca ad essere passata alla query. Quando gli dico di effettuare la ricerca avendo selezionato determinati articoli lui mi restituisce una tabella vuota, ma la query la esegue.
    Questo lo vediamo con calma in un secondo momento. A me sembra che il problema non si esaurisca soltanto in questa unica ristretta osservazione. Ritengo che, soltanto quando avremo sistemato tutto correttamente, potremo risolvere questo, e non solo, problema in maniera più veloce ed elegante. Se tentassimo di dare una unica risposta, sono sicuro che si presenteranno insidie sempre più gravi più in là.
  • Re: Visualizzare una casella di riepilogo come input per query

    Eccomi Osvaldo, scusa il ritardo nella risposta ma non avevo notato che il tuo post era finito nella seconda pagina!
    Ho fatto le modifiche che mi hai suggerito, ora?
  • Re: Visualizzare una casella di riepilogo come input per query

    Adesso bisognerebbe riformulare la domanda iniziale, ma partendo da non si da dove, considerato che sono cambiate molte cose.
    Guardando la finestra relazioni, penso sia opportuno costruire qualche maschera/sottomaschera. Io ci vedrei la seguente organizzazione Pubblicazioni/Articoli/Articoli-Categorie. Sfrutta la procedura guidata (dai un'occhiata alla guida in linea per vedere come si fa) che stabilirebbe la seguente gerarchia:
    Pubblicazioni (maschera principale)
    Articoli (sottomaschera di Pubblicazioni)
    Articoli-Categorie (sottomaschera di Articoli)
    durante la procedura ti consiglio di includere tutti i campi di tutte e 3 le tabelle.
  • Re: Visualizzare una casella di riepilogo come input per query

    Quello che non ho capito è se è necessario popolare anche la tabella articoli-categorie, quella che serve per generare la relazione tra articoli e categorie di tipo molti a molti. Se si, cosa ci dovrebbe andare dentro?
  • Re: Visualizzare una casella di riepilogo come input per query

    OsvaldoLaviosa ha scritto:


    La tua descrizione è leggermente più chiara...spero di riuscire ad afferrare la soluzione.
    Quando parlo di oggetti intendo dire Tabelle, Query, Maschere, Report, ecc...
    1. Crea una query in cui importi la tabella NOMI
    2. Importa il campo Nome e imposta Ordinamento: Crescente
    3. Salva la query con nome NomiOrdinati (ti serve per costruire una casella di riepilogo coerentemente ordinata)
    4. Vai nella maschera dove volevi la tua casella di riepilogo, costruisci (se non ce l'hai già) la casella di riepilogo e imposta le proprietà:
    Tipo origine riga: Tabella/query
    Origine riga: NomiOrdinati
    5. Salva la struttura della maschera
    6. Vai in visualizzazione struttura TuaQuery
    7. Al campo Nome, in corrispondenza di Criterio, devi scrivere quanto segue:
    [Maschere]![NomeMaschera]![NomeCasellaRiepilogo]
    dove [Maschere] è obbligatorio, gli altri due contenuti li devi ovviamente personalizzare
    8. Salva la query
    9. Ritorna in visualizzazione struttura TuaMaschera
    10. A questo punto devi associare un Evento che faccia in modo di aprire automaticamente la query, dopo aver scelto un valore dalla casella di riepilogo. Io direi che potresti andare fra le proprietà della casella di riepilogo, scheda Eventi, Dopo aggiornamento....mmm, aspetta, ho dimenticato un passaggio, vai al punto 11.
    11. Vai alle macro, clicca sul tasto in alto Nuovo, si aprirà una macro in visualizzazione struttura
    12. Nel primo rigo Azioni, scrivi:
    ApriQuery / Nome query: TuaQuery
    13. Salva la macro con nome X
    14. Ritorna al punto 10. e all'evento Dopo aggiornamento della casella di riepilogo, devi scrivere X
    15. Salva la maschera

    Spero di aver interpretato correttamente il tutto. Altrimenti dovresti raccontare un po' meglio tutti i campi, le loro provenienze da quali tabelle ecc...
    Io ho lo stesso problema solo che vorrei poter selezionare più di un record dalla casella di riepilogo in modo tale da aprire una query o un report filtrando solo gli elementi selezionati
  • Re: Visualizzare una casella di riepilogo come input per query

    Apri un nuovo 3d non riprendere roba vecchia, eventualmente se risulta utile metti un riferimento a questo 3d.
Devi accedere o registrarti per scrivere nel forum
20 risposte