Ya te digo que el problema esta en el diseño de la tabla en la base de datos. Ahora veo que costos_maxirest posee el campo bme que actua de campo unico y que es ese el que tienes que actualizar.
Primero: La sentencia SQL
UPDATE no tiene ese formato que pones. Es:
UPDATE tabla SET campo=valor, campo2=valor2, campoN = valorN WHERE campoclave = valorClave
Y el
INSERT (insertar) es:
INSERT INTO tabla (campo1, campo2, campoN) VALUES (valor1, valor2, valorN)
Como ves UPDATE necesita al menos un campo de control (
clave) para que se actualize solo un registro o un grupo de ellos. Si no lo haces asi, actualiza TODOS los registros de la tabla.
Por otro lado.
Si lo que quieres es actualizar precisamente ese campo de control, lo mejor es insertar un nuevo campo en la tabla que actue de
indice primario y liberar el otro campo de esa labor. Pero como veo que lo que quieres hacer es actualizar (UPDATE) la tabla, veamos el otro metodo.
ASP permite cargar los datos de una busqueda en un objeto Recordset. Una vez almacenado en el, lo modificas. Esto suele funcionar en Bases de Datos de Microsoft (Access, MSSQL Server) porque a las tablas que no tienen indice primario, le asigna uno interno para controlar la posicion de cada registro en la tabla.
El codigo:
Donde tu pones:
Código:
if bme_actual<>"" or bme<>0 then
sSQL="UPDATE costos_maxirest (bme) values ('" & bme_actual & "')"
'y Ejecutamos la orden 30 veces
set objRS = Conn.Execute (sSQL)
end if
Yo lo haria asi (y me pillo los dedos porque esto es un peligro

)
Código:
if bme_actual<>"" or bme<>0 then
set objRS = Conn.Execute ("SELECT * FROM costos_maxirest WHERE bme = '" & bme & "'")
' Si existe el registro
if not objRS.EOF then
objRS("bme") = bme_actual
objRS.update()
end if
objRS.close()
end if
Mas no puedo hacer. Sigo pensando que crear una tabla temporal que incluya un indice primario autonumerico y volcar los datos de la tabla costos_maxirest es la mejor opcion.
Un saludo