Tengo el siguiente codigo ASP:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/Conexion1.asp" -->
<%
Dim Notas
Dim Notas_numRows
Dim uni
Dim fac
Dim np
Set Notas = Server.CreateObject("ADODB.Recordset")
Notas.ActiveConnection = MM_Conexion1_STRING
Notas.Source = "SELECT * FROM [Nota Universidad]"
Notas.CursorType = 0
Notas.CursorLocation = 2
Notas.LockType = 1
Notas.Open()
Notas_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index
Repeat1__numRows = -1
Repeat1__index = 0
Notas_numRows = Notas_numRows + Repeat1__numRows
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<table border="2" cellpadding="2" cellspacing="2">
<tr>
<td>COD UNI PARCIAL</td>
<td>FACULTAD</td>
<td>NUM PLAZAS</td>
</tr>
<% While ((Repeat1__numRows <> 0) AND (NOT Notas.EOF)) %>
<tr>
<td><%uni=(Notas.Fields.Item("UNIVERSIDAD").Value) %><%response.write(uni)%></td>
<td><%fac=(Notas.Fields.Item("FACULTAD").Value)%>< %response.write(fac)%></td>
<td><%np=(Notas.Fields.Item("NUM PLAZAS").Value)%><%response.write(np)%></td>
</tr>
<%
If (np>0) Then
set ActualizaCan = Server.CreateObject("ADODB.Command")
ActualizaCan.ActiveConnection = MM_Conexion1_STRING
ActualizaCan.CommandText = "UPDATE [Nota Universidad] SET [Nota Universidad].CANDIDATO = True, [Nota Universidad].SUPLENTE = False WHERE ((([Nota Universidad].UNIVERSIDAD)='" + Replace(uni, "'", "''") + "') AND (([Nota Universidad].FACULTAD)='" + Replace(fac, "'", "''") + "') AND (([Nota Universidad].[NOTA UNIVERSIDAD])>=(SELECT Max([NOTA UNIVERSIDAD]) AS [NOTA MAXIMA] FROM [Nota Universidad] WHERE FACULTAD='" + Replace(fac, "'", "''") + "' and [UNIVERSIDAD]='" + Replace(uni, "'", "''") + "' AND CANDIDATO=false)));"
ActualizaCan.CommandType = 1
ActualizaCan.CommandTimeout = 0
ActualizaCan.Prepared = true
ActualizaCan.Execute()
ActualizaCan.ActiveConnection.Close
np=np-1
set ActualizaPlazas = Server.CreateObject("ADODB.Command")
ActualizaPlazas.ActiveConnection = MM_Conexion1_STRING
ActualizaPlazas.CommandText = "UPDATE [Nota Universidad] SET [NUM PLAZAS]='" + Replace(np, "'", "''") + "' WHERE [UNIVERSIDAD]= '" + Replace(uni, "'", "''") + "' AND FACULTAD='" + Replace(fac, "'", "''") + "' ;"
ActualizaPlazas.CommandType = 1
ActualizaPlazas.CommandTimeout = 0
ActualizaPlazas.Prepared = true
ActualizaPlazas.Execute()
ActualizaPlazas.ActiveConnection.Close
End if
%>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Notas.MoveNext()
Wend
%>
</table>
</body>
</html>
<%
Notas.Close()
Set Notas = Nothing
%>
Lo que pretendo es que me lea una fila, me ponga CANDIDATO=true Y SUPLENTE=false donde al alumno que tenga la maxima nota en esa Universidad/Facultad y me actualice el numero de plazas para el par Universidad/facultad. El caso es q no me salen el numero de candidatos que me tienen q salir, es decir, si en una Uni/Facul hay 3 plazas, me pone 4 o 5 candidatos. Alguien sabe por que??? No lo entiendo