Visual Basic - Verificar que no hayan datos duplicados

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Juan

Verificar que no hayan datos duplicados

Publicado por Juan (8 intervenciones) el 22/11/2016 16:55:47
Buenos días.

Estoy realizando un sistema de agendamiento de citas.

Necesito que no se puedan agendar dos citas el mismo día a la misma hora.

Como puedo hacer esto?

Tengo una base de datos con acces y realizo la conexión a la base de datos mediante un Adodc1
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 jorge
Val: 45
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por jorge (21 intervenciones) el 22/11/2016 17:09:45
deberia poner una llave primaria a un campo ala base esto para que no permita duplicados...

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
Imágen de perfil de Juan

Verificar que no hayan datos duplicados

Publicado por Juan (8 intervenciones) el 22/11/2016 17:33:09
Gracias por tu respuesta, pero no entiendo mucho de lo que me propones, tengo conocimientos muy básicos de programación.

Lo que entiendo de lo que me está indicando es que debería poner por ejemplo, el campo de la fecha en la base de datos como campo principal?
Debería agregar el campo fecha como índice?
Es correcto?
bd
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 jorge
Val: 45
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por jorge (21 intervenciones) el 22/11/2016 17:46:15
HOLA AMIGO YO ME REFERIA ALA BASE DE DATOS DE ACCESS DONDE TIENES LAS TABLAS.

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
Imágen de perfil de Andres Leonardo
Val: 4.022
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por Andres Leonardo (1671 intervenciones) el 22/11/2016 17:59:08
lo que pasa es que digamos que tienes una cita el

25 / 11 /2016 de 10:00 a 12:00

pero te quieren poner una cita

25 / 11 /2016 de 11:00 a 13:00 ' en este caso la base lo permitiria .... pues no coincide con las horas .... pero en cambio de 12 estarias ocupado... cierto

Creo que seria tener campos fecha Hora inicio fecha Hora fin si es que una cita puede pasar de un dia a otro ... si no solo seria
fecha .. hora inicio hora fin...

Y que cuando intentes insertar no este en ese rango ....... ... .que dicen

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
Imágen de perfil de Edward
Val: 160
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por Edward (57 intervenciones) el 22/11/2016 21:06:17
Buen día para todos,

Juan, lo que quieres hacer puede ser algo parecido a esto, para que tengas una mejor idea de como puedes lograr organizar el horario de la agenda evitando cruce de horarios en las citas.


sshot-1



sshot-2



Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Juan

Verificar que no hayan datos duplicados

Publicado por Juan (8 intervenciones) el 22/11/2016 21:09:03
Muchas gracias por su respuesta, es exactamente lo que deseo realzar.

Como puedo programar esto en vb 6?
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 Edward
Val: 160
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por Edward (57 intervenciones) el 22/11/2016 21:56:55
Buen día para todos,

Juan, te comento que el proceso es un poco largo para lograr el objetivo, ahora bien te explico como lo hice:

Primero: Todos los controles del horario son de tipo "Label", debes ir creando uno por uno y acomodarlos uno al lado del otro hasta formar la cuadricula que vez.

Segundo: Debes crear una tabla en la base de datos con un campo (Día) para almacenar cada día, un campo (Hora) para cada hora (8,9,10...) asumo que manejan horario de oficina por lo que debe ser mas corto para ti, ahora debes agregar un valor inicial para indicar que esa hora esta libre, puede ser la palabra "No", o el numero cero "0", bueno algún valor que te indique que esa hora esta libre.

sshot-1



Tercero: Mediante un "Select" sencillo haces la consulta a la tabla validando el día te traerá el horario.

Cuarto: En cada uno de los "Label" debes validar la hora asignada para este "Label" mediante un condicional "If" si la hora esta libre pues cambias el valor por otro que te indique que esta ocupado, para luego modificar la propiedad "BackColor" del "Label" según el estado de esa hora (Esto cuando se de clic en un Label), para cuando se carga el horario se debe validar y cambiar la propiedad "BackColor" del "Label" para que puedas ver cuales están libres y cuales ocupados.

