Cómo condicionar campos tipo fecha?

Tengo dos campos tipo fecha.

Quiero que La fecha de expedición no sea mayor que la fecha actual Fecha(), me de algún aviso. Y además que al entrar la fecha de vencimiento la compare con la de expedición y me alerte en caso que sea menor.

Utilicé el siguiente código para lo segunto y me da un error. Para lo primero no he encontrado nada.. Saludos.

Dim strTblName As String, strValidRule As String 
Dim strValidText As String 
Dim intX As Integer 
strTblName = "Employees" 
strValidRule = "EndDate > StartDate" 
strValidText = "Enter an EndDate that is later than the StartDate." 
intX = SetTableValidation(strTblName, strValidRule, strValidText) 
Function SetTableValidation(strTblName As String, _ 
 strValidRule As String, strValidText As String) _ 
 As Integer 
 Dim dbs As Database, tdf As TableDef 
 Set dbs = CurrentDb 
 Set tdf = dbs.TableDefs(strTblName) 
 tdf.ValidationRule = strValidRule 
 tdf.ValidationText = strValidText 
End Function

1 respuesta

Respuesta
1

Dariel: Por el texto no me queda claro, si la Fecha la quieres validar al entrarla en un Formulario.

Si es así te pongo el Ejemplo para la Fecha de Expedición. La otra la reformas según tu necesidad.

Private Sub FechaExpedicion_BeforeUpdate(Cancel As Integer)

If Me.FechaExpedicion > Date Then
Cancel = True
Me.FechaExpedicion.Undo
MsgBox "Se ha introducido una Fecha mayor que la Actual" & vbCrLf & "Entra una Fecha adecuada o la Aplicación se mantendrá en éste punto", vbCritical, "REVISA DATOS"
Exit Sub
End If

End Sub

Si no era eso lo que necesitas, ya explicitarás un poco más cuando quieres validarlas, o si lo que quieres es un formulario de aviso.

Ya me contarás . Saludos >> Jacinto

¡Gracias! ¡Gracias!

Me di cuenta después de preguntar que no había puesto detalles importantes, es para un formulario, ya implementé lo que me diste y todo OK!.

Le hice una pequeña modificación por "lógica" al msmo código para resolver el otro problemita..

If Me.fecha_vencimiento_pasaporte < Me.fecha_expedición_pasaporte Then
Cancel = True
Me.fecha_vencimiento_pasaporte.Undo
MsgBox "La fecha de vencimiento del documento no puede ser anterior a la de expedición." & vbCrLf & "Selecciona una fecha adecuada para continuar.", vbCritical, "REVISA DATOS"
Exit Sub
End If

Mil gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas