Bueno, se puede hacer razonablemente directo: Cada vez que cambie el
Value del fechaIni, se lo asignas al MinDate del fechaFin, y cada vez que
cambie el Value del FechaFin, se lo asignas al MaxDate del frchaIni. No lo
he probado, pero si no me equivoco, con esto bastaría para mantener la
fechaFin posterior a la FechaIni (puede que además haya que validar el Value
del control al que se le cambia el Max o el Min, pero se podría hacer de una
vez aprovechando que el DateTime es IComparable, no se necesitaría comparar
por separado el año, mes y dia).
O de forma mas tradicional: creamos dicha funcion y se la asignamos a un boton como primera opcion a verificar
Código:
Public Function checkDateTimePickers() As Boolean
If Me.dtpFechaInicial.Value.Year <>
Me.dtpFechaFinal.Value.Year Then
MsgBox("Debes seleccionar el año natural." & Chr(13) &
"Por ejemplo : Desde Enero del 99 hasta Diciembre del 99.")
checkDateTimePickers = False
Else
If Me.dtpFechaInicial.Value > Me.dtpFechaFinal.Value Then
MsgBox("La fecha inicial no puede ser mayor que la
final!!!", MsgBoxStyle.Exclamation, "Orange")
checkDateTimePickers = False
Else
checkDateTimePickers = True
End If
End If
el siguiente codigo es el que irá en el boton
Código:
if checkDateTimePickers() then
' todo va bien, procedemos a hacer las consultas en la BD
end if
No he puesto el else al if ya que son los casos en que la función
checkDateTimePickers me muestra el error.
Espero les sirva!