Ahora para mi caso no interesaba la fecha pero en tu caso para una agenda que supongo ser mensual debes en el campo (Día) almacenaras el día del mes (1,2,3,4,5....) para que luego con un control "DateTimePicker" puedas seleccionar cualquier día del mes y modificar la agenda.


Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Juan

Verificar que no hayan datos duplicados

Publicado por Juan (8 intervenciones) el 22/11/2016 22:06:55
Estimado, muchas gracias por su ayuda.
Me ha servido muchísimo. Eso era precisamente lo que tenía pensado hacer y no había logrado que nadie me entendiera que era lo que quería hacer.

De verdad muchas gracias.
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 Edward
Val: 160
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por Edward (57 intervenciones) el 22/11/2016 22:40:54
Buen día para todos,

Juan, un gusto haber podido colaborarte.


Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
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 Juan

Verificar que no hayan datos duplicados

Publicado por Juan (8 intervenciones) el 28/11/2016 20:20:13
Hola Edward.

Espero te encuentres muy bien.

Quisiera pedir tu ayuda una vez más si no es mucha la molestia.

Mis conocimientos en programación son básicos y necesito la ayuda de personas con mas experiencia.

No he logrado comprender como relacionar los días en mi base de datos con el DateTimePiker.

He creado mi base de datos tal y como me recomendaste.

fechas

La duda que tengo es si es posible habilitar únicamente las citas de la semana en curso y cada viernes por la tarde habilitar las citas de la siguiente semana o quincena? o tu como me recomiendas que haga esto?


horarios
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

Verificar que no hayan datos duplicados

Publicado por La Antorcha de los Grandes Exitos (2 intervenciones) el 29/11/2016 13:18:49
Lo primero que tienes que hacer es crear el programa.
2º- crear la base de datos, con los siguientes datos: Clientes,Años,Meses,Dias y Horas.
3º- indesar la base de datos por: Cliente,Años,Mases,Dias y Horas.
4º- Crear un modulo, que te compruebe si los datos que quieres introducir ya existen y si es así que te los muestre.
5º- crear un modulo , que te permita modificar los datos de la ficha.
6º- crear un modulo, que te permita consultar los datos de una ficha que ya este archivada.
7º- crear un modulo, que te permita dar de baja una ficha.
8º- crear un modulo, que te permita imprimir las fichas.

Bueno yo creo que esto es la base fundamental, asi que espero que te sirva de ayuda.
recibe un cordial saludo.
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 Juan

Verificar que no hayan datos duplicados

Publicado por Juan (8 intervenciones) el 29/11/2016 14:37:54
Gracias por tu comentario, todo eso ya está hecho.


pr

Lo que me gustaría saber es como hacer para que en este modulo donde se muestran las fechas disponibles el sistema "sepa" que las citas corresponden a la primera semana o la semana en curso del mes.


horarios


Intentaré explicarme un poco mejor.

Supongamos que ya pasó la primer semana de citas, que iba del 4 al 10 de diciembre, como hago para que el formulario donde se muestran las fechas disponibles actualice el estado de las citas disponibles para la siguiente semana que va del 11 al 17 de diciembre y así sucesivamente?
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

Verificar que no hayan datos duplicados

Publicado por La Antorcha de los Grandes Exitos (2 intervenciones) el 03/12/2016 13:37:29
Creando un modulo que te filtre y te muestre si los datos corresponden a la primera, segunda, tercera, ect. semana del mes en curso, o del mes anterior, o de los meses venideros.
En tonces este modulo te puede actualizar los datos a la fecha que te interese.
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 Edward
Val: 160
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por Edward (57 intervenciones) el 03/12/2016 23:03:21
Buen día para todos,

