Credo che tu non chiuda il primo if
codice:
<%
numrecord=rs.recordcount
g=0
do while not rs.eof
codice_articolo = rs("codice_articolo")
sql1= "select * from listini where codice_articolo='"&codice_articolo&"'"
RS1.open sql1,conn,3,3
if not rs1.eof then%>
<table width="530">
<tr>
<td colspan="4" height="1" style="border-style: none; border-width: medium"></td>
</tr>
</table>
<table border="1" width="530" id="table3" cellspacing="0" cellpadding="3" bordercolor="#FFFFFF" bgcolor="#C0C0C0" style="border-left-width: 0px; border-right-width: 0px">
<tr>
<td style="border-style: solid; border-width: 1px" width="20%"><p align="center"><font face="Verdana" size="1"><%=rs("codice_articolo")%></font></td>
<td style="border-style: solid; border-width: 1px" width="40%"><font face="Verdana" size="1"><%=rs("descrizione")%></font></td>
<td style="border-style: solid; border-width: 1px" width="12%">
<%if rs("file_scheda") <> "" then%>
<a target="_blank" href="../../scheda_articolo/<%=rs("file_scheda")&".zip"%>">
<p align="center"><font face="Verdana" size="1">Scheda</font></a>
<%else%>
<p align="center"><font face="Verdana" size="1">Scheda</font>
<%end if%>
</td>
<td bgcolor="#C0C0C0" width="16%" align="center">
<%if rs("file_certificato") <> "" then%>
<a target="_blank" href="../../certificato_articolo/<%=rs("file_certificato")&".zip"%>">
<p align="center"><font face="Verdana" size="1">Certificato</font></a>
<%else%>
<p align="center"><font face="Verdana" size="1">Certificato</font>
<%end if%>
</td>
</tr>
<tr>
<td bgcolor="#C0C0C0" colspan="2">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>
<%rs1.close
'seleziono il prezzo dalla tabella listini dell'articolo
sql1= "select prezzo from listini where codice_articolo='"&rs("codice_articolo")&"' and codice_listino='"&codice_listino&"'"
RS1.open sql1,conn,3,3
'verifico se l'articolo è presente anche nella tabella listini_personalizzati
sql2= "select * from listini_personalizzati where codice_cliente = '"&codice_cliente&"' and codice_articolo='"&codice_articolo&"'"
rs2.open sql2,conn,3,3
'se è presente nella tabella LISTINI PERSONALIZZATI stampo il prezzo contenuto in essa
if not rs2.eof then%>
<font face="Verdana" size="1">
€ <%
'prezzo = FormatNumber(rs2("prezzo"),2)
response.write prezzo%> + <%=rs("iva")&"%"%>IVA</font>
<%
'altrimenti stampo il prezzo contenuto nella tabella LISTINI
else%>
<font face="Verdana" size="1">
€ <%
prezzo = FormatNumber(rs1("prezzo"),2)
response.write prezzo%> + <%=rs("iva")&"%"%>IVA</font>
</td>
<%end if%>
<td>
<p align="center"><font face="Verdana" size="1">Confezione</font></td>
<td>
<p align="center">
<input type="text" name="qta" size="5" maxlength="4" value="1"> </td>
<% host=request.ServerVariables("HTTP_HOST")
path=request.ServerVariables("PATH_INFO")
query_string=request.ServerVariables("QUERY_STRING")
url = "http://"&host&path&pagina&"?"&query_string
session("url") = url
%>
<input type="hidden" name="url" value="<%=url%>">
</tr>
</table>
<%'nel caso in cui è presente un solo articolo non creo nessun array(es.document.formdati.qta[0].value
if numrecord=1 then%>
</td>
<td bgcolor="#C0C0C0" style="border-style: solid; border-width: 1px" width="12%">
<a href="java script:self.location.href='aggiungi_carrello.asp?quantita=' + document.formdati.qta.value + '&codice_articolo=<%=codice_articolo%>&prezzo=<%=prezzo%>&iva=<%=iva%>';">
<p align="center"><font face="Verdana" size="1">Aggiungi</font></a>
</td>
<%else%>
<td bgcolor="#C0C0C0" style="border-style: solid; border-width: 1px" width="12%">
<a href="java script:self.location.href='aggiungi_carrello.asp?quantita=' + document.formdati.qta[<%=g%>].value + '&codice_articolo=<%=codice_articolo%>&prezzo=<%=prezzo%>&iva=<%=iva%>';">
<p align="center"><font face="Verdana" size="1">Aggiungi</font></a></a>
</td>
<%end if%>
<td bgcolor="#C0C0C0" width="16%" align="center" style="border-bottom-color: #FFFFFF; border-bottom-width: 1px">
[b]
<font face="Verdana" size="1">
Riepilogo</font></td>
</tr>
</table>
<%
g=g+1
rs1.close
rs2.close
End if
rs.movenext
loop
%>