Visual Basic - Como crear un registro de Usuarios

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Como crear un registro de Usuarios

Publicado por Javier (3 intervenciones) el 23/03/2017 15:56:36
Buenos días, estoy programando un sistema en el cual mis usuarios se registran para acceder a un comedor, el detalle es que solo pueden acceder una vez por día, si el usuario ya se registro no puede repetir el mismo dia, la verdad tengo poco de empezar con visual basic y agradecería que me apoyaran. Hasta ahora solo guardo mis registros en una BD de Access pero no se como validarlo. Tengo el siguiente codigo pero no me funciona


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
 
	'verifico que textcodigo tenga datos'
	If Textcodigo.Text = "" Then
		MsgBox("Numero de empleado no puede estar vacio")
		Textcodigo.Select()
	Else
		Try
			Dim sql As String
			Dim contar As Int32 = 0
			Dim f As Date
			f = Date.Today
			sql = "INSERT INTO Registro (codigo,horachecada,fechachecada) VALUES ('" & Textcodigo.Text & "','" & horachecada.Text & "','" & fechachecada.Text & "')"
			comm.CommandText = sql
			MsgBox(sql)
			contar = "Select Count(codigo) from Registro where fechachecada=('" & f & "') and codigo=('" & Textcodigo.Text & "')"
			contar = Convert.ToInt32(comm.ExecuteScalar())
			If contar > 0 Then
				MsgBox("YA TE HAS REGISTRADO EL DIA DE HOY")
			Else
				comm.ExecuteNonQuery()
				MsgBox("CHECK IN CORRECTO, BUEN PROVECHO")
			End If
		Catch ex As Exception
			MsgBox("No hace nada")
		End Try
 
 
	End If
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como crear un registro de Usuarios

Publicado por Antoni Masana (558 intervenciones) el 24/03/2017 11:53:52
Yo pondría un campo en el registro de empleado de tipo fecha que podría llamarse Comedor y cuando se registra guardas la fecha, si se vuelve a intentar registrar como la fecha es la misma que la del campo lo rechazas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como crear un registro de Usuarios

Publicado por Javier (3 intervenciones) el 24/03/2017 22:19:21
Ya lo tengo en mi BD de Access en mi tabla Registro tengo id de usuario, fecha y hora y con la fecha pretendo validar que no se repita el mismo dia pero no he logrado hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como crear un registro de Usuarios

Publicado por daniel (3 intervenciones) el 25/03/2017 19:28:41
Bien, primero que nada, validar un facha y que no se repita es prácticamente imposible (El que lo logre, mis respetos) .
Lo único que puedes hacer para validar y hacer que un dato no se repita, es con el mismo ID.

Puedes hacer que, de acuerdo a la fecha, el Id no se pueda repetir.

No hagas que el id sea AI, dale el id tu mismo al usuario, asi controlaras todo.

Ejemplo:

Tenes 2 usuarios, bien, el usuario 1 es ( 22 = ID ) usuario 2 ( 23 = ID) ok?

Ahora digamos que els usuario 1 se registro y ya almorzó... Como hago para que no pueda ingresar otra vez? He ahí el problema.

No tomes la fecha como si fuese el TODO de la operación, solo tenla en cuenta para validar el ingreso del ID.

De pronto sirva, si algo es que me enredé

1
2
3
4
5
6
7
8
9
10
11
12
13
14
dim f = date.today
dim contar as integer
 
contar = "Select Count(codigo) from Registro where codigo=('" & Textcodigo.Text & "')"
 
if (f = today and contar = contar) then
 
	MsgBox("YA TE HAS REGISTRADO EL DIA DE HOY")
 
	Else
		comm.ExecuteNonQuery()
		MsgBox("CHECK IN CORRECTO, BUEN PROVECHO")
 
end if

no se si lo explique bien, tal que no estoy en mi zona y no puedo corroborar los datos.

Tenes la fecha, tenes el ID... hacemos que si f = today osea hoy y que el contar = ID que mande mensaje de que ya almorzó, si solo cumple la fecha pero el ID no esta, manda la excepción, si esta el ID pero no hay fecha, le manda excepción. Si me quedo mal o me enredé , favor avisar, no tuve como hacer pruebas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como crear un registro de Usuarios

Publicado por Antoni Masana (558 intervenciones) el 27/03/2017 13:29:31
Vamos a ver Javier y Daniel que parte de comparar un fecha no funciona?

Me da lo mismo el formato: DD/MM/AAAA o MM/DD/AAAA o AAAA/MM/DD o AAAAMMDD o lo como sea

Si ayer ficho y era 26/04/2017 y hoy ficha y es 27/04/2017 son dos carenas de caracteres diferentes.
Si a media tarde vuelve a fichar y seguimos siendo 27/04/2017 es la misma fecha que la última.

El problema es que Microsoft trata la fecha como un churro de números y hay que utilizar la funcion Format() para conseguir una fecha siempre en el mismo formato y en una cadena STRING y compararlo.

Mirando el código se me rizan los pelos de las uñas:

f (Que carajo es: date.today) es igual a today (y que carajo es today)

Contar es igual a Contar. Me muero de curiosida por saber cuando no se cumple esta igualdad. Es más corto poner True a secas.

Esto es una condición "com cal"

1
IF Format(Now, "YYYYMMDD") = Format(Contar, "YYYYMMDD") Then
o
1
IF Format(Date, "YYYYMMDD") = Format(Contar, "YYYYMMDD") Then

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como crear un registro de Usuarios

Publicado por Javier (3 intervenciones) el 27/03/2017 16:37:55
Ok entendido, probare esto en mi codigo para ver si ya funciona correctamente. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar