Gör en INNER JOIN, du skall aldrig nästla recordset. Jag bytte även ut din gamla andra recordset-loop och satte det nya recordset:et (recSetbet) där det gamla var. Kanske borde du även överväga att använda execute istället för open med de där konstanterna. Jag stängde även connect och ditt recordset längst ner i koden.
[red]SQLbet = "SELECT * FROM betalning b INNER JOIN person p ON b.id = p.id WHERE" & _
"b.regyear = '" & request.form("regyear") & "' ORDER BY p.id, p.efternamn, p.fornamn, p.stad, p.land"[/red]
Set RecSetbet = CreateObject("ADODB.Recordset")
recSetbet.open SQLbet, Connect,1 , 2
' Om inga poster hittas
if recSetbet.eof then
response.write "<h3>Inga poster hittades.</h3>"
else
%>
<table width="650" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>ID</td>
<td>Förnamn</td>
<td>Efternamn</td>
<td>Ort</td>
<td>Land</td>
</tr>
<%
' Om poster hittas så körs loopen
i = 0
do until recSetbet.eof
' *** Här ges varannan rad i listan annan färg ***
i=i+1
if i mod 2=0 then
farg = " bgcolor='#F0F0F0'"
javafarg = "'#F0F0F0'"
else
farg = " bgcolor='#E4E4E4'"
javafarg = "'#E4E4E4'"
end if
do until recSetbet.eof
%>
<tr onMouseOut="this.bgColor=<%=javafarg%>" onMouseOver="this.bgColor='#FFFFFF'"<%=farg%>">
[red]<td><%=recSetbet("id")%></td>
<td><%=recSetbet("fornamn")%></td>
<td><%=recSetbet("efternamn")%></td>
<td><%=recSetbet("stad")%></td>
<td><%=recSetbet("land")%></td> [/red]
</tr>
<%
recSetbet.moveNext
loop
%>
</table>
<%
end if
[red]set recSetbet = nothing
set connect = nothing[/red]
%>