
19/03/2004, 07:44
|
| | Fecha de Ingreso: marzo-2003 Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 22 años, 2 meses Puntos: 9 | |
Problema con Update Tengo el siguiente código para validar un aupdate. Lo que pasa es que la clave primaria está compuesta por Usario, dia, mes, año, hora.
Ahora bien, si tengo el siguiente listado
como sigue Usuario, hora, dia, mes, año, solicitante, estado, consul
yo 12:00 13 03 2004 null pendiente 99
yo 12:30 13 03 2004 Alfonso Iturra Nuevo 100
Lo que quiero hacer por ejemplo..si hago una modificación de hora dentro de la misma fecha me va a arrojar un error y para ello debo validar la actualizacion...
Por ejemplo, si quiciera modificarle la hora para las 12:00 al usuario Alfonso, deberia hacer lo siguiente:
Consultar a la base de datos si hay una hora ese mismo dia con a las 12:00 y si está Pendiente o Vacia, si no existe, debería hacer la modificacion(Cosa que hace bien) pero si existe... debo dejar el campo autonumerico (consul =99) en una variable(Consulaux) y decirle primero .... que borre ese registro y luego actualice con la hora (12:00) del registro consul = 100 pero no lo hace... AYUDA!!!! PLEASE!!!!
consul = request.querystring("consul")
Set Mi_conexion = Server.CreateObject("ADODB.Connection")
Set res = Server.CreateObject("ADODB.Recordset")
Mi_conexion.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Inetpub\wwwroot\horas\horas.mdb;"
' Selecciono primero los datos del consul para verificar que no hay duplicados, claro que lo hago con la llave primaria
' y no con el consul..que es un autonumerico para facilitar el trabajo
sql = "SELECT * FROM actividades WHERE usuario = '"&usuario&"' and año = '"&anno&"' and mes = '"&mes&"' and dia = '"&dia&"' and hora = '"&hora&"' "
Set res = Mi_conexion.Execute(sql)
If res.BOF and res.EOF then
sql = "UPDATE actividades SET año = '" & anno & "' , mes = '" & mes & "' , dia = '" & dia & "', hora = '" & hora & "', estado = '" & estado & "' WHERE consul = " & consul & ";"
Set Res = Mi_Conexion.Execute(sql)
Mi_Conexion.Close
Set Mi_Conexion = Nothing
response.redirect"aviso.asp"
else ' si hay un registro ya grabado
while res.eof
consulaux = res("consul")
wend
response.write(consulaux)
sql = "Delete * from actividades where consul = "&consulaux&" "
Set Res = Mi_Conexion.Execute(sql)
Mi_Conexion.Close
Set Mi_Conexion = Nothing
response.write("andate a la xux")
end if ' fin del if del BOF and EOF
El error que arroja es el siguiente
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'consul ='.
/horas/update.asp, line 64
__________________ Buena Vida...
Francisco
Última edición por Bluesman74cl; 19/03/2004 a las 08:04 |