Regla de validación en access

Tengo una base y quisiera que al ingresar un cliente me informe si ese cliente tiene un registro anterior dentro de los 365 días anteriores a su nuevo ingreso. No es condicionante para poder ingresar de nuevo, solo quiero saber de su existencia con un mensaje. ¿Alguien me podría indicar como es la sentencia que debo colocar?

1 respuesta

Respuesta
1

Pablo: Puedes emplear DCount.

Partiendo de un Formulario que yo voy a llamar "Panel", un TextBox que llamaré "IdCliente", una Tabla que yamaré "Pedidos".

Private Sub IdCliente_AfterUpdate()
Dim RegUnAño As Integer
RegUnAño = Nz(DCount("IdCliente", "Pedidos", "[IdCliente] = '" & Me.IdCliente & "'" & " AND " & "[FechaPedido] <= Date() AND [FechaPedido] >= Date() - 365"), 0)
If RegUnAño = 0 Then
        MsgBox "Este Cliente no tiene registros en el último año", vbCritical, "SIN REGISTROS EN UN AÑO"
Else
        MsgBox "Este Cliente tiene registros  " & RegUnAño & " en el último año", vbInformation, "SIN REGISTROS EN UN AÑO"
End If
End Sub

Partiendo de ésta situación adapta los Nombres de Objetos y mira el Resultado

Mis saludos >> Jacinto

Pablo: Repasando la respuesta veo un error gramatical imperdonable. Tabla que "yamaré".

Mis disculpas >> Jacinto

Jajajajaja ¡Gracias! No tengo la computadora ahora. Pero el lunes pruebo la sentencia. Muchas gracias por tu colaboración. 

La sintaxis funciono excelente. Dando una vuelta más de rosca me gustaría que me dijera aparte de si esta dentro del año, si esta en un estado determinado de estatus. Osea...que me diga si existe una compra dentro del año y si esa compra se pago por lo que los tengo separados en 1 2 y 3. Y quiero que me muestre los ESTADO=2. Si figura otro estado no me interesa. Gracias por tu ayuda.

Pablo: Añádele otra condición, después de las que ya hay. Más o menos así:

RegUnAño = Nz(DCount("IdCliente", "Pedidos", "[IdCliente] = '" & Me.IdCliente & "'" & " AND " & "[FechaPedido] <= Date() AND [FechaPedido] >= Date() - 365 AND ESTADO = 2”), 0)

Mis saludos >> Jacinto

Hola Jacinto. La sentencia funciona. Pero no como deseo. En mi tabla el estado por defecto es 1 que sería CONFIABLE. para que me aparezca el cartel de aviso tendría que colocar el estado por defecto 2 NO CONFIABLE. Lo cual cada registro nuevo seria catalogado como NO CONFIABLE, y no me lo deja operar la base.

La idea es que si ese cliente me quiere comprar nuevamente y tenga una deuda pendiente, la base me avise que por su deuda esta catalogado como no confiable. Y ni hablar si encima me muestra el registro impago..sería orgasmico jeje

Me parece que ya encontré el problema. En el cálculo de la fecha le puse <= date ()-1 y ahí me cuenta los estado=2.

Perfecto Pablo: Doy por resuelto éste tema y si te surgen nuevas dudas, generas otra pregunta. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas