brucesilvers
Registered User.
- Local time
- Today, 05:16
- Joined
- Aug 4, 2000
- Messages
- 70
I have a continuous form, with data entry fields in both the form header and the detail section.
I've attached an "On Exit" event to the ProdQty field in the detail section. The prime function of the event code is to run an update query on the table (which is the data source for the form).
The code executes properly (update query runs successfully and form refreshes) when I Tab out of that field. It also executes properly when I use the mouse to click on another field in the detail section.
However, when I use the mouse to click on a field in the form header or form footer sections, the On Exit code does not execute properly.
Here's the On Exit Sub:
Here's the Update Query:
I tried copying that code to "After Update", "On Change", and "On Lost Focus" events but the results were the same.
Any suggestions would be greatly appreciated. Thanks!
I've attached an "On Exit" event to the ProdQty field in the detail section. The prime function of the event code is to run an update query on the table (which is the data source for the form).
The code executes properly (update query runs successfully and form refreshes) when I Tab out of that field. It also executes properly when I use the mouse to click on another field in the detail section.
However, when I use the mouse to click on a field in the form header or form footer sections, the On Exit code does not execute properly.
Here's the On Exit Sub:
Code:
Private Sub ProdQty_Exit(Cancel As Integer)
On Error GoTo ProdQty_Error
If (Int(Me!ProdQty) <> Me!ProdQty) Or ((Me!ProdQty / Me!LDU) < 1) Or (Int(Me!ProdQty / Me!LDU) <> (Me!ProdQty / Me!LDU)) Then
Me.ProdQty.BackColor = 255
Me.ProdQty.ForeColor = 16777215
Beep
MsgBox "The quantity you entered is invalid for this product." & vbCrLf & vbCrLf & "Please check the LDU (least divisible unit) and enter a new quantity.", vbExclamation, "Quantity Error"
DoCmd.GoToRecord acActiveDataObject, "Order Form", acPrevious
DoCmd.GoToRecord acActiveDataObject, "Order Form", acNext
DoCmd.GoToControl "ProdQty"
Exit Sub
Else
Me.ProdQty.BackColor = 255
Me.ProdQty.BackColor = 16777215
Me.ProdQty.ForeColor = 0
DoCmd.SetWarnings False
DoCmd.OpenQuery "Update Product Qty in Current Order", acViewNormal, acEdit
Me.Requery
Me.Refresh
Me.Repaint
DoCmd.GoToControl "ProductCombo"
End If
ProdQty_Error:
Exit Sub
End Sub
Here's the Update Query:
Code:
UPDATE [Current Order] INNER JOIN Products ON [Current Order].[Product #] = Products.[Product #] SET [Current Order].Quantity = Forms![Order Form]!ProdQty, [Current Order].Price = IIf([Forms]![Order Form]![PriceCodeCombo]="CS",[Products]![Contract Net]*([Forms]![Order Form]![ProdQty]/[Forms]![Order Form]![ProdLDU1]),IIf([Forms]![Order Form]![PriceCodeCombo]="EDW",[Products]![Ed Wholesale]*([Forms]![Order Form]![ProdQty]/[Forms]![Order Form]![ProdLDU1]),IIf([Forms]![Order Form]![PriceCodeCombo]="R2",[Products]![R2 Net]*([Forms]![Order Form]![ProdQty]/[Forms]![Order Form]![ProdLDU1]),IIf([Forms]![Order Form]![PriceCodeCombo]="R3",[Products]![R3 Net]*([Forms]![Order Form]![ProdQty]/[Forms]![Order Form]![ProdLDU1]),IIf([Forms]![Order Form]![PriceCodeCombo]="R4",[Products]![R4 Net]*([Forms]![Order Form]![ProdQty]/[Forms]![Order Form]![ProdLDU1]),IIf([Forms]![Order Form]![PriceCodeCombo]="R5",[Products]![R5 Net]*([Forms]![Order Form]![ProdQty]/[Forms]![Order Form]![ProdLDU1]),IIf([Forms]![Order Form]![PriceCodeCombo]="R6",[Products]![R6 Net]*([Forms]![Order Form]![ProdQty]/[Forms]![Order Form]![ProdLDU1]),IIf([Forms]![Order Form]![PriceCodeCombo]="W",[Products]![Wholesale Net]))))))))
WHERE ((([Current Order].[Product #])=[Forms]![Order Form]![Product1]));
I tried copying that code to "After Update", "On Change", and "On Lost Focus" events but the results were the same.
Any suggestions would be greatly appreciated. Thanks!
Last edited: