Access - encontrar un registro

 
Vista:

encontrar un registro

Publicado por Zeukzir (1 intervención) el 28/07/2006 21:07:07
Hola

intento evitar que se me repita un campo de un registro mediante un Dcount pero no me da el resultado esperado

Num = DCount("[NumEst]", "tlEsts", "[relZonaT]=Forms![lstEsts]![relZonaT]")

If Not IsNull(Num) Then
Me.Undo
End If

En teoría si NumEst no se repite el DCount debería ser Null y aplicaría el Undo, pero no es así, siempre da un DCount no nulo (se repita o no en NumEst
Tambien lo he prbado con un DLookup pero me pasa lo mismo
Alguien tiene idea de que hago mal?
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 Alejandro

Evitar repetición de campo en registro usando DCount

Publicado por Alejandro (4142 intervenciones) el 24/07/2023 17:26:25
El problema que estás experimentando podría estar relacionado con la forma en que estás usando la función DCount y cómo estás verificando el resultado. La función DCount devuelve un valor numérico que representa el número de registros que cumplen con los criterios especificados en la consulta. Si no hay coincidencias, la función devuelve cero (0) en lugar de Null.

Para lograr el resultado esperado y evitar que se repita un campo de un registro, debes verificar si el valor de Num es mayor que 0 (en lugar de comprobar si no es Null). Si Num es mayor que 0, significa que el campo NumEst se repite, y en ese caso, deberías deshacer los cambios realizados.

Aquí tienes el código corregido:

1
2
3
4
5
Num = DCount("[NumEst]", "tlEsts", "[relZonaT] = " & Forms![lstEsts]![relZonaT])
 
If Num > 0 Then
    Me.Undo
End If

En esta versión, hemos ajustado la comprobación para que verifique si Num es mayor que 0 en lugar de comprobar si no es Null. De esta manera, el código debería funcionar correctamente y deshacer los cambios en caso de que el campo NumEst se repita en la tabla.

Además, asegúrate de que el valor de Forms![lstEsts]![relZonaT] sea un número o una cadena (dependiendo del tipo de datos del campo relZonaT en la tabla tlEsts). Si es una cadena, debes encerrarlo entre comillas simples en la consulta DCount.

Espero que con esta corrección puedas lograr el resultado esperado y evitar que se repita el campo NumEst en tus registros.
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