Hola Haven
Esta mañana a las 9:00 de Argentina escribí la respuesta a tu pregunta, pero como demoré bastante en escribirla, espiró la sesión, y cuando volví a loguearme, me dio un mensaje raro y mi respuesta se perdió
Ahora, antes de loguearme la escribí completa, te la transcribo, espero que te sirva
si dejaron en blanco prioridad:
Rs.Source = "select MAX(prioridad) from tareas where usuario = " & el_usuario & " and cliente = " & el_cliente
Rs.Open
' Revisamos si hay alguna prioridad cargada y le sumamos 1 a la mayor, caso contrario, ponemos 1
If Rs.EOF Then
Conn.Execute "Insert into tareas (usuario, cliente, fase, prioridad) values (" & el_usuario & ", " & el_cliente & ", " & la_fase & ", 1)"
Else
Conn.Execute "Insert into tareas (usuario, cliente, fase, prioridad) values (" & el_usuario & ", " & el_cliente & ", " & la_fase & ", " & Rs("prioridad") + 1 & ")"
End If
Rs.Close
Si establecieron un valor de prioridad
intercalar = false
Rs.Source = "select prioridad from tareas where usuario = " & el_usuario & " and cliente = " & el_cliente & " and prioridad = " & la_prioridad
' Si da vacío implica prioridad disponible
If Rs.EOF Then
Conn.Execute "Insert into tareas (usuario, cliente, fase, prioridad) values (" & el_usuario & ", " & el_cliente & ", " & la_fase & ", " & la_prioridad & ")"
' Si obtiene algun valor, deberemos intercalar la prioridad
Else
intercalar = true
End If
Rs.Close
If intercalar Then
Rs.Source = "select prioridad from tareas where usuario = " & el_usuario & " and cliente = " & el_cliente & " and prioridad >= " & la_prioridad & " order by prioridad desc"
Rs.Open
Do While Not Rs.EOF
Conn.Execute "Update tareas set prioridad = " & Rs("prioridad") + 1 & " where usuario = " & el_usuario & " and cliente = " & el_cliente & " and prioridad = " & Rs("prioridad")
Rs.MoveNext
Loop
Rs.Close
' Ya hicimos lugar para la nueva tarea
Conn.Execute "Insert into tareas (usuario, cliente, fase, prioridad) values (" & el_usuario & ", " & el_cliente & ", " & la_fase & ", " & la_prioridad & ")"
End If
Suerte