Buscar un registro que esta en un campo calculado para que no se repita

Que tal comunidad experta espero me puedan ayudar, tratare de ser claro sobre lo que deseo hacer en una tabla de Access que estoy desarrollando, la verdad soy muy básico y quizás para ustedes esto es muy fácil.

1.-Tengo una tabla de access en la cual hice varios campos entre ellos están; mes; año; declaración.

2.- hice un campo extra con tipo de datos calculado para concatenar [mes]&[año]&[declaración], el campo calculado lo genere porque en el llevara el control de registro, sin embargo como es calculado no puedo generarlo como clave principal y tampoco lo puedo hacer indexado no repetido. "bueno al menos no me deja hacerlo y si se puede no se como hacerlo"

3.-Hice un formulario donde se meten estos registros y es aquí donde ya no puedo pasar porque se me dificulta resolver lo siguiente; quiero que al momento de terminar de capturar el campo de la declaración cuando en el campo calculado que esta concatenando lo del punto 2 me indique que ya existe dentro de la tabla el dato que acabo de capturar que me elimine el registro que se acaba de capturar y me mande a volver a capturar el registro. Tratare de poner un ejemplo:

Registro 1

Mes: 1

Año: 2012

Declaración: 1

Concatenar: 120121

Registro 2

Mes: 1

Año: 2012

Declaración 1

Concatenar: 120121 ..."registro repetido"

Cuando termine en el formulario de registrar en el campo declaración me valide si hay dentro de la tabla otro registro que se repita del campo concatenado y me elimine el registro 2 para volver a capturar otro registro.

Siento mucho molestarlos y espero en verdad puedan ayudarme a resolver este tema, se que esto lo puedo resolver con código pero ahí esta el problema en desarrollar el código.

1 respuesta

Respuesta
1

2.- hice un campo extra con tipo de datos calculado para concatenar [mes]&[año]&[declaración], el campo calculado lo genere porque en el llevara el control de registro, sin embargo como es calculado no puedo generarlo como clave principal y tampoco lo puedo hacer indexado no repetido

Nada te impide, sin embargo, definir como clave los 3 campos (mes, año y declaración). Las claves no tienen que ser únicamente de un sólo campo.

Gracias experto, sin embargo dejame comentarte que no me ayuda mucho definir como clave los 3 campos porque puede ser que tenga mes y año se repitan, te voy a poner un ejemplo.

registro 1

Mes: 1

Año: 2012

declaración 1

concatenar: 120121

registro 2

mes:1

año: 2012

declaración: 2

concatenar: 120122

registro 3

mes: 1

Año: 2012

declaración: 3

concatenar: 120123

es aquí donde te digo que puedo tener varios registros del mismo mes y año con diferente declaración, por eso se me ocurrió concatenar los tres campos [mes]&[año]&[declaración] para que este campo concatenado me valide se hay un registro ya existente.

registro: 4

Mes: 1

Años: 2012

declaración: 1

concatenar: 120121 ............"repetido en el registro 1"

Esto lo capturo en un formulario que hice para la entrada de datos y quiero que cuando termine de capturar en el campo de la declaración me busque si el campo concatenado ya existe y me salga un mensaje que me diga "registro ya existe" al darle aceptar me elimine en automático el registro 4 para darme la entrada a capturar el registro 5.

Tu crees que eso sera muy complicado?

Saludos.

Disculpa, pero, o no te entiendo, o no me entiendes tú. La verdad, no sé.

Cuando digo que puedes crear una clave por los 3 campos, el efecto es precisamente el que creo que buscas. Es decir, si hubieras creado una clave por los campos mes+año+declaración, el registro que identificas como "4" no te lo habría permitido introducir.

Es cierto que podrías hacer esa búsqueda manualmente, pero, ¿es necesario?

Hola Experto. muchas gracias por atender mis mensajes, es verdad quizás no soy muy claro en explicarte, de antemano te pido una disculpa y te pido no te desesperes, te explico.

cuando cree la tabla que contiene estos datos el campo que esta concatenando lo hice como campo calculado porque al crearlo como tipo de datos texto en la expresión valor predeterminado no me dejaba concatenar [mes]&[Año]&[declaración] me decía que la expresión no era valida, solo me dejo concatenar cuando le puse al campo la configuración de calculado, entonces como es un campo calculado este mismo no se puede configurar para que sea indexado no repetido o como tu me dices un campo clave. bueno así lo intente y no pude o quizás no se hacer un campo que su configuración sea texto y que pueda concatenar otros campos. insisto que sea texto porque es uno de los campos que me permite configurarlo como campo clave o indexado no repetido.

Por tal motivo me llevo a buscar otra alternativa de que esta combinación de campos me la validara de otra forma.

Je je seguimos caminando por rutas diferentes...

Olvídate del campo calculado para la detección de duplicados. Si lo quieres mantener porque te resulta útil para otras cosas (que desconozco), no lo borres. Pero crea la clave de la tabla usando los 3 campos "mes+año+declaración" (la clave primaria de la tabla puede ser compuesta). De ese modo, en control de duplicados te lo llevará la propia base de datos, de manera que no necesitarás realizar ninguna comprobación adicional por código.

¿Me explico?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas