![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Sounds easy, I know. So I have a couple of questions about my code for a form: Private Sub SurrPeriod_GotFocus() Select Case Me.SurrPeriod.Value Case Is >= 2 Me.Year2.Enabled = True Case Is >= 3 Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 4 Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 5 Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 6 Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 7 Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 8 Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 9 Me.Year9.Enabled = True Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 10 Me.Year10.Enabled = True Me.Year9.Enabled = True Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Else Me.Year10.Enabled = False Me.Year9.Enabled = False Me.Year8.Enabled = False Me.Year7.Enabled = False Me.Year6.Enabled = False Me.Year5.Enabled = False Me.Year4.Enabled = False Me.Year3.Enabled = False Me.Year2.Enabled = False End Select End Sub I can't quite seem to nail down which control to tie this code to or on which event or on the form itself. Have I got the code wrong somewhere or something? Basically it should be If [SurrPeriod] >= #, enable the years for this record only. Next record will based on value of [SurrPeriod], etc. Also, I just realized I haven't accounted for Null values in [SurrPeriod]. What might be a good approach to that? |
#3
| |||
| |||
|
|
WhathaveIdone? wrote: Sounds easy, I know. So I have a couple of questions about my code for a form: Private Sub SurrPeriod_GotFocus() Select Case Me.SurrPeriod.Value Case Is >= 2 Me.Year2.Enabled = True Case Is >= 3 Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 4 Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 5 Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 6 Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 7 Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 8 Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 9 Me.Year9.Enabled = True Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 10 Me.Year10.Enabled = True Me.Year9.Enabled = True Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Else Me.Year10.Enabled = False Me.Year9.Enabled = False Me.Year8.Enabled = False Me.Year7.Enabled = False Me.Year6.Enabled = False Me.Year5.Enabled = False Me.Year4.Enabled = False Me.Year3.Enabled = False Me.Year2.Enabled = False End Select End Sub I can't quite seem to nail down which control to tie this code to or on which event or on the form itself. Have I got the code wrong somewhere or something? Basically it should be If [SurrPeriod] >= #, enable the years for this record only. Next record will based on value of [SurrPeriod], etc. Also, I just realized I haven't accounted for Null values in [SurrPeriod]. What might be a good approach to that? Use: If Is Null(Me.SurrPeriod.Value) Then to check for Null before the Select Case statement. But you won't need that if the Case Else does what you want when it is Null. Where to put the code depends on what you are trying to accomplish. GotFocus doesn't make much sense to me, but I don't know the goal or under what conditions it applies. Possibly you will want try it in SurrPeriod's AfterUpdate event and in the form's Current event. -- Marsh |
#4
| |||
| |||
|
|
Sounds easy, I know. So I have a couple of questions about my code for a form: |
#5
| |||
| |||
|
|
"Marshall Barton" wrote WhathaveIdone? wrote: Sounds easy, I know. So I have a couple of questions about my code for a form: Private Sub SurrPeriod_GotFocus() Select Case Me.SurrPeriod.Value Case Is >= 2 Me.Year2.Enabled = True Case Is >= 3 Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 4 Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 5 Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 6 Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 7 Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 8 Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 9 Me.Year9.Enabled = True Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Is >= 10 Me.Year10.Enabled = True Me.Year9.Enabled = True Me.Year8.Enabled = True Me.Year7.Enabled = True Me.Year6.Enabled = True Me.Year5.Enabled = True Me.Year4.Enabled = True Me.Year3.Enabled = True Me.Year2.Enabled = True Case Else Me.Year10.Enabled = False Me.Year9.Enabled = False Me.Year8.Enabled = False Me.Year7.Enabled = False Me.Year6.Enabled = False Me.Year5.Enabled = False Me.Year4.Enabled = False Me.Year3.Enabled = False Me.Year2.Enabled = False End Select End Sub I can't quite seem to nail down which control to tie this code to or on which event or on the form itself. Have I got the code wrong somewhere or something? Basically it should be If [SurrPeriod] >= #, enable the years for this record only. Next record will based on value of [SurrPeriod], etc. Also, I just realized I haven't accounted for Null values in [SurrPeriod]. What might be a good approach to that? Use: If Is Null(Me.SurrPeriod.Value) Then to check for Null before the Select Case statement. But you won't need that if the Case Else does what you want when it is Null. Where to put the code depends on what you are trying to accomplish. GotFocus doesn't make much sense to me, but I don't know the goal or under what conditions it applies. Possibly you will want try it in SurrPeriod's AfterUpdate event and in the form's Current event. in the onCurrent and/or afterupdate event [snip] To act more as a toggle you can do this Dim iYear as Integer iYear = nz(Me.SurrPeriod.Value,0) for i = 2 to 10 Me.("Year" & i).Enabled = iif(i<=iYear, True, False) Next |
![]() |
| Thread Tools | |
| Display Modes | |
| |