Subform OnCurrent Problem

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have a Select Case code on the AfterUpdate event of an OptionGroup
(StatusBar) in my subform that is working fine, however I need the fields to
stay disabled even when the form is opened and closed again. I have the
following code on the OnCurrent event of my subform. I have compiled my
database and there is nothing wrong with the actual code, but it does
nothing! I have also tried the code in the Open, Load and Activate events of
the subform with no success. (The Select Case code on the AfterUpdate event
of the option group follows for comparison.)

TIA

Me.cmdCollect.Enabled = Nz(Me.Collect.Value, True)

If Me.StatusBar = 1 Or 2 Or 3 Or 4 Or 5 Then
Me.InvoiceNumber.Enabled = True
Me.OrderReference.Enabled = True
Me.Quantity.Enabled = True
Me.Code.Enabled = True
Me.Item.Enabled = True
Me.Problem.Enabled = True
Me.LongCode.Enabled = True
Me.SellPrice.Enabled = True
Me.CostPrice.Enabled = True
Me.Action.Enabled = True
Me.Supplier.Enabled = True
Me.HandlingFee.Enabled = True
Me.HandlingFeeAmount.Enabled = True
Me.ReplacementOrder.Enabled = True
Me.ReplacementReference.Enabled = True
Me.DiscountOffered.Enabled = True
Me.Discount.Enabled = True
Me.DiscountAmount.Enabled = True
Me.SubTotal.Enabled = True
Me.Collect.Enabled = True
Me.cmdReturn.Enabled = True
Me.cmdCollect.Enabled = True
ElseIf Me.StatusBar = 6 Then
Me.InvoiceNumber.Enabled = True
Me.InvoiceNumber.Locked = True
Me.OrderReference.Enabled = True
Me.OrderReference.Locked = True
Me.Quantity.Enabled = True
Me.Quantity.Locked = True
Me.Code.Enabled = True
Me.Code.Locked = True
Me.Item.Enabled = True
Me.Item.Locked = True
Me.Problem.Enabled = True
Me.Problem.Locked = True
Me.LongCode.Enabled = True
Me.LongCode.Locked = True
Me.SellPrice.Enabled = True
Me.SellPrice.Locked = True
Me.CostPrice.Enabled = True
Me.CostPrice.Locked = True
Me.Action.Enabled = True
Me.Action.Locked = True
Me.Supplier.Enabled = True
Me.Supplier.Locked = True
Me.HandlingFee.Enabled = True
Me.HandlingFee.Locked = True
Me.HandlingFeeAmount.Enabled = True
Me.HandlingFeeAmount.Locked = True
Me.ReplacementOrder.Enabled = True
Me.ReplacementOrder.Locked = True
Me.ReplacementReference.Enabled = True
Me.ReplacementReference.Locked = True
Me.DiscountOffered.Enabled = True
Me.DiscountOffered.Locked = True
Me.Discount.Enabled = True
Me.Discount.Locked = True
Me.DiscountAmount.Enabled = True
Me.DiscountAmount.Locked = True
Me.SubTotal.Enabled = True
Me.SubTotal.Locked = True
Me.Collect.Enabled = True
Me.Collect.Locked = True
ElseIf Me.StatusBar = 7 Then
Me.InvoiceNumber.Enabled = True
Me.InvoiceNumber.Locked = True
Me.OrderReference.Enabled = True
Me.OrderReference.Locked = True
Me.Quantity.Enabled = True
Me.Quantity.Locked = True
Me.Code.Enabled = True
Me.Code.Locked = True
Me.Item.Enabled = True
Me.Item.Locked = True
Me.Problem.Enabled = True
Me.Problem.Locked = True
Me.LongCode.Enabled = True
Me.LongCode.Locked = True
Me.SellPrice.Enabled = True
Me.SellPrice.Locked = True
Me.CostPrice.Enabled = True
Me.CostPrice.Locked = True
Me.Action.Enabled = True
Me.Action.Locked = True
Me.Supplier.Enabled = True
Me.Supplier.Locked = True
Me.HandlingFee.Enabled = True
Me.HandlingFee.Locked = True
Me.HandlingFeeAmount.Enabled = True
Me.HandlingFeeAmount.Locked = True
Me.ReplacementOrder.Enabled = True
Me.ReplacementOrder.Locked = True
Me.ReplacementReference.Enabled = True
Me.ReplacementReference.Locked = True
Me.DiscountOffered.Enabled = True
Me.DiscountOffered.Locked = True
Me.Discount.Enabled = True
Me.Discount.Locked = True
Me.DiscountAmount.Enabled = True
Me.DiscountAmount.Locked = True
Me.SubTotal.Enabled = True
Me.SubTotal.Locked = True
Me.Collect.Enabled = True
Me.Collect.Locked = True
ElseIf Me.StatusBar = 8 Then
Me.InvoiceNumber.Enabled = False
Me.OrderReference.Enabled = False
Me.Quantity.Enabled = False
Me.Code.Enabled = False
Me.Item.Enabled = False
Me.Problem.Enabled = False
Me.LongCode.Enabled = False
Me.SellPrice.Enabled = False
Me.CostPrice.Enabled = False
Me.Action.Enabled = False
Me.Supplier.Enabled = False
Me.HandlingFee.Enabled = False
Me.HandlingFeeAmount.Enabled = False
Me.ReplacementOrder.Enabled = False
Me.ReplacementReference.Enabled = False
Me.DiscountOffered.Enabled = False
Me.Discount.Enabled = False
Me.DiscountAmount.Enabled = False
Me.SubTotal.Enabled = False
Me.Collect.Enabled = False
Me.cmdReturn.Enabled = False
Me.cmdCollect.Enabled = False
End If