Juan, Te comento que para tu proyecto no deberías almacenar en la base de datos las citas por días (lunes, martes....) sino como te lo indique anteriormente por fechas (03/12/2016, 04/12/2016....) para que puedas acceder a cualquier semana del mes y verificar las citas correspondientes para esas fechas y ya con la fecha puedes identificar fácilmente el día (lunes, martes...).

Ahora bien te comparto una forma que hice, pero si alguien tiene otra función que permita obtener las fechas de los días de una semana se agradece la comparta.

Lo que hice es validar el día de hoy y obtener su valor numérico, cada día tiene un numero que lo identifica comenzando el domingo con el numero 1 y terminando el sábado con el numero 7 como puede analizar en el siguiente link.

https://msdn.microsoft.com/es-co/library/82yfs2zh(v=vs.90).aspx

Seguido como el día de hoy es sábado quiere decir que el valor del día es 7, continuando lo que hice fue usar la función AddDays para ir restando la cantidad de días hasta obtener la fecha de cada día de la semana.

Ahora como puedes ver el ejemplo lo hago con el día sábado por lo que debes realizar la validación con cada día de la semana.
1
2
3
4
5
6
7
8
9
10
 ':::Obtenemos el valor entero del dia de hoy que es sabado y corresponde a 7
 Dim dia As Integer = Weekday(Today.Date)
 ':::Validamos si el dia de hoy es sabado para poder restar los dias correspondientes
 ':::Y obtener la fecha de cada dia de la semana
 If dia = 7 Then
      MsgBox("Domingo: " & Today.Date.AddDays(-6) & vbCrLf & "Lunes: " & Today.Date.AddDays(-5) & vbCrLf &
          "Martes: " & Today.Date.AddDays(-4) & vbCrLf & "Miercoles: " & Today.Date.AddDays(-3) & vbCrLf &
          "Jueves: " & Today.Date.AddDays(-2) & vbCrLf & "Viernes: " & Today.Date.AddDays(-1) & vbCrLf &
          "Sabado: " & Today.Date.AddDays(0), vbOK, "Fecha de la semana")
 End If

Teniendo como resultado las fechas de cada día de la semana actual.

sshot-1



Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
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 Edward
Val: 160
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Verificar que no hayan datos duplicados

Publicado por Edward (57 intervenciones) el 03/12/2016 23:35:27
Buen día para todos,

Juan, Te comento que buscando un poco encontré esta función que es mucho mas corta y funciona correctamente, con la que se puede obtener el primer día de la semana, que para el ejemplo iniciare la semana en Domingo (Sunday) pero tu lo puede hacer con el Lunes (Monday).

Luego para obtener las fechas de los demás días utilizas la función AddDays incrementando en 1 la fecha del primer día de la semana.

1
2
3
4
5
6
7
''':::Nos ubicamos en la fecha de hoy
 Dim fecha As DateTime = Today.Date
 ':::Recorremos la semana y le indicamos cual es el primer dia de la semana (Sunday)
 While fecha.DayOfWeek <> DayOfWeek.Sunday
      fecha = fecha.AddDays(-1)
End While
MsgBox("Fecha actual: " & Today.Date & vbCrLf & "La fecha de inicio de la semana es: " & fecha, vbOK, "Fecha inicio semana")

Te comparto la fuente del código, lo modifique un poco.

https://social.msdn.microsoft.com/Forums/es-ES/b5fb0faf-eec3-43a0-94da-b2224915996e/convertir-el-numero-de-semana-en-fecha?forum=vbes


sshot-1



Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
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

Verificar que no hayan datos duplicados

Publicado por LUIS FRANCO (93 intervenciones) el 09/12/2016 00:33:52
Mi estimado yo lo haría de otra manera creando registros y luego evaluando esos registros ya que solo un dia me logra 24 horas.

es decir dia 25/hora 10, si encuentras hora y dia esta ocupado si no desocupado. ya con eso vez si registra o no la cita.
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