Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema Con .net

Estas en el tema de Problema Con .net en el foro de .NET en Foros del Web. Tengo el siguiente problema. He creado una tabla en access, con un ID (clave principal y autonumerico), un codigo, una fecha, una entrada y una ...
  #1 (permalink)  
Antiguo 25/03/2004, 03:57
 
Fecha de Ingreso: enero-2004
Mensajes: 75
Antigüedad: 20 años, 3 meses
Puntos: 0
Problema Con .net

Tengo el siguiente problema.

He creado una tabla en access, con un ID (clave principal y autonumerico), un codigo, una fecha, una entrada y una salida.

En el programa cuando le doy a entrar, en la base de datos se me graba la hora de entrada, luego cuando le doy a salir, con un UPDATE, guardo la hora de salida. Si le doy otra vez a entrar y salir me lo guarda igual que como el anterior.

El problema viene, cuando le doy a entrar, guarda en la base de datos. Y le vuelvo a dar entrar, me lo guarda en otra fila. En este momento que me lo guarda, quiero que me salga un mensaje diciendo que anteriormente no habia guardado una hora de salida.

Si guardo una hora de salida, se me guarda en el ultimo registro insertado.

Y si le vuelvo a dar a hora de entrada, como el ultimo registro tiene una hora de salida, no quiero que me salga el mensaje de que la ultima vez no guardo una hora de salida. Si no, que quiero q me salga un mensaje normal, diciendo, has entrado a tal hora.

La situacion es la siguiente:

ID CODIGO FECHA ENTRADA SALIDA
1 121 25/03/2004 9 9:30
2 121 25/03/2004 10 11
3 121 25/03/2004 12
4 121 25/03/2004 15 16

En el ID = 4, cuando insertara la hora de entrada, me saldria un mensaje diciendo "Antes no inserto la hora de salida"

En el siguiente registro (ID = 5) me guardaria la hora de entrada, y teoricamente el mensaje seria "Ha entrado a las 17" (por ejemplo)

A mi eso no me sale, pq a mi me pone, el otro mensaje ("Antes no ha insertado una hora de salida"(mentira)). debajo dejo el codigo, a ver si alguien sabe como hacerlo.

oData = Conexion.HoraEntrada("SELECT * FROM Presencia WHERE Codigo = '" & TextBox1.Text & "' and Salida is null and Fecha = '" & Fecha & "' ORDER BY ID DESC")

oDataHoraEntrada = Conexion.HoraEntrada("SELECT * FROM Presencia WHERE Codigo = '" & TextBox1.Text & "' and Salida is null and Fecha = '" & Fecha & "' ORDER BY ID DESC")

If oDataHoraEntrada.Tables("Presencia").Rows.Count = 0 Then

Grabar.ControlHoraEntrada(sComan, Me.TextBox1.Text, Me.HoraEntrada.Text, Fecha, MesActual)

MsgBox(Me.Nombretxt.Text & " " & "ha entrado a las" & " " & Me.HoraEntrada.Text)

Else
If oData.Tables("Presencia").Rows(0).Item("Salida") Is DBNull.Value Then
If oData.Tables("Presencia").Rows.Count > 0 Then
Grabar.ControlHoraEntrada(sComan, Me.TextBox1.Text, Me.HoraEntrada.Text, Fecha, MesActual)
MsgBox("La última vez que salió, no insertó la hora de salida. Por favor hable con su superior")
Else
Grabar.ControlHoraEntrada(sComan, Me.TextBox1.Text, Me.HoraEntrada.Text, Fecha, MesActual)
MsgBox(Me.Nombretxt.Text & " " & "ha entrado a las" & " " & Me.HoraEntrada.Text)
End If
End If
End If
__________________
Gracias y un saludo
  #2 (permalink)  
Antiguo 26/03/2004, 05:23
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Mira a ver si asi:

If oDataHoraEntrada.Tables("Presencia").Rows.Count = 0 Then

Grabar.ControlHoraEntrada(sComan, Me.TextBox1.Text, Me.HoraEntrada.Text, Fecha, MesActual)

MsgBox(Me.Nombretxt.Text & " " & "ha entrado a las" & " " & Me.HoraEntrada.Text)

Else
If oData.Tables("Presencia").Rows(0).Item("Salida") Is DBNull.Value Then
If oData.Tables("Presencia").Rows.Count > 1 Then
Grabar.ControlHoraEntrada(sComan, Me.TextBox1.Text, Me.HoraEntrada.Text, Fecha, MesActual)
MsgBox("La última vez que salió, no insertó la hora de salida. Por favor hable con su superior")
Else
Grabar.ControlHoraEntrada(sComan, Me.TextBox1.Text, Me.HoraEntrada.Text, Fecha, MesActual)
MsgBox(Me.Nombretxt.Text & " " & "ha entrado a las" & " " & Me.HoraEntrada.Text)
End If
End If
End If

De todas formas no me parece muy fiable, pero es que tampoco se en que registro vas a grabar la salida...
Tampoco entiendo porque haces dos consultas iguales a la BD...
En fin, si asi te sirve, pues adelante

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:39.