Ciao a tutti,

il titolo del post è tutto un programma, ma proprio non sapevo come chiamarlo

il mio problema è questo,
in pratica ho 3 tabelle di access, uno "essenze" e l'altra "associazione_essenze" e l'altra "articoli"

in pratica ad ogni articolo sono associate un certo numero di essenze,
avendo come punto di riferimento l'"id_articolo"(tabella articoli) mi faccio stampare l'elenco delle essenze "essenze" e seleziono il checkbox nel caso in cui all'essenza x è associato il mio articolo y.


le 3 tabelle di access sono strutturate cosi'

tabella "articoli"
campi

id_articolo


tabella "essenze"
campi

id
nome_essenza
file

tabella "associazione essenze"
campi

id
id_articolo
id_essenza


questo il mio codice che mi permette di selezionare tutte le essenze esistenti ed in base all'id_articolo di vericare se sono associate a ques'ultimo e in caso affermativo "chekkare" la checkbox!!!

<form action="../essenze/conferma_modifica_associa_essenze.asp" method="post">

sql= "select * from essenze order by nome_essenza"
RS.open sql,conn,3,3


if not rs.eof then
%>

<%do while not rs.eof

sql1="SELECT id_essenza FROM associazione_essenze where id_articolo = "&id
rs1.open sql1,conn,3,3


ck = ""
if not rs1.eof then
do while not rs1.eof
if rs("id") = rs1("id_essenza") then ck= "checked" end if
rs1.movenext
Loop
end if
%>
<tr>
<td width="311" bgcolor="#EDEDED" height="8">
<font size="2"><%=rs("nome_essenza")%></font></td>
<td width="224" bgcolor="#EDEDED" height="8">
<p align="center"><input type="checkbox" name="essenza" value="<%=rs("id")%>" <%=ck%>>
</td>
</tr>

<%
rs1.close
rs.movenext
Loop
%>

<input type="submit" value="Conferma">
</form>


fin qui(in visualizzazione) nessun problema, il problema si verifica quando per esempio ad un prodotto(id_articolo) sono associate 2 essenze


quindi la tabella "associazione_essenze" avrà 2 record


per esempio

id_articolo id_essenza

1 10
1 11


l'aricolo con id_articolo 1 ha 2 essenze associate.ora, se io volessi eliminare un'essenza a lui associata non faccio nient'altro che desezionare il checkbox e cliccare sul submit "Conferma" e vado alla pagina successiva "conferma_modifica_associa_essenze.asp"!!!

in questa pagina faccio questo:

in pratica aggiorno la tabella "associazione_essenze" ma non riesco ad eliminare il record che ho deselezionato nella pagina precedente
(se non è più chekkato eliminalo dalla tabella)


come posso fare????


Call openConn(conn,rs)


id_articolo = session("id")
id_essenza = request("essenza")

array_essenze = ""

'creo gli elementi dell'array_recapiti
array_essenze= id_essenza


'splitto la stringa ","
array_essenze=split(array_essenze,",")


'ricavo il numero di elementi dell'array
numero_elementi_array = ubound(array_essenze)
response.write numero_elementi_array



if numero_elementi_array = -1 then

sql= "delete* from associazione_essenze where id_articolo = "&id_articolo
RS.open sql,conn,3,3
%><center><%response.write "Modifica/inserimento essenza/e avvenuto con successo"%></center><%
response.end


else

for each elemento in array_essenze

sql = "select * from essenze where id = "&elemento&" "
response.write sql
RS.open sql,conn,3,3


rs.close

sql= "select * from associazione_essenze where id_articolo = "&id_articolo&" and id_essenza = "&elemento
RS.open sql,conn,3,3

if rs.eof then

rs.close
rs.open "select * from associazione_essenze where id_articolo = "&id_articolo&" and id_essenza = "&elemento
'aggiungo un nuovo record
rs.addnew
rs("id_articolo")=id_articolo
rs("id_essenza")=elemento
rs.update


end if


rs.close
next


%>
<center><%=("Modifica essenza/e avvenuto con successo")%></center>
<%

End If
%>

spero di essere stato chiaro e non troppo lungo
grazie a tutti

ciao