Newsgroup: it.comp.www.asp
Titolo: questionario in Asp

Ho avuto incarico di pubblicare nella Intranet
aziendale tramite ASP il questionario per l'ammissione
ai corsi di formazione finora gestiti tramite Access.
Nel database Access ho due tabelle, una per le domande e
un'altra per le risposte (intese come alternative) tra 
loro in relazione uno a molti in quanto ad ogni domanda
corrispondono tre possibili risposte.
Il mio problema è riuscire a visualizzare domande e alternative
in maniera adeguata in una pagina Asp come si riesce
a farlo in una maschera o nei report a stampa.
Facendo eseguire una query che visualizza al contempo
domande e risposte ho provato ad inserire del codice come il
seguente, ma ovviamente il testo delle domande viene
ripetuto tante volte quante sono le risposte alternative:
Do While Not Presenta.EOF
Response.Write("<TR>")
Response.write("<TD colspan=2>" & Query("Domanda") & "</TD>")
Response.write("</TR>")
Response.write("<TR>")
Response.write("<TD>" & Query("Risposte"))
Response.Write("<TD ALIGN='center'><input type='checkbox' 
NAME='scelta' VALUE=" & varIdRisposte & ">")
Response.write("</TR>")
Presenta.MoveNext
Loop
Response.Write("<INPUT TYPE='submit' VALUE='Invia'>")
Response.Write("</FORM>")
Response.Write("</TABLE>")
Non so proprio che pesci prendere.
Qualcuno può darmi suggerimenti?
Grazie mille
Fabrizio
-- 
Posted from  [80.17.24.245] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 domande e risposte
e' proprio questo il tuo problema, usa (come in Access) due recordset e
scorrili insieme (per ogni record della tabella principale mostra le
corrispondenti risposte possibili del subrecordset).
PS: se proprio vuoi utilizzare una unica query fai una query a campi
incrociati oppure costruisci una tabella unica che contiene domanda,
risposta1, risposta2, risposta3 se non prevedi di ampiarla; e comunque non
ne vale la pena normalizzare per un campo solo (risposta) che deve essere,
comunque, caricato con il campo chiave esterna.
La "normalizzazione" e' una questione, in generale, "teorica" devi poi
valutarne la convenienza in termini di dimensioni del db, di tempo di
creazione e manutenzione e di valida motivazione (In questo caso utilizzando
una unica tabella risparmi spazio e il db ha dei CONSTRAINTS in meno da
verificare), e soppratutto in vista dell'implementazine della logica
applicata al database (che nel tuo caso e' una complicazione).
Saluti
Simone Medas.


 
Sei stato gentilissimo.
Alla fine pare stia risolvendo con una query di
unione.
Ma per l'avvenire senz'altro darņ retta al tuo consiglio.
La normalizzazione non deve essere un dogma assoluto.
Grazie molte


>La normalizzazione non deve essere un dogma assoluto.
premesso che di dogmi non ce ne sono mai, se ho ben capito tu potresti
risolvere la cosa in questo modo: tabella domande tDomande con un
idDomanda, tabella risposte tRisposte con un idDomanda per ognuna
delle risposte, ok fin qui?  e sei bello che normalizzato.  le
risposte possono essere ovviamente in numero variabile per ognuna
delle domande.
poi:
dim cn
dim rstD
dim rstR
dim ssql
setto la connessione cn
ssql = "SELECT * FROM tDomande"
set rstD = cn.execute(ssql)
do until rstD.eof
   response.write rstD("TestoDomanda")
   ssql = "SELECT * FROM tRisposte WHERE idDomanda = " &
rstD("idDomanda")
   set rstR = cn.execute(ssql)
   do until rstR.eof
      response.write rstR("TestoRisposta")
      rstR.movenext
   loop
   rstD.movenext
loop
l'impaginazione html vedila tu.
-- 
ben fatto, in fretta, economico: scegline due.

 loop
Ammazza! cosě č molto piů semplice e pulito
di come ero riuscito a fare io.
E me ce so' pure scervellato.
Grazie tante comunque..


>Grazie tante comunque..
prego, mi sono dimenticato la chiusura dei recordset, sennò restano in
memoria e consumano risorse:
rstD.close
set rstD = nothing
idem per rstR.
