Newsgroup: it.comp.appl.access
Titolo: Gestione di un questionario

Salve a tutti,
vorrei realizzare un DB che consenta la gestione di questionari.
I questionari sono solo cartacei e, dopo che sono stati compilati, 
l'operatore deve inserire le risposte in Access.
Le domande del questionario prevedono, come risposta, solo un valore 
numerico (tipicamente un voto da 1 a 10).
Veniamo ad Access (versione 2003).
Ho creato una tabella in cui l'utente può inserire l'elenco delle domande 
(poiché vorrei fare un'applicazione che non sia legata al singolo 
questionario del momento, ma che sia più generica e utilizzabile anche per 
futuri questionari senza dover mettere sempre mano al codice).
Ho creato una tabella con l'ID del questionario, utilizzata come base per la 
maschera di inserimento delle risposte.
Ho creato la tabella delle risposte, in cui i campi sono l'ID della domanda, 
l'ID del questionario, e la risposta vera e propria.
Ora però sono bloccato, perché vorrei inserire - nella maschera dei 
questionari - una sottomaschera che prende i dati dalla tabella delle 
risposte, ma quando inserisco un nuovo record "questionario" la 
sottomaschera non mi presenta l'elenco delle domande.
In un messaggio di qualche giorno fa ("Passare ad un record nuovo scrivendo 
il nuovo ID") si suggeriva - per un problema simile - di fare una insert su 
Form_afterupdate, ma io non so a priori quante sono le domande.
Avete qualche suggerimento?
    Daniele

Daniele ha scritto:



Se ho capito bene, per inserire per ogni questionario tutte le schede di
risposta hai bisogno di realizzare una maschera con due sottomaschere tutte
sincronizzate.
per ottenere ciò dovresti realizzare:
a) una tabella per i sondaggi (id_sondaggio, descrizione_sondaggio)
b) una tabella per conservare genericamente le domande del sondaggio
(id_sondaggio, id_domanda, domanda)
c) una tabella delle interviste (id_sondaggio, id_intervista)
d) una tabella con le risposte (id_sondaggio, id_intervista, id_domanda,
risposta)
maschera sondaggi (principale) maschera semplice
maschera interviste (sottomaschera di sondaggi)maschera semplice
         maschera risposte(sottomaschera di interviste) in foglio dati
le maschere sondaggi e interviste devono essere collegate con id_sondaggio;
le maschere interviste e risposte con id_sondaggio e id_intervista.
preventivamente devi censire il sondaggio nelle sue due parti(idendificativi e
domande)
quando andrai a inserire le risposte, per ogni sondaggio selezionato, ti
apparirà un'intervista e nella sua sottomaschera le domande.
spero di essere stato utile.
a presto
 
-- 

 ha scritto nel messaggio 
news:in26gk$hk8$1...@news.nonsolonews.it...

È quasi così, nel senso che avevo pensato di usare un file di Access per 
ogni sondaggio, e quindi la struttura si semplifica perché ho bisogno solo 
di 3 tabelle: domande, interviste e risposte.
Tabella "domande":
 - id_domanda (contatore, chiave primaria)
 - domanda (testo)
Tabella "interviste":
 - id_intervista (contatore, chiave primaria)
Tabella "risposte":
 - id_intervista (intero)
 - id_domanda (intero)
 - risposta (intero)
Ho anche inserito le relazioni uno-a-molti tra le tabelle "domande" --> 
"risposte" (sul campo id_domanda) e "interviste" --> "risposte" (sul campo 
id_intervista).
Ho creato la maschera principale (basata sulla tabella "interviste"), e già 
qui sono bloccato perché non riesco ad inserire nuovi record, essendoci solo 
un unico campo di tipo contatore.
Pertanto ho aggiunto un campo "dummy" alla tabella "interviste": ora, 
scrivendo qualcosa in questo campo, posso aggiungere nuovi record.
Ho inserito in questa maschera una sottomaschera (basata sulla tabella 
"risposte"), collegando le due tabelle col campo "id_intervista".
Io vorrei che, quando viene aggiunto un nuovo record "intervista", la 
sottomaschera mi presenti già TUTTE le domande, in modo che io debba solo 
inserire le risposte, e invece mi appare un foglio dati vuoto dove mi viene 
solo precompilato il campo "id_intervista"...
Spero di essermi spiegato!
   Daniele

 ha scritto nel messaggionews:in26gk$hk8$1...@news.nonsolonews.it...

Se ho capito bene lo scenario, mi viene da dire che, a fronte
dell'inserimento di un nuovo record nella tabella "Interviste" dovrai
eseguire una query di accodamento dalla tabella "Domande" alla tabella
"Risposte".
Cioe' nell'evento AfterInsert della form in cui crei il nuovo record
delle interviste dovrai fare una currentDb.Execute "INSERT INTO
Risposte ( id_intervista, id_domanda ) SELECT " & Me.id_intervista & "
AS CodiceIntervista, id_domanda FROM Domande;".
HTH
Popi