La Web del Programador: Comunidad de Programadores
 
    Pregunta:  7123 - DETERMINAR SI UN REGISTRO YA EXISTE PARA GUARDAR UNO NUEVO
Autor:  Alejandro Caycedo
Como puedo hacer para que los datos de cuatro campos de una misma tabla no se repitan; teniendo en cuenta que estos campos en ocasiones no tendran información, seran nulos.
Que si el registro ya existe la información no se pueda ingresar a la base de datos.

Gracias Por su colaboración

  Respuesta:  victor
Se me ocurre que puedes generar un recordset con la condición WHERE de los campos que vas a insertar. Si recordset está vacío, puedes insertar los nuevos datos.

Espero que te haya servido de ayuda.

  Respuesta:  Arnaldo González
Soy Programador en Computación de la ciudad de Santiago, Chile. Trabajo desarrollando softwares en una empresa constructora.

Alejandro:

Un método muy fácil, y muy efectivo para solucionar tu problema, Es el de usar campos auxiliares, es decir, variables. Primero al agregar datos no debes escribir directamente en la base de datos, debes usar estas variables o textos como si fueran de la base de datos. a estos campos tu escribes los datos que deseas agregar, y luego comparas mediante una búsqueda simple, si ya están registrados esos datos. Si es así, cancelas el proceso, y si no están los pasas al registro nuevo mediante una asignación.
(Campo1_Base_de_Datos = Aux_Campo1_Base_de_Datos)

Resumiendo. Escribes los datos nuevos en una variable cualquiera, y luego verificas si ya existen o no en la base de datos, Si no existen, los grabas mediante la asignación de datos, lo que está en parentesis arriba, o si no no los grabas simplemente.

NOTA: Las variables o campos auxiliares deben tener el mismo tipo de datos y el mismo largo del campo original.

Ahora el problema es que si los datos que ingresas son nulos, para solucionar este problema porque cuando lo busques para saber que existe, lo encontrará y no te lo grabará.

Si el criterio de grabado de datos, lo manejas tu debes hacer esto:

(***)Debes preguntarle al usuario, si desea escribir los registros, que contengan datos en blanco, si escoje si, y si sólo los datos en blanco se repiten lo grabas en la base de datos, o si no, no lo grabas. o bien no necesitas preguntar, sólo implantas el criterio. Si se repite sólo un dato que no sea en blanco, no lo grabas.

O sino:

En vez de que sea en blanco, le puedes inserta