¿Me ayudas? Con los registros duplicados

Hola! ¿Qué tal? Veras, quería preguntarte una cosilla. Tengo una tabla en access, el 2000, ese que tu no quieres usar. Bueno, la tabla es de horario de cursos y tengo tres campos: aula, fecha y hora. Necesito que alguien me ayude ya que esos tres campos no pueden tener los mismos datos en diferentes registros, es decir, no puede haber dos cursos diferentes en el mismo aula el mismo día a la misma hora, tu me entiendes. He intentado indexar y cosas de esas, pero no me ha servido de nada. Por favor, si puedes ayudarme contestame pronto, que es urgente, soy una chica desesperada y medio ignorante del maravilloso mundo de access. Gracias.
1

1 Respuesta

6.450 pts.
Puedes hacer dos cosas :
1 Tomar los 3 campos que mencionaste y convertirlos en una clave compuesta, indexada sin duplicados de modo que sea el mismo sistema el que reclame si se repite .
Esto lo harías en el diseño de la tabla marcando los 3 campos y presionando la llave para que se transformen como ya dije en una clave compuesta.
2 Validar tu misma que se cumpla lo que quieres, en el momento de grabar los datos debes buscar que no existan ya en la tabla para eso me gusta usar una función llamada : dlookup()
La sintaxis es :
variable=lookup("Campo a buscar","Tabla","criterio")
El criterio es igual a where en una consulta Sql.
Si encuentra el campo queda en variable si no variable es nulo.
Si estás ingresando los datos en un formulario y al presionar un botón estos se guardan ejecutando una consulta podrías hacer algo así.
Supón que los campos se llaman : curso, aula, fecha, hora y la tabla se llama horario.
Los datos los escribiste en un formulario llamado clase
Y están en textos que a su vez se llaman curso, aula, fecha y hora.
Podrías hacer :
sub agregar()
dim variable as variant
variable=dlookup("curso","horario","aula=forms!clase!aula and fecha=forms!clase!fecha and hora=forms!clase!hora")
if isnull(variable) then
docmd.openquery "consultadeagragado"
else
msgbox("los datos no deberian repetirse"
end if
end sub
Voy a intentarlo, ya te cuento
Gracias por todo. Fantástico
Ok.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas