Función DCount para utilizar con fechas

A ver si me podéis ayudar con este lio que tengo montado.

Trato de introducir datos desde un formulario con tres campos, fecha, acción e importe. Quiero que no haya duplicados, es decir si ya se ha metido un valor para un producto y en una fecha determinada el sistema lo advierta y lo impida

La sentencia con la que me he quedado, porque ya le he dado muchísimas vueltas, es la siguiente:

If DCount("[IdProductos]", "T_Cotizaciones", "[idproductos]= " & Forms![F_Cotizaciones]![Accion] & " AND [fecha]= #" & Forms![F_Cotizaciones]![Dia] & "#") >= 1 Then

  MsgBox "YA EXISTE LA COTIZACIÓN"

El problema estriba en la fecha, porque si tomo el 07/07/2020 (el día y el mes es el mismo), entonces sí que funciona. Tanto en la tabla como en el formulario el formato fecha lo tengo como fecha corta.

También he puesto el formato en la expresión   …..  AND [Fecha] >=#" & Format(Forms![F_Cotizaciones]![dia];"mm/dd/aaaa") & “#” ) y tampoco sale nada.

Bueno, si me podéis ayudar os lo agradecería.

Respuesta
1

Partiendo de la premisa que no sé de donde sale lo de Idproducto, si tengo el formulario, donde voy a repetir la fecha y la acción

Cuando pulso Enter

Y como no sé que quieres hacer en caso de que esto suceda, le he dicho que el cursor se quede en Acción para cambiar el nombre. El código del evento Antes de actualizar del cuadro de texto Accion es

Private Sub Accion_BeforeUpdate(Cancel As Integer)
If DCount("*", "tabla2", "fecha=forms!tabla2!fecha and accion='" & Me.Accion & "'") >= 1 Then
MsgBox "Esa accion ya está guardada en esa misma fecha. Debe cambiarla", vbOKOnly + vbExclamation, "Lo siento, pero es así"
DoCmd.CancelEvent
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas