Private Sub cmboToWarehouse_Exit(Cancel As Integer)
'For Reference
'Transfer Quantity=me.txtTransferredQuantity fromfrmInventoryTransactions
'From Key = me.txtFromKey = me.cmboWarehouseID + me.cmboPartNumber established in me.cmboPartNumber exit
'To Key = me.txtToKey = me.cmboToWarehouse + me.cmboPartNumber established in me.cmboWarehouse exit
'From Warehouse = me.cmboWarehouseID established in frmInventoryTransactions
'Part Number = me.cmboPartNumber established in frmInventoryTransactions
'To Warehouse = me.cmboToWarehouse established in frmInventoryTransactions
'Current Quantity = Quantity in From Warehouse established in me.cmboPartNumber exit
'To Warehouse Final Quantity = txtToWarehouseFinalQuantity established in me.cmboToWarehouse
'From Warehouse Final Quanitity = me.txtFromWarehouseFinalQuantity = Me.txtCurrentQuantity - Me.txtTransferredQuantity established in me.cmboPartNumber
'We are at the exit of the To Warehouse
'Now Write or Update qryAllWarehouseInventory that uses tblInventory - if the Key(Warehouse + PartNumber) exists change the quantities
'If the Key does not exit, then write it.
Me.txtToKey = (Me.cmboToWarehouse + Me.cmboPartNumber)
'Make Connection
Dim Conn As ADODB.Connection
Dim rst As ADODB.Recordset
Set Conn = New ADODB.Connection
Conn.Open CurrentProject.Connection
Set rst = New ADODB.Recordset
'Open Query
rst.Open "qryAllWarehouseInventory", Conn, adOpenDynamic, adLockOptimistic
'Find "ToKey" Record - make sure that the Part Number exits in the To Warehouse
'And use this as a switch to either write or update
rst.MoveFirst
rst.Find "fldKey = '" & Me.txtToKey & "'"
If rst.EOF Then
'Confirm Update or Write
Dim intConfirmTransactionWrite As Integer
intConfirmTransactionWrite = MsgBox("You are about to transfer Quantity " & Me.txtTransferredQuantity & " Of Part Number " & Me.cmboPartNumber & "From Warehouse " & Me.cmboWarehouseID & "To Warehouse " & Me.cmboToWarehouse & " Please Confirm (Y/N)", vbQuestion + vbYesNo + vbDefaultButton1, "Logistics DB, Inventory Module")
If intConfirmTransactionWrite = vbYes Then
Else 'This is a NO Clear all the fields and start over
Me.txtTransferredQuantity.SetFocus
Me.txtTransferredQuantity = Null
Me.txtCurrentQuantity = Null
Me.cmboWarehouseID = Null
Me.cmboPartNumber = Null
Me.txtFromKey = Null
Me.txtDescription = Null
Me.cmboToWarehouse = Null
Me.txtToKey = Null
Me.txtFromWarehouseFinalQuantity = Null
Me.txtToWarehouseFinalQuantity = Null
Me.txtTransactionNotes = Null
Exit Sub
End If
'Write a New Record with Key and Quantity
'Write to ToWarehouse
rst.AddNew
rst!fldKey = Me.txtToKey
'rst!fldKey = Me.cmboToWarehouse + Me.cmboPartNumber
rst!fldWarehouse = Me.cmboToWarehouse
rst!fldPartNumber = Me.cmboPartNumber
rst!fldDescription = Me.txtDescription
rst!fldQuantity = Me.txtTransferredQuantity
Me.txtToWarehouseFinalQuantity = rst!fldQuantity
rst.Update
'Remove from FromWarehouse
rst.MoveFirst
rst.Find "fldKey = '" & Forms!frmInventoryTransactions.txtFromKey & "'"
rst!fldQuantity = (Me.txtCurrentQuantity - Me.txtTransferredQuantity)
rst.Update
'Now Write to tblInventoryTransaction(IT)Write
Dim ConnITW As ADODB.Connection
Dim rstITW As ADODB.Recordset
Set ConnITW = New ADODB.Connection
ConnITW.Open CurrentProject.Connection
Set rstITW = New ADODB.Recordset
'Open Table
rstITW.Open "tblInventoryTransaction", ConnITW, adOpenDynamic, adLockOptimistic
'Write to tblInventoryTransaction
rstITW.AddNew
rstITW!fldQuantity = Me.txtTransferredQuantity
rstITW!fldToWarehouse = Me.cmboToWarehouse
rstITW!fldPartNumber = Me.cmboPartNumber
rstITW!fldFromWarehouse = Me.cmboWarehouseID
rstITW!fldDateofTransaction = Date
rstITW!fldTransactionNotes = Me.txtTransactionNotes
rstITW!fldTime = Time()
rstITW.Update
'Close Connection
rstITW.Close
'Release Table and Connection
Set rstITW = Nothing
Set ConnITW = Nothing
'Requery SubForm
Me!subfrmDailyTransaction.Form.Requery
'Clear all fields and move to cmd button
Me.cmdRequerySubform.SetFocus
Me.cmdRequerySubform.ForeColor = vbRed
Me.txtTransferredQuantity = Null
Me.txtCurrentQuantity = Null
Me.cmboWarehouseID = Null
Me.cmboPartNumber = Null
Me.txtFromKey = Null
Me.txtDescription = Null
Me.cmboToWarehouse = Null
Me.txtToKey = Null
Me.txtFromWarehouseFinalQuantity = Null
Me.txtToWarehouseFinalQuantity = Null
Me.txtTransactionNotes = Null
'Update
Else
'Update From warehouse and to warehouse then comeback and write code for Confirmation
'Confirm Update or Write use intConfirmTransactionUpdate
'Confirm Update or Write
Dim intConfirmTransactionUpdate As Integer
intConfirmTransactionUpdate = MsgBox("You are about to transfer Quantity " & Me.txtTransferredQuantity & " Of Part Number " & Me.cmboPartNumber & "From Warehouse " & Me.cmboWarehouseID & "To Warehouse " & Me.cmboToWarehouse & " Please Confirm (Y/N)", vbQuestion + vbYesNo + vbDefaultButton1, "Logistics DB, Inventory Module")
If intConfirmTransactionUpdate = vbYes Then
Else 'This is a NO Clear all the fields and start over
Me.txtTransferredQuantity.SetFocus
Me.txtTransferredQuantity = Null
Me.txtCurrentQuantity = Null
Me.cmboWarehouseID = Null
Me.cmboPartNumber = Null
Me.txtFromKey = Null
Me.txtDescription = Null
Me.cmboToWarehouse = Null
Me.txtToKey = Null
Me.txtFromWarehouseFinalQuantity = Null
Me.txtToWarehouseFinalQuantity = Null
Me.txtTransactionNotes = Null
Exit Sub
End If
'Decrease the Quantity in From Warehouse by subtracting
'Start here tommorrow need decrease current Quantity by transferred Quantity
rst.MoveFirst
rst.Find "fldKey = '" & Forms!frmInventoryTransactions.txtFromKey & "'"
rst!fldQuantity = (Me.txtCurrentQuantity - Me.txtTransferredQuantity)
rst.Update
'Increase the Quantity in To Warehouse by adding Current and Transferred
'Do a Find here rst!fldKey = Me.txtToKey
rst.MoveFirst
rst.Find "fldKey = '" & Forms!frmInventoryTransactions.txtToKey & "'"
rst!fldQuantity = (rst!fldQuantity + Me.txtTransferredQuantity)
Me.txtToWarehouseFinalQuantity = rst!fldQuantity
rst.Update
'Now Write to tblInventoryTransaction(IT)Update
Dim ConnITU As ADODB.Connection
Dim rstITU As ADODB.Recordset
Set ConnITU = New ADODB.Connection
ConnITU.Open CurrentProject.Connection
Set rstITU = New ADODB.Recordset
'Open Table
rstITU.Open "tblInventoryTransaction", ConnITU, adOpenDynamic, adLockOptimistic
'Write to tblInventoryTransaction
rstITU.AddNew
rstITU!fldQuantity = Me.txtTransferredQuantity
rstITU!fldToWarehouse = Me.cmboToWarehouse
rstITU!fldPartNumber = Me.cmboPartNumber
rstITU!fldFromWarehouse = Me.cmboWarehouseID
rstITU!fldDateofTransaction = Date
rstITU!fldTime = Time()
rstITU!fldTransactionNotes = Me.txtTransactionNotes
rstITU.Update
'Close Connection
rstITU.Close
'Release Table and Connection
Set rstITU = Nothing
Set ConnITU = Nothing
'Requery SubForm
Me!subfrmDailyTransaction.Form.Requery
'Make all Field Null
Me.cmdRequerySubform.SetFocus
Me.cmdRequerySubform.ForeColor = vbRed
Me.txtTransferredQuantity = Null
Me.txtCurrentQuantity = Null
Me.cmboWarehouseID = Null
Me.cmboPartNumber = Null
Me.txtFromKey = Null
Me.txtToKey = Null
Me.txtDescription = Null
Me.cmboToWarehouse = Null
Me.txtFromWarehouseFinalQuantity = Null
Me.txtToWarehouseFinalQuantity = Null
Me.txtTransactionNotes = Null
End If
'Close Connection
rst.Close
'Release Table and Connection
Set rst = Nothing
Set Conn = Nothing
'Requery SubForm
Me!subfrmDailyTransaction.Form.Requery