Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/12/2002, 12:23
jordan
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 5 meses
Puntos: 0
Si acaso les comento las líneas !!!

Esta es la página catalogo.asp, la puedo llamar desde el menu, pasandole el parametro familia o desde la misma página, para grabar el pedido.

Primero miro si la referencia1 (sería el primer dato del formulario), tiene algún dato, si no vale nada, es que vengo desde el menu, por lo que solo tengo que poner el catálogo.

if Request.form ("Referencia1") <> "" then

Alguna varibles que he puesto, podría ponerla directamente, pero para probar si tengo el error en algún valor, lo hago así.

Abro la BD y miro registros que tiene esa familia con la condición familia.

set fami = Request.Form("familia1")
Session ("wfami") = fami
SQL1 = "SELECT * FROM per_art where familia='" & fami & "'"
RS1.Open SQL1, BD, 1, 2
conta = RS1.RecordCount


Hago un bucle y hago una pasada por cada registro que tiene la tabla.

For p = 1 to conta

Si cantidad&p no tiene ningún valor, no hago nada, si tiene algún valor entro en el if.

If Request.form ("cantidad"&p) <> "" then

Hago el select con los valores cliente, referencia y fecha.

ref = request.form ("referencia"&p)
SQL2 = "SELECT * FROM per_ped where codigo=" & session ("cli") & " and referencia='" & ref & "' and fecha=" & session ("fecha")
RS2.Open SQL2, BD, 2, 3, 1


Si el recordset, es eof, quiere decir que no hay ningún registro que cumpla con estas condiciones, por lo que añado un registro.

if RS2.eof then
RS2.AddNew
RS2.Fields("codigo") = Session ("cli")
RS2.Fields("Referencia") = Request.Form ("Referencia"&p)
RS2.Fields("Cantidad") = Request.Form ("Cantidad"&p)
RS2.Fields("Precio") = Request.Form ("Precio"&p)
RS2.Fields("Fecha") = Session("Fecha")
RS2.Fields("descripcion") = Request.Form ("descripcion"&p)


Si existe un registro con estas condiciones, sumo la cantidad a la que ya tenia.

else
wcantidad = RS2.Fields("cantidad")
RS2.Fields("cantidad") = wcantidad + request.form ("cantidad"&p)
end if


Aqui guardo el registro, tanto si es uno nuevo, como si es añadido

RS2.update
RS2.close
End If

Vuelvo a leer la siguiente linea del formulario

next

Bueno, pues esto no da errores (visibles), pero solo me crea registros nuevos, tanto si existe como si no. Es como si siempre fuera eof. Es posible que la fecha que tengo en la variable de session, creada así

Dia = Day(Date)
Mes = Month(Date)
Anyo = Year(Date)
Session ("Fecha") = Dia & "/" & Mes & "/" & Anyo


Sea diferente que la que guarda la BD?