Private Sub StatusBar_AfterUpdate()
Select Case Nz(Me.StatusBar)
Case 1, 2, 3, 4, 5
Me.InvoiceNumber.Enabled = True
Me.OrderReference.Enabled = True
Me.Quantity.Enabled = True
Me.Code.Enabled = True
Me.Item.Enabled = True
Me.Problem.Enabled = True
Me.LongCode.Enabled = True
Me.SellPrice.Enabled = True
Me.CostPrice.Enabled = True
Me.Action.Enabled = True
Me.Supplier.Enabled = True
Me.HandlingFee.Enabled = True
Me.ReplacementOrder.Enabled = True
Me.DiscountOffered.Enabled = True
Me.Discount.Enabled = True
Me.SubTotal.Enabled = True
Me.Collect.Enabled = True
Case 6
Me.InvoiceNumber.Enabled = True
Me.InvoiceNumber.Locked = True
Me.OrderReference.Enabled = True
Me.OrderReference.Locked = True
Me.Quantity.Enabled = True
Me.Quantity.Locked = True
Me.Code.Enabled = True
Me.Code.Locked = True
Me.Item.Enabled = True
Me.Item.Locked = True
Me.Problem.Enabled = True
Me.Problem.Locked = True
Me.LongCode.Enabled = True
Me.LongCode.Locked = True
Me.SellPrice.Enabled = True
Me.SellPrice.Locked = True
Me.CostPrice.Enabled = True
Me.CostPrice.Locked = True
Me.Action.Enabled = True
Me.Action.Locked = True
Me.Supplier.Enabled = True
Me.Supplier.Locked = True
Me.HandlingFee.Enabled = True
Me.HandlingFee.Locked = True
Me.HandlingFeeAmount.Enabled = True
Me.HandlingFeeAmount.Locked = True
Me.ReplacementOrder.Enabled = True
Me.ReplacementOrder.Locked = True
Me.ReplacementReference.Enabled = True
Me.ReplacementReference.Locked = True
Me.DiscountOffered.Enabled = True
Me.DiscountOffered.Locked = True
Me.Discount.Enabled = True
Me.Discount.Locked = True
Me.DiscountAmount.Enabled = True
Me.DiscountAmount.Locked = True
Me.SubTotal.Enabled = True
Me.SubTotal.Locked = True
Me.Collect.Enabled = True
Me.Collect.Locked = True
Case 7
Me.InvoiceNumber.Enabled = True
Me.InvoiceNumber.Locked = True
Me.OrderReference.Enabled = True
Me.OrderReference.Locked = True
Me.Quantity.Enabled = True
Me.Quantity.Locked = True
Me.Code.Enabled = True
Me.Code.Locked = True
Me.Item.Enabled = True
Me.Item.Locked = True
Me.Problem.Enabled = True
Me.Problem.Locked = True
Me.LongCode.Enabled = True
Me.LongCode.Locked = True
Me.SellPrice.Enabled = True
Me.SellPrice.Locked = True
Me.CostPrice.Enabled = True
Me.CostPrice.Locked = True
Me.Action.Enabled = True
Me.Action.Locked = True
Me.Supplier.Enabled = True
Me.Supplier.Locked = True
Me.HandlingFee.Enabled = True
Me.HandlingFee.Locked = True
Me.HandlingFeeAmount.Enabled = True
Me.HandlingFeeAmount.Locked = True
Me.ReplacementOrder.Enabled = True
Me.ReplacementOrder.Locked = True
Me.ReplacementReference.Enabled = True
Me.ReplacementReference.Locked = True
Me.DiscountOffered.Enabled = True
Me.DiscountOffered.Locked = True
Me.Discount.Enabled = True
Me.Discount.Locked = True
Me.DiscountAmount.Enabled = True
Me.DiscountAmount.Locked = True
Me.SubTotal.Enabled = True
Me.SubTotal.Locked = True
Me.Collect.Enabled = True
Me.Collect.Locked = True
Case 8
Me.InvoiceNumber.Enabled = False
Me.OrderReference.Enabled = False
Me.Quantity.Enabled = False
Me.Code.Enabled = False
Me.Item.Enabled = False
Me.Problem.Enabled = False
Me.LongCode.Enabled = False
Me.SellPrice.Enabled = False
Me.CostPrice.Enabled = False
Me.Action.Enabled = False
Me.Supplier.Enabled = False
Me.HandlingFee.Enabled = False
Me.HandlingFeeAmount.Enabled = False
Me.ReplacementOrder.Enabled = False
Me.ReplacementReference.Enabled = False
Me.DiscountOffered.Enabled = False
Me.Discount.Enabled = False
Me.DiscountAmount.Enabled = False
Me.SubTotal.Enabled = False
Me.Collect.Enabled = False
Me.cmdReturn.Enabled = False
Me.cmdCollect.Enabled = False
End Select
End Sub
 
The problem might be with this line:

If Me.StatusBar = 1 Or 2 Or 3 Or 4 Or 5 Then

I suspect that it is always true because the logic isn't working quite as
you expected. If you want to do a comparison of one field against several
values in an if statement you have to fully state the condition for each
value. This should work:

If Me.StatusBar = 1 or _
Me.StatusBar = 2 or _
Me.StatusBar = 3or _
Me.StatusBar = 4 or _
Me.StatusBar =5 then

In your AfterUpdate event you used a Select Case statement instead of the If
statement. You might want to move the working code to a separate procedure
and call it from both places to remove redundant code.
 
Back
Top