I have been asked to make changes to an app that is WAY more complicated than anything I've ever done. The changes themselves are no problem (add 3 new fields to each of two tables and modify 2 forms and a report). The problem is after I make the changes the app doesn't work. The database (even stripped of all but 10 records) is too big to upload here. (2.5M)
I need to add 2 text fields (Route and Region) each 10 chars. and a yes/no field (Early Delivery) to the Order Head table and the Location table. I need to add those three fields to the Order Head and Location forms and get the info to copy over from the Location table if they select a reception location from the drop down on the Order Head form.
I have at least two possible problems. The first is as soon as I add the fields to the table and the Order Head form the form doesn't open in Data Entry mode. If I change the Data Entry property on the form to Yes, it works (although I think from looking at the code that it should have been set automatically when the New Order button was clicked on the switchboard). The second problem is that once I change the Data Entry property to Yes I can't add records to the subforms (the message is that a record must be added to Order Head first).
So....something I'm doing appears to be circumventing the code that commits the record.
I'd really appreciate any help.
OrderHead Code (I cut a lot out so the message wasn't too big)
Option Compare Database ' Use database order for string comparisons.
Option Explicit ' Requires variables to be declared before they are used.
Private Sub cmdAdd_Click()
On Error GoTo Err_cmdAdd_Click
Me.cmdAdditionalPayment.Visible = False
DoCmd.GoToRecord , , acNewRec
Me.frmBridalConsultant.SetFocus
Exit_cmdAdd_Click:
Exit Sub
Err_cmdAdd_Click:
MsgBox Err.Description
Resume Exit_cmdAdd_Click
End Sub
Private Sub cmdDelete_Click()
On Error GoTo Err_cmdDelete_Click
Dim myVar As Variant
Me.cmdAdditionalPayment.Visible = False
If IsNull(Me.frmRecordStatus) _
Or IsEmpty(Me.frmRecordStatus) _
Or Me.frmRecordStatus = " " Then
myVar = OrdersCleanUp(Me.frmOrder)
Me.frmRecordStatus = "P"
Me.dspRecordStatus = "DELETED"
Me.dspRecordStatus.Visible = True
'Me.cmdDelete.Visible = False
'Me.cmdUndelete.Visible = True
Me.Refresh
Form.Repaint
MsgBox ("Order flagged as deleted . . .")
Else
If Me.frmRecordStatus = "P" _
Or Me.frmRecordStatus = "D" Then
MsgBox "Order is already flagged as deleted"
Else
End If
End If
Exit_cmdDelete_Click:
Exit Sub
Err_cmdDelete_Click:
MsgBox Err.Description
Resume Exit_cmdDelete_Click
End Sub
Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
If IsNull(Me.frmReceptionDate) _
Or IsEmpty(Me.frmReceptionDate) _
Or Me.frmReceptionDate = " " Then
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.Refresh
MsgBox ("Order saved . . .")
End If
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub
Private Sub Form_Activate()
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Activate" _
& vbCr & vbLf & "Order=" & Me![frmOrder]
Else
End If
If IsNull(Me![frmOrder]) Then
intOrder = 0
Else
intOrder = Me![frmOrder]
End If
If blnPackage Then
If Me.cmdAdditionalPayment.Visible = True Then
Me![frmTotalAdditionalPayments] = rtnTotalAdditionalPayments(intOrder)
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalAdditionalPayments]
Me.cmdMoney.Visible = True
Else
Me![frmTotalPayments] = rtnTotalPayments(intOrder)
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
Me.cmdMoney.Visible = False
End If
Else
Me![frmTotalPayments] = rtnTotalPayments(intOrder)
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
End If
Form.Repaint
End Sub
Private Sub Form_AfterInsert()
If IsNull(Me![frmReceptionGuests]) Then
intGuests = 0
Else
intGuests = Me![frmReceptionGuests]
End If
blnCoveringCharge = False
If IsNull(Me![frmLayers]) Then
intLayers = 0
Else
intLayers = Me![frmLayers]
End If
If IsNull(Me![frmTierSets]) _
Or Me![frmTierSets] < 1 Then
blnRaised = False
Else
blnRaised = True
End If
intLayer = 1
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_AfterInsert" _
& vbCr & vbLf & "Order=" & Me![frmOrder] _
& vbCr & vbLf & "Guests=" & Me![frmReceptionGuests] _
& vbCr & vbLf & "intLayers=" & intLayers _
& vbCr & vbLf & "blnRaised=" & blnRaised _
& vbCr & vbLf & "intLayer=" & intLayer
Else
End If
End Sub
Private Sub Form_BeforeInsert(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_BeforeInsert" _
& vbCr & vbLf & "Order=" & Me![Order]
Else
End If
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_BeforeUpdate"
Else
End If
End Sub
Private Sub Form_CommandExecute(ByVal Command As Variant)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_CommandExecute"
Else
End If
End Sub
Private Sub Form_Current()
' MsgBox Me.Name & "Form_Current Order=" & Me.frmOrder
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Current" _
& vbCr & vbLf & "Order=" & Me![Order] _
& vbCr & vbLf & "NewRecord=" & Me.NewRecord _
& vbCr & vbLf & "DataEntry=" & Me.DataEntry _
& vbCr & vbLf & "AllowAdditions=" & Me.AllowAdditions
Else
End If
If Form.DataEntry Then ' New Order
Me![dspMode] = "New Order"
'Me.dspFilter.Visible = False
Me.cmdAdd.Visible = True
Me.cmdDelete.Visible = True
Me.cmdUndelete.Visible = False
Me.cmdFilter.Visible = False
Me.cmdMoney.Visible = False
Me.cmdAdditionalPayment.Visible = False
Else ' Order Inquiry
Me![dspMode] = "Order Inquiry/Edit"
Me.AllowAdditions = False
Me.cmdAdd.Visible = False
'Me![dspFilter] = Me.Filter
'Me.dspFilter.Visible = True
Me.cmdFilter.Visible = True
If IsNull(Me.frmRecordStatus) _
Or IsEmpty(Me.frmRecordStatus) _
Or Me.frmRecordStatus = " " Then
Me.cmdDelete.Visible = True
Me.cmdUndelete.Visible = False
Me.dspRecordStatus = " "
Me.dspRecordStatus.Visible = False
Else
Me.cmdDelete.Visible = False
Me.cmdUndelete.Visible = True
Me.dspRecordStatus = "DELETED"
Me.dspRecordStatus.Visible = True
End If
End If
Me![frmHotelPackage] = Me![dspHotelPackage]
If IsNull(Me![frmHotelPackage]) Then
Me.cmdMoney.Visible = False
Me.cmdAdditionalPayment.Visible = False
Else
Me.cmdMoney.Caption = "Show Upgrades"
Me.cmdMoney.Visible = True
End If
Me![frmReceptionLocation] = Me![dspReceptionLocation]
Me![frmCakeType] = Me![dspCakeType]
If IsNull(Me![frmReceptionGuests]) Then
intGuests = 0
Else
intGuests = Me![frmReceptionGuests]
End If
Me![dspTotalCharges] = Me![frmCakePrice] _
+ Me![frmCoveringCharge] _
+ Me![frmFlowersCharge] _
+ Me![frmTieringCharge] _
+ Me![frmFlatCharge] _
+ Me![frmDeliveryCharge]
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
If Me![frmCoveringCharge] > 0 Then
blnCoveringCharge = True
Else
blnCoveringCharge = False
End If
If IsNull(Me.TierSets) Or Me.TierSets < 1 Then
blnRaised = False
Else
blnRaised = True
End If
'MsgBox "Trap 3 blnRaised=" & blnRaised, vbInformation
intLayer = 0
End Sub
Private Sub Form_DataChange(ByVal Reason As Long)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_DataChange" _
& vbCr & vbLf & "Reason=" & Reason
Else
End If
End Sub
Private Sub Form_Deactivate()
If gTrace Then
'gSequence = gSequence + 1
'MsgBox Me.Name & " " & gSequence & " Form_Deactivate"
Else
End If
End Sub
Private Sub Form_Delete(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Delete"
Else
End If
End Sub
Private Sub Form_Filter(Cancel As Integer, FilterType As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Filter" _
& vbCr & vbLf & "FilterType=" & FilterType
Else
End If
End Sub
Private Sub Form_GotFocus()
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_GotFocus"
Else
End If
End Sub
Private Sub Form_Load()
If gStartup Then
Else
gTrace = True
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Load"
End If
End Sub
Private Sub Form_LostFocus()
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_LostFocus"
Else
End If
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open
Dim myFilter As String
Dim myBride As String, myCakeType As String, myPackage As String
' MsgBox Me.Name & "Form_Open Current Order=" & Me.frmOrder
If Form.DataEntry Then ' New Order
Else ' Order Inquiry
If gTrace Then
MsgBox ">>>Filter Values" _
& vbCr & vbLf & "Order=" & Forms![OrderFilter]![frmOrder] _
& vbCr & vbLf & "OrderDate=" & Forms![OrderFilter]![frmOrderDate] _
& vbCr & vbLf & "Bride=" & Forms![OrderFilter]![frmBridesLastName] _
& vbCr & vbLf & "Package=" & Forms![OrderFilter]![frmPackage] _
& vbCr & vbLf & "CakeType=" & Forms![OrderFilter]![frmCakeType] _
& vbCr & vbLf & "ReceptionDates=" & Forms![OrderFilter]![rptReceptionDateBegin] _
& "-" & Forms![OrderFilter]![rptReceptionDateEnd]
Else
End If
If Not IsNull(Forms![OrderFilter]![rptReceptionDateBegin]) Then
myFilter = "OrderHead.ReceptionDate >= #" _
& Forms!OrderFilter!rptReceptionDateBegin _
& "# And OrderHead.ReceptionDate <= #" _
& Forms!OrderFilter!rptReceptionDateEnd & "#"
Else
End If
If Not IsNull(Forms![OrderFilter]![frmOrder]) Then
If IsNumeric(Forms![OrderFilter]![frmOrder]) Then
'Me.Filter = "Order = " & Forms![OrderFilter]![frmOrder]
myFilter = "Order = " & Forms![OrderFilter]![frmOrder]
Else
'Me.Filter = "Order > 0"
myFilter = "Order > 0"
End If
Else
If IsNull(Forms![OrderFilter]![frmBridesLastName]) Then
myBride = "*"
Else
myBride = Forms![OrderFilter]![frmBridesLastName] & "*"
End If
If myFilter = "" Then
If myBride = "*" Then
myFilter = "(IsEmpty(BridesLastName) or IsNull(BridesLastName) or BridesLastName like '" & myBride & "')"
Else
myFilter = "BridesLastName like '" & myBride & "'"
End If
Else
If myBride = "*" Then
myFilter = myFilter & " and (IsEmpty(BridesLastName) or IsNull(BridesLastName) or BridesLastName like '" & myBride & "')"
Else
myFilter = myFilter & " and BridesLastName like '" & myBride & "'"
End If
End If
If IsNull(Forms![OrderFilter]![frmPackage]) Then
myPackage = "*"
Else
myPackage = Forms![OrderFilter]![frmPackage] & "*"
End If
If myFilter = "" Then
If myPackage = "*" Then
myFilter = "(IsEmpty(HotelPackage) or IsNull(HotelPackage) or HotelPackage like '" & myPackage & "')"
Else
myFilter = "HotelPackage like '" & myPackage & "'"
End If
Else
If myPackage = "*" Then
myFilter = myFilter & " and (IsEmpty(HotelPackage) or IsNull(HotelPackage) or HotelPackage like '" & myPackage & "')"
Else
myFilter = myFilter & " and HotelPackage like '" & myPackage & "'"
End If
End If
If IsNull(Forms![OrderFilter]![frmCakeType]) Then
myCakeType = "*"
Else
myCakeType = Forms![OrderFilter]![frmCakeType] & "*"
End If
If myFilter = "" Then
If myCakeType = "*" Then
myFilter = "(IsEmpty(CakeType) or IsNull(CakeType) or CakeType like '" & myCakeType & "')"
Else
myFilter = "CakeType like '" & myCakeType & "'"
End If
Else
If myCakeType = "*" Then
myFilter = myFilter & " and (IsEmpty(CakeType) or IsNull(CakeType) or CakeType like '" & myCakeType & "')"
Else
myFilter = myFilter & " and CakeType like '" & myCakeType & "'"
End If
End If
End If
Me.Filter = myFilter
Me.FilterOn = True
'Me![dspFilter] = Me.Filter
Me.OrderBy = "Order DESC"
Me.OrderByOn = True
Form.Repaint
End If
Exit_Form_Open:
Exit Sub
Err_Form_Open:
MsgBox Err.Description
Resume Exit_Form_Open
End Sub
Private Sub Form_Undo(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Undo"
Else
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If gTrace Then
'gSequence = gSequence + 1
'MsgBox Me.Name & " " & gSequence & " Form_Unload"
Else
End If
End Sub
Private Sub frmReceptionLocation_AfterUpdate()
Dim CurConn As New ADODB.Connection, objRSLocation As New ADODB.Recordset
Dim myReceptionLocation As String
'MsgBox Me.Name &" frmReceptionLocation_AfterUpdate", vbInformation
If IsNull(Me![frmReceptionLocation]) Then
myReceptionLocation = " "
Else
myReceptionLocation = Me![frmReceptionLocation]
End If
Me![dspReceptionLocation] = myReceptionLocation
CurConn.Open CurrentProject.Connection
objRSLocation.Open "Select * from [Location] where [Location] = '" & myReceptionLocation & "'", CurConn, adOpenKeyset, adLockOptimistic
If objRSLocation.RecordCount = 1 Then
Me![dspReceptionLocationID] = objRSLocation("LocationID")
Me![frmReceptionContact] = objRSLocation("Contact")
Me![frmReceptionContactTelephone] = objRSLocation("Telephone")
Me![frmReceptionStreetAddr1] = objRSLocation("StreetAddr1")
Me![frmReceptionStreetAddr2] = objRSLocation("StreetAddr2")
Me![frmReceptionTown] = objRSLocation("Town")
Me![frmReceptionState] = objRSLocation("State")
Me![frmReceptionZipcode] = objRSLocation("Zipcode")
Me![frmDeliveryContact] = objRSLocation("Contact")
Me![frmDeliveryContactTelephone] = objRSLocation("Telephone")
If blnPackage Then
Me![frmDeliveryCharge] = 0
Else
Me![frmDeliveryCharge] = objRSLocation("DeliveryCharge")
End If
Else
Me![frmReceptionContact] = " "
Me![frmReceptionContactTelephone] = " "
Me![frmReceptionStreetAddr1] = " "
Me![frmReceptionStreetAddr2] = " "
Me![frmReceptionTown] = " "
Me![frmReceptionState] = " "
Me![frmReceptionZipcode] = " "
Me![frmDeliveryContact] = " "
Me![frmDeliveryContactTelephone] = " "
Me![frmDeliveryCharge] = 0
End If
objRSLocation.Close
Set objRSLocation = Nothing
CurConn.Close
Set CurConn = Nothing
Me![dspTotalCharges] = Me![frmCakePrice] _
+ Me![frmCoveringCharge] _
+ Me![frmFlowersCharge] _
+ Me![frmTieringCharge] _
+ Me![frmFlatCharge] _
+ Me![frmDeliveryCharge]
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
Form.Repaint
End Sub
Private Sub frmReceptionLocation_BeforeUpdate(Cancel As Integer)
Dim CurConn As New ADODB.Connection, objRSLocation As New ADODB.Recordset
Dim myReceptionLocation As String
'MsgBox Me.Name &" frmReceptionLocation_BeforeUpdate", vbInformation
If IsNull(Me![frmReceptionLocation]) Then
myReceptionLocation = " "
Else
myReceptionLocation = Me![frmReceptionLocation]
End If
Me![dspReceptionLocation] = myReceptionLocation
CurConn.Open CurrentProject.Connection
objRSLocation.Open "Select * from [Location] where [Location] = '" & myReceptionLocation & "'", CurConn, adOpenKeyset, adLockOptimistic
If objRSLocation.RecordCount = 1 Then
Me![dspReceptionLocationID] = objRSLocation("LocationID")
Me![frmReceptionContact] = objRSLocation("Contact")
Me![frmReceptionContactTelephone] = objRSLocation("Telephone")
Me![frmReceptionStreetAddr1] = objRSLocation("StreetAddr1")
Me![frmReceptionStreetAddr2] = objRSLocation("StreetAddr2")
Me![frmReceptionTown] = objRSLocation("Town")
Me![frmReceptionState] = objRSLocation("State")
Me![frmReceptionZipcode] = objRSLocation("Zipcode")
Me![frmDeliveryContact] = objRSLocation("Contact")
Me![frmDeliveryContactTelephone] = objRSLocation("Telephone")
If blnPackage Then
Me![frmDeliveryCharge] = 0
Else
Me![frmDeliveryCharge] = objRSLocation("DeliveryCharge")
End If
Else
Me![frmReceptionContact] = " "
Me![frmReceptionContactTelephone] = " "
Me![frmReceptionStreetAddr1] = " "
Me![frmReceptionStreetAddr2] = " "
Me![frmReceptionTown] = " "
Me![frmReceptionState] = " "
Me![frmReceptionZipcode] = " "
Me![frmDeliveryContact] = " "
Me![frmDeliveryContactTelephone] = " "
Me![frmDeliveryCharge] = 0
End If
objRSLocation.Close
Set objRSLocation = Nothing
CurConn.Close
Set CurConn = Nothing
Me![dspTotalCharges] = Me![frmCakePrice] _
+ Me![frmCoveringCharge] _
+ Me![frmFlowersCharge] _
+ Me![frmTieringCharge] _
+ Me![frmFlatCharge] _
+ Me![frmDeliveryCharge]
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
Form.Repaint
End Sub
Private Sub frmStacked_AfterUpdate()
If IsNull(Me![frmTierSets]) _
Or Me![frmTierSets] < 1 Then
blnRaised = False
Else
blnRaised = True
End If
End Sub
Private Sub frmStacked_BeforeUpdate(Cancel As Integer)
If IsNull(Me![frmTierSets]) _
Or Me![frmTierSets] < 1 Then
blnRaised = False
Else
blnRaised = True
End If
End Sub
Private Sub cmdLocations_Click()
On Error GoTo Err_cmdLocations_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Location"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Me.Refresh
Exit_cmdLocations_Click:
Exit Sub
Err_cmdLocations_Click:
MsgBox Err.Description
Resume Exit_cmdLocations_Click
End Sub
Switchboard Code
ption Compare Database ' Use database order for string comparisons.
Option Explicit ' Requires variables to be declared before they are used.
Function OpenForms(strFormName As String) As Integer
' This function is used in the onClick event of command buttons that
' open forms on the Main Switchboard. Using a function is more efficient
' than repeating the same code in multiple event procedures.
On Error GoTo Err_OpenForms
' Open specified form.
DoCmd.OpenForm strFormName
Exit_OpenForms:
Exit Function
Err_OpenForms:
MsgBox Err.Description
Resume Exit_OpenForms
End Function
Private Sub cmdNewOrder_Click()
DoCmd.OpenForm "OrderHead", , , , acFormAdd
End Sub
Private Sub cmdOrderInquiry_Click()
DoCmd.OpenForm "OrderFilter"
End Sub
Private Sub cmdReports_Click()
DoCmd.OpenForm "ReportFilter"
End Sub
Sub DisplayDatabaseWindow_Click()
On Error GoTo Err_DisplayDatabaseWindow_Click
Dim strDocName As String
' Close Main Switchboard form.
DoCmd.Close
gStartup = False
gTrace = False
gSequence = 0
' Give focus to Database window.
strDocName = "OrderHead"
DoCmd.SelectObject acTable, strDocName, True
Exit_DisplayDatabaseWindow_Click:
Exit Sub
Err_DisplayDatabaseWindow_Click:
MsgBox Err.Description
Resume Exit_DisplayDatabaseWindow_Click
End Sub
Erika
I need to add 2 text fields (Route and Region) each 10 chars. and a yes/no field (Early Delivery) to the Order Head table and the Location table. I need to add those three fields to the Order Head and Location forms and get the info to copy over from the Location table if they select a reception location from the drop down on the Order Head form.
I have at least two possible problems. The first is as soon as I add the fields to the table and the Order Head form the form doesn't open in Data Entry mode. If I change the Data Entry property on the form to Yes, it works (although I think from looking at the code that it should have been set automatically when the New Order button was clicked on the switchboard). The second problem is that once I change the Data Entry property to Yes I can't add records to the subforms (the message is that a record must be added to Order Head first).
So....something I'm doing appears to be circumventing the code that commits the record.
I'd really appreciate any help.
OrderHead Code (I cut a lot out so the message wasn't too big)
Option Compare Database ' Use database order for string comparisons.
Option Explicit ' Requires variables to be declared before they are used.
Private Sub cmdAdd_Click()
On Error GoTo Err_cmdAdd_Click
Me.cmdAdditionalPayment.Visible = False
DoCmd.GoToRecord , , acNewRec
Me.frmBridalConsultant.SetFocus
Exit_cmdAdd_Click:
Exit Sub
Err_cmdAdd_Click:
MsgBox Err.Description
Resume Exit_cmdAdd_Click
End Sub
Private Sub cmdDelete_Click()
On Error GoTo Err_cmdDelete_Click
Dim myVar As Variant
Me.cmdAdditionalPayment.Visible = False
If IsNull(Me.frmRecordStatus) _
Or IsEmpty(Me.frmRecordStatus) _
Or Me.frmRecordStatus = " " Then
myVar = OrdersCleanUp(Me.frmOrder)
Me.frmRecordStatus = "P"
Me.dspRecordStatus = "DELETED"
Me.dspRecordStatus.Visible = True
'Me.cmdDelete.Visible = False
'Me.cmdUndelete.Visible = True
Me.Refresh
Form.Repaint
MsgBox ("Order flagged as deleted . . .")
Else
If Me.frmRecordStatus = "P" _
Or Me.frmRecordStatus = "D" Then
MsgBox "Order is already flagged as deleted"
Else
End If
End If
Exit_cmdDelete_Click:
Exit Sub
Err_cmdDelete_Click:
MsgBox Err.Description
Resume Exit_cmdDelete_Click
End Sub
Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
If IsNull(Me.frmReceptionDate) _
Or IsEmpty(Me.frmReceptionDate) _
Or Me.frmReceptionDate = " " Then
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.Refresh
MsgBox ("Order saved . . .")
End If
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub
Private Sub Form_Activate()
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Activate" _
& vbCr & vbLf & "Order=" & Me![frmOrder]
Else
End If
If IsNull(Me![frmOrder]) Then
intOrder = 0
Else
intOrder = Me![frmOrder]
End If
If blnPackage Then
If Me.cmdAdditionalPayment.Visible = True Then
Me![frmTotalAdditionalPayments] = rtnTotalAdditionalPayments(intOrder)
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalAdditionalPayments]
Me.cmdMoney.Visible = True
Else
Me![frmTotalPayments] = rtnTotalPayments(intOrder)
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
Me.cmdMoney.Visible = False
End If
Else
Me![frmTotalPayments] = rtnTotalPayments(intOrder)
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
End If
Form.Repaint
End Sub
Private Sub Form_AfterInsert()
If IsNull(Me![frmReceptionGuests]) Then
intGuests = 0
Else
intGuests = Me![frmReceptionGuests]
End If
blnCoveringCharge = False
If IsNull(Me![frmLayers]) Then
intLayers = 0
Else
intLayers = Me![frmLayers]
End If
If IsNull(Me![frmTierSets]) _
Or Me![frmTierSets] < 1 Then
blnRaised = False
Else
blnRaised = True
End If
intLayer = 1
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_AfterInsert" _
& vbCr & vbLf & "Order=" & Me![frmOrder] _
& vbCr & vbLf & "Guests=" & Me![frmReceptionGuests] _
& vbCr & vbLf & "intLayers=" & intLayers _
& vbCr & vbLf & "blnRaised=" & blnRaised _
& vbCr & vbLf & "intLayer=" & intLayer
Else
End If
End Sub
Private Sub Form_BeforeInsert(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_BeforeInsert" _
& vbCr & vbLf & "Order=" & Me![Order]
Else
End If
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_BeforeUpdate"
Else
End If
End Sub
Private Sub Form_CommandExecute(ByVal Command As Variant)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_CommandExecute"
Else
End If
End Sub
Private Sub Form_Current()
' MsgBox Me.Name & "Form_Current Order=" & Me.frmOrder
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Current" _
& vbCr & vbLf & "Order=" & Me![Order] _
& vbCr & vbLf & "NewRecord=" & Me.NewRecord _
& vbCr & vbLf & "DataEntry=" & Me.DataEntry _
& vbCr & vbLf & "AllowAdditions=" & Me.AllowAdditions
Else
End If
If Form.DataEntry Then ' New Order
Me![dspMode] = "New Order"
'Me.dspFilter.Visible = False
Me.cmdAdd.Visible = True
Me.cmdDelete.Visible = True
Me.cmdUndelete.Visible = False
Me.cmdFilter.Visible = False
Me.cmdMoney.Visible = False
Me.cmdAdditionalPayment.Visible = False
Else ' Order Inquiry
Me![dspMode] = "Order Inquiry/Edit"
Me.AllowAdditions = False
Me.cmdAdd.Visible = False
'Me![dspFilter] = Me.Filter
'Me.dspFilter.Visible = True
Me.cmdFilter.Visible = True
If IsNull(Me.frmRecordStatus) _
Or IsEmpty(Me.frmRecordStatus) _
Or Me.frmRecordStatus = " " Then
Me.cmdDelete.Visible = True
Me.cmdUndelete.Visible = False
Me.dspRecordStatus = " "
Me.dspRecordStatus.Visible = False
Else
Me.cmdDelete.Visible = False
Me.cmdUndelete.Visible = True
Me.dspRecordStatus = "DELETED"
Me.dspRecordStatus.Visible = True
End If
End If
Me![frmHotelPackage] = Me![dspHotelPackage]
If IsNull(Me![frmHotelPackage]) Then
Me.cmdMoney.Visible = False
Me.cmdAdditionalPayment.Visible = False
Else
Me.cmdMoney.Caption = "Show Upgrades"
Me.cmdMoney.Visible = True
End If
Me![frmReceptionLocation] = Me![dspReceptionLocation]
Me![frmCakeType] = Me![dspCakeType]
If IsNull(Me![frmReceptionGuests]) Then
intGuests = 0
Else
intGuests = Me![frmReceptionGuests]
End If
Me![dspTotalCharges] = Me![frmCakePrice] _
+ Me![frmCoveringCharge] _
+ Me![frmFlowersCharge] _
+ Me![frmTieringCharge] _
+ Me![frmFlatCharge] _
+ Me![frmDeliveryCharge]
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
If Me![frmCoveringCharge] > 0 Then
blnCoveringCharge = True
Else
blnCoveringCharge = False
End If
If IsNull(Me.TierSets) Or Me.TierSets < 1 Then
blnRaised = False
Else
blnRaised = True
End If
'MsgBox "Trap 3 blnRaised=" & blnRaised, vbInformation
intLayer = 0
End Sub
Private Sub Form_DataChange(ByVal Reason As Long)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_DataChange" _
& vbCr & vbLf & "Reason=" & Reason
Else
End If
End Sub
Private Sub Form_Deactivate()
If gTrace Then
'gSequence = gSequence + 1
'MsgBox Me.Name & " " & gSequence & " Form_Deactivate"
Else
End If
End Sub
Private Sub Form_Delete(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Delete"
Else
End If
End Sub
Private Sub Form_Filter(Cancel As Integer, FilterType As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Filter" _
& vbCr & vbLf & "FilterType=" & FilterType
Else
End If
End Sub
Private Sub Form_GotFocus()
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_GotFocus"
Else
End If
End Sub
Private Sub Form_Load()
If gStartup Then
Else
gTrace = True
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Load"
End If
End Sub
Private Sub Form_LostFocus()
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_LostFocus"
Else
End If
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open
Dim myFilter As String
Dim myBride As String, myCakeType As String, myPackage As String
' MsgBox Me.Name & "Form_Open Current Order=" & Me.frmOrder
If Form.DataEntry Then ' New Order
Else ' Order Inquiry
If gTrace Then
MsgBox ">>>Filter Values" _
& vbCr & vbLf & "Order=" & Forms![OrderFilter]![frmOrder] _
& vbCr & vbLf & "OrderDate=" & Forms![OrderFilter]![frmOrderDate] _
& vbCr & vbLf & "Bride=" & Forms![OrderFilter]![frmBridesLastName] _
& vbCr & vbLf & "Package=" & Forms![OrderFilter]![frmPackage] _
& vbCr & vbLf & "CakeType=" & Forms![OrderFilter]![frmCakeType] _
& vbCr & vbLf & "ReceptionDates=" & Forms![OrderFilter]![rptReceptionDateBegin] _
& "-" & Forms![OrderFilter]![rptReceptionDateEnd]
Else
End If
If Not IsNull(Forms![OrderFilter]![rptReceptionDateBegin]) Then
myFilter = "OrderHead.ReceptionDate >= #" _
& Forms!OrderFilter!rptReceptionDateBegin _
& "# And OrderHead.ReceptionDate <= #" _
& Forms!OrderFilter!rptReceptionDateEnd & "#"
Else
End If
If Not IsNull(Forms![OrderFilter]![frmOrder]) Then
If IsNumeric(Forms![OrderFilter]![frmOrder]) Then
'Me.Filter = "Order = " & Forms![OrderFilter]![frmOrder]
myFilter = "Order = " & Forms![OrderFilter]![frmOrder]
Else
'Me.Filter = "Order > 0"
myFilter = "Order > 0"
End If
Else
If IsNull(Forms![OrderFilter]![frmBridesLastName]) Then
myBride = "*"
Else
myBride = Forms![OrderFilter]![frmBridesLastName] & "*"
End If
If myFilter = "" Then
If myBride = "*" Then
myFilter = "(IsEmpty(BridesLastName) or IsNull(BridesLastName) or BridesLastName like '" & myBride & "')"
Else
myFilter = "BridesLastName like '" & myBride & "'"
End If
Else
If myBride = "*" Then
myFilter = myFilter & " and (IsEmpty(BridesLastName) or IsNull(BridesLastName) or BridesLastName like '" & myBride & "')"
Else
myFilter = myFilter & " and BridesLastName like '" & myBride & "'"
End If
End If
If IsNull(Forms![OrderFilter]![frmPackage]) Then
myPackage = "*"
Else
myPackage = Forms![OrderFilter]![frmPackage] & "*"
End If
If myFilter = "" Then
If myPackage = "*" Then
myFilter = "(IsEmpty(HotelPackage) or IsNull(HotelPackage) or HotelPackage like '" & myPackage & "')"
Else
myFilter = "HotelPackage like '" & myPackage & "'"
End If
Else
If myPackage = "*" Then
myFilter = myFilter & " and (IsEmpty(HotelPackage) or IsNull(HotelPackage) or HotelPackage like '" & myPackage & "')"
Else
myFilter = myFilter & " and HotelPackage like '" & myPackage & "'"
End If
End If
If IsNull(Forms![OrderFilter]![frmCakeType]) Then
myCakeType = "*"
Else
myCakeType = Forms![OrderFilter]![frmCakeType] & "*"
End If
If myFilter = "" Then
If myCakeType = "*" Then
myFilter = "(IsEmpty(CakeType) or IsNull(CakeType) or CakeType like '" & myCakeType & "')"
Else
myFilter = "CakeType like '" & myCakeType & "'"
End If
Else
If myCakeType = "*" Then
myFilter = myFilter & " and (IsEmpty(CakeType) or IsNull(CakeType) or CakeType like '" & myCakeType & "')"
Else
myFilter = myFilter & " and CakeType like '" & myCakeType & "'"
End If
End If
End If
Me.Filter = myFilter
Me.FilterOn = True
'Me![dspFilter] = Me.Filter
Me.OrderBy = "Order DESC"
Me.OrderByOn = True
Form.Repaint
End If
Exit_Form_Open:
Exit Sub
Err_Form_Open:
MsgBox Err.Description
Resume Exit_Form_Open
End Sub
Private Sub Form_Undo(Cancel As Integer)
If gTrace Then
gSequence = gSequence + 1
MsgBox Me.Name & " " & gSequence & " Form_Undo"
Else
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If gTrace Then
'gSequence = gSequence + 1
'MsgBox Me.Name & " " & gSequence & " Form_Unload"
Else
End If
End Sub
Private Sub frmReceptionLocation_AfterUpdate()
Dim CurConn As New ADODB.Connection, objRSLocation As New ADODB.Recordset
Dim myReceptionLocation As String
'MsgBox Me.Name &" frmReceptionLocation_AfterUpdate", vbInformation
If IsNull(Me![frmReceptionLocation]) Then
myReceptionLocation = " "
Else
myReceptionLocation = Me![frmReceptionLocation]
End If
Me![dspReceptionLocation] = myReceptionLocation
CurConn.Open CurrentProject.Connection
objRSLocation.Open "Select * from [Location] where [Location] = '" & myReceptionLocation & "'", CurConn, adOpenKeyset, adLockOptimistic
If objRSLocation.RecordCount = 1 Then
Me![dspReceptionLocationID] = objRSLocation("LocationID")
Me![frmReceptionContact] = objRSLocation("Contact")
Me![frmReceptionContactTelephone] = objRSLocation("Telephone")
Me![frmReceptionStreetAddr1] = objRSLocation("StreetAddr1")
Me![frmReceptionStreetAddr2] = objRSLocation("StreetAddr2")
Me![frmReceptionTown] = objRSLocation("Town")
Me![frmReceptionState] = objRSLocation("State")
Me![frmReceptionZipcode] = objRSLocation("Zipcode")
Me![frmDeliveryContact] = objRSLocation("Contact")
Me![frmDeliveryContactTelephone] = objRSLocation("Telephone")
If blnPackage Then
Me![frmDeliveryCharge] = 0
Else
Me![frmDeliveryCharge] = objRSLocation("DeliveryCharge")
End If
Else
Me![frmReceptionContact] = " "
Me![frmReceptionContactTelephone] = " "
Me![frmReceptionStreetAddr1] = " "
Me![frmReceptionStreetAddr2] = " "
Me![frmReceptionTown] = " "
Me![frmReceptionState] = " "
Me![frmReceptionZipcode] = " "
Me![frmDeliveryContact] = " "
Me![frmDeliveryContactTelephone] = " "
Me![frmDeliveryCharge] = 0
End If
objRSLocation.Close
Set objRSLocation = Nothing
CurConn.Close
Set CurConn = Nothing
Me![dspTotalCharges] = Me![frmCakePrice] _
+ Me![frmCoveringCharge] _
+ Me![frmFlowersCharge] _
+ Me![frmTieringCharge] _
+ Me![frmFlatCharge] _
+ Me![frmDeliveryCharge]
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
Form.Repaint
End Sub
Private Sub frmReceptionLocation_BeforeUpdate(Cancel As Integer)
Dim CurConn As New ADODB.Connection, objRSLocation As New ADODB.Recordset
Dim myReceptionLocation As String
'MsgBox Me.Name &" frmReceptionLocation_BeforeUpdate", vbInformation
If IsNull(Me![frmReceptionLocation]) Then
myReceptionLocation = " "
Else
myReceptionLocation = Me![frmReceptionLocation]
End If
Me![dspReceptionLocation] = myReceptionLocation
CurConn.Open CurrentProject.Connection
objRSLocation.Open "Select * from [Location] where [Location] = '" & myReceptionLocation & "'", CurConn, adOpenKeyset, adLockOptimistic
If objRSLocation.RecordCount = 1 Then
Me![dspReceptionLocationID] = objRSLocation("LocationID")
Me![frmReceptionContact] = objRSLocation("Contact")
Me![frmReceptionContactTelephone] = objRSLocation("Telephone")
Me![frmReceptionStreetAddr1] = objRSLocation("StreetAddr1")
Me![frmReceptionStreetAddr2] = objRSLocation("StreetAddr2")
Me![frmReceptionTown] = objRSLocation("Town")
Me![frmReceptionState] = objRSLocation("State")
Me![frmReceptionZipcode] = objRSLocation("Zipcode")
Me![frmDeliveryContact] = objRSLocation("Contact")
Me![frmDeliveryContactTelephone] = objRSLocation("Telephone")
If blnPackage Then
Me![frmDeliveryCharge] = 0
Else
Me![frmDeliveryCharge] = objRSLocation("DeliveryCharge")
End If
Else
Me![frmReceptionContact] = " "
Me![frmReceptionContactTelephone] = " "
Me![frmReceptionStreetAddr1] = " "
Me![frmReceptionStreetAddr2] = " "
Me![frmReceptionTown] = " "
Me![frmReceptionState] = " "
Me![frmReceptionZipcode] = " "
Me![frmDeliveryContact] = " "
Me![frmDeliveryContactTelephone] = " "
Me![frmDeliveryCharge] = 0
End If
objRSLocation.Close
Set objRSLocation = Nothing
CurConn.Close
Set CurConn = Nothing
Me![dspTotalCharges] = Me![frmCakePrice] _
+ Me![frmCoveringCharge] _
+ Me![frmFlowersCharge] _
+ Me![frmTieringCharge] _
+ Me![frmFlatCharge] _
+ Me![frmDeliveryCharge]
Me![dspBalanceDue] = Me![dspTotalCharges] - Me![frmTotalPayments]
Form.Repaint
End Sub
Private Sub frmStacked_AfterUpdate()
If IsNull(Me![frmTierSets]) _
Or Me![frmTierSets] < 1 Then
blnRaised = False
Else
blnRaised = True
End If
End Sub
Private Sub frmStacked_BeforeUpdate(Cancel As Integer)
If IsNull(Me![frmTierSets]) _
Or Me![frmTierSets] < 1 Then
blnRaised = False
Else
blnRaised = True
End If
End Sub
Private Sub cmdLocations_Click()
On Error GoTo Err_cmdLocations_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Location"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Me.Refresh
Exit_cmdLocations_Click:
Exit Sub
Err_cmdLocations_Click:
MsgBox Err.Description
Resume Exit_cmdLocations_Click
End Sub
Switchboard Code
ption Compare Database ' Use database order for string comparisons.
Option Explicit ' Requires variables to be declared before they are used.
Function OpenForms(strFormName As String) As Integer
' This function is used in the onClick event of command buttons that
' open forms on the Main Switchboard. Using a function is more efficient
' than repeating the same code in multiple event procedures.
On Error GoTo Err_OpenForms
' Open specified form.
DoCmd.OpenForm strFormName
Exit_OpenForms:
Exit Function
Err_OpenForms:
MsgBox Err.Description
Resume Exit_OpenForms
End Function
Private Sub cmdNewOrder_Click()
DoCmd.OpenForm "OrderHead", , , , acFormAdd
End Sub
Private Sub cmdOrderInquiry_Click()
DoCmd.OpenForm "OrderFilter"
End Sub
Private Sub cmdReports_Click()
DoCmd.OpenForm "ReportFilter"
End Sub
Sub DisplayDatabaseWindow_Click()
On Error GoTo Err_DisplayDatabaseWindow_Click
Dim strDocName As String
' Close Main Switchboard form.
DoCmd.Close
gStartup = False
gTrace = False
gSequence = 0
' Give focus to Database window.
strDocName = "OrderHead"
DoCmd.SelectObject acTable, strDocName, True
Exit_DisplayDatabaseWindow_Click:
Exit Sub
Err_DisplayDatabaseWindow_Click:
MsgBox Err.Description
Resume Exit_DisplayDatabaseWindow_Click
End Sub
Erika