I am working on a database for an architectural office. We want to keep track on the in-house printing, mounting the prints on foam boards, scanning, shipping and CD burning. I have distributed the different costs items in multiple areas on the same form (I didn't want to use tabs).
I created a combobox for the "transaction" (printing, mounting, scanning, shipping, or CD burning) for that specific record. When I select "Printing" on the combobox all fields that are NOT pertinent to the "transaction" are "Not Enabled". See attached image. This works fine.

What I'm trying to do now is for when I click the "Save" button, it checks that all the pertinent fields are filled out, save the record, and goes to the next "new" record. I did some research online and came out with something that brings a window that tells the user which field they are missing. So If all the fields are filled out properly, then it should save the record and go to "new". However, I get the error 2105, which points out to "DoCmd.GoToRecord , , acNewRec".
Obviously, my uneducated programming doesn't work. So, can you please point out where I'm failing? Could you give me some ideas on how to get it done properly?
Below is the code I have:
Code:
Private Sub Command23_Click()
If Not IsNull(Me.TransactionType) Then
'Forced fields per Transaction selected
If Me!TransactionType = "Printing" Then
Select Case True
Case IsNull(Me.LogDate)
MsgBox "Please enter a Date."
Me.LogDate.SetFocus
Case IsNull(Me.EmployeeIDFK)
MsgBox "Please select an Employee."
Me.EmployeeIDFK.SetFocus
Case IsNull(Me.CustomerIDFK)
MsgBox "Please select an Job Number - Customer."
Me.CustomerIDFK.SetFocus
Case IsNull(Me.NumberOfSheets)
MsgBox "Please enter a number of Sheets."
Me.NumberOfSheets.SetFocus
Case IsNull(Me.SheetSizeIDFK)
MsgBox "Please select the Sheet Size."
Me.SheetSizeIDFK.SetFocus
Case IsNull(Me.PaperTypeIDFK)
MsgBox "Please select the Type of Paper."
Me.PaperTypeIDFK.SetFocus
Case IsNull(Me.InkIDFK)
MsgBox "Please select Color or B/W."
Me.InkIDFK.SetFocus
Case IsNull(Me.BindingIDFK)
MsgBox "Please select the type of Binding."
Me.BindingIDFK.SetFocus
Case Else
Me!LogDate.Enabled = False
Me!EmployeeIDFK.Enabled = False
Me!CustomerIDFK.Enabled = False
Me!NumberOfSheets.Enabled = False
Me!NumberOfSets.Enabled = False
Me!SheetSizeIDFK.Enabled = False
Me!PaperTypeIDFK.Enabled = False
Me!InkIDFK.Enabled = False
Me!BindingIDFK.Enabled = False
Me!MountingIDFK.Enabled = False
Me!Courier.Enabled = False
Me!CourierFee.Enabled = False
Me!Attachments.Enabled = False
Me!Mileage.Enabled = False
Me!PriceCD_IDFK.Enabled = False
Me!NumberofCDs.Enabled = False
Me!Notes.Enabled = True
MsgBox ("Data Saved! Now get back to Work!")
End Select
End If
If Me!TransactionType = "Mounting" Then
Select Case True
Case IsNull(Me.LogDate)
MsgBox "Please enter a Date."
Me.LogDate.SetFocus
Case IsNull(Me.EmployeeIDFK)
MsgBox "Please select an Employee."
Me.EmployeeIDFK.SetFocus
Case IsNull(Me.CustomerIDFK)
MsgBox "Please select an Job Number - Customer."
Me.CustomerIDFK.SetFocus
Case IsNull(Me.NumberOfSheets)
MsgBox "Please enter a number of Sheets."
Me.NumberOfSheets.SetFocus
Case IsNull(Me.MountingIDFK)
MsgBox "Please select the type of Mounting."
Me.MountingIDFK.SetFocus
Case Else
Me!LogDate.Enabled = False
Me!EmployeeIDFK.Enabled = False
Me!CustomerIDFK.Enabled = False
Me!NumberOfSheets.Enabled = False
Me!NumberOfSets.Enabled = False
Me!SheetSizeIDFK.Enabled = False
Me!PaperTypeIDFK.Enabled = False
Me!InkIDFK.Enabled = False
Me!BindingIDFK.Enabled = False
Me!MountingIDFK.Enabled = False
Me!Courier.Enabled = False
Me!CourierFee.Enabled = False
Me!Attachments.Enabled = False
Me!Mileage.Enabled = False
Me!PriceCD_IDFK.Enabled = False
Me!NumberofCDs.Enabled = False
Me!Notes.Enabled = True
MsgBox ("Data Saved! Now get back to Work!")
End Select
End If
If Me!TransactionType = "Scanning" Then
Select Case True
Case IsNull(Me.LogDate)
MsgBox "Please enter a Date."
Me.LogDate.SetFocus
Case IsNull(Me.EmployeeIDFK)
MsgBox "Please select an Employee."
Me.EmployeeIDFK.SetFocus
Case IsNull(Me.CustomerIDFK)
MsgBox "Please select an Job Number - Customer."
Me.CustomerIDFK.SetFocus
Case IsNull(Me.NumberOfSheets)
MsgBox "Please enter a number of Sheets."
Me.NumberOfSheets.SetFocus
Case IsNull(Me.SheetSizeIDFK)
MsgBox "Please select the Sheet Size."
Me.SheetSizeIDFK.SetFocus
Case IsNull(Me.InkIDFK)
MsgBox "Please select Color or B/W."
Me.InkIDFK.SetFocus
Case Else
Me!LogDate.Enabled = False
Me!EmployeeIDFK.Enabled = False
Me!CustomerIDFK.Enabled = False
Me!NumberOfSheets.Enabled = False
Me!NumberOfSets.Enabled = False
Me!SheetSizeIDFK.Enabled = False
Me!PaperTypeIDFK.Enabled = False
Me!InkIDFK.Enabled = False
Me!BindingIDFK.Enabled = False
Me!MountingIDFK.Enabled = False
Me!Courier.Enabled = False
Me!CourierFee.Enabled = False
Me!Attachments.Enabled = False
Me!Mileage.Enabled = False
Me!PriceCD_IDFK.Enabled = False
Me!NumberofCDs.Enabled = False
Me!Notes.Enabled = True
MsgBox ("Data Saved! Now get back to Work!")
End Select
End If
If Me!TransactionType = "Shipping" Then
Select Case True
Case IsNull(Me.LogDate)
MsgBox "Please enter a Date."
Me.LogDate.SetFocus
Case IsNull(Me.EmployeeIDFK)
MsgBox "Please select an Employee."
Me.EmployeeIDFK.SetFocus
Case IsNull(Me.CustomerIDFK)
MsgBox "Please select an Job Number - Customer."
Me.CustomerIDFK.SetFocus
Case IsNull(Me.Courier)
MsgBox "Please select the Courier."
Me.Courier.SetFocus
Case IsNull(Me.CourierFee)
MsgBox "Please type the Courier Fee."
Me.CourierFee.SetFocus
Case Else
Me!LogDate.Enabled = False
Me!EmployeeIDFK.Enabled = False
Me!CustomerIDFK.Enabled = False
Me!NumberOfSheets.Enabled = False
Me!NumberOfSets.Enabled = False
Me!SheetSizeIDFK.Enabled = False
Me!PaperTypeIDFK.Enabled = False
Me!InkIDFK.Enabled = False
Me!BindingIDFK.Enabled = False
Me!MountingIDFK.Enabled = False
Me!Courier.Enabled = False
Me!CourierFee.Enabled = False
Me!Attachments.Enabled = False
Me!Mileage.Enabled = False
Me!PriceCD_IDFK.Enabled = False
Me!NumberofCDs.Enabled = False
Me!Notes.Enabled = True
MsgBox ("Data Saved! Now get back to Work!")
End Select
End If
If Me!TransactionType = "Mileage" Then
Select Case True
Case IsNull(Me.LogDate)
MsgBox "Please enter a Date."
Me.LogDate.SetFocus
Case IsNull(Me.EmployeeIDFK)
MsgBox "Please select an Employee."
Me.EmployeeIDFK.SetFocus
Case IsNull(Me.CustomerIDFK)
MsgBox "Please select an Job Number - Customer."
Me.CustomerIDFK.SetFocus
Case IsNull(Me.Mileage)
MsgBox "Please type the Mileage."
Me.Mileage.SetFocus
Case Else
Me!LogDate.Enabled = False
Me!EmployeeIDFK.Enabled = False
Me!CustomerIDFK.Enabled = False
Me!NumberOfSheets.Enabled = False
Me!NumberOfSets.Enabled = False
Me!SheetSizeIDFK.Enabled = False
Me!PaperTypeIDFK.Enabled = False
Me!InkIDFK.Enabled = False
Me!BindingIDFK.Enabled = False
Me!MountingIDFK.Enabled = False
Me!Courier.Enabled = False
Me!CourierFee.Enabled = False
Me!Attachments.Enabled = False
Me!Mileage.Enabled = False
Me!PriceCD_IDFK.Enabled = False
Me!NumberofCDs.Enabled = False
Me!Notes.Enabled = True
MsgBox ("Data Saved! Now get back to Work!")
End Select
End If
If Me!TransactionType = "CD Burning" Then
Select Case True
Case IsNull(Me.LogDate)
MsgBox "Please enter a Date."
Me.LogDate.SetFocus
Case IsNull(Me.EmployeeIDFK)
MsgBox "Please select an Employee."
Me.EmployeeIDFK.SetFocus
Case IsNull(Me.CustomerIDFK)
MsgBox "Please select an Job Number - Customer."
Me.CustomerIDFK.SetFocus
Case IsNull(Me.PriceCD_IDFK)
MsgBox "Please select the type of CD Copy."
Me.PriceCD_IDFK.SetFocus
Case IsNull(Me.NumberofCDs)
MsgBox "Please type the number of copies."
Me.NumberofCDs.SetFocus
Case Else
Me!LogDate.Enabled = False
Me!EmployeeIDFK.Enabled = False
Me!CustomerIDFK.Enabled = False
Me!NumberOfSheets.Enabled = False
Me!NumberOfSets.Enabled = False
Me!SheetSizeIDFK.Enabled = False
Me!PaperTypeIDFK.Enabled = False
Me!InkIDFK.Enabled = False
Me!BindingIDFK.Enabled = False
Me!MountingIDFK.Enabled = False
Me!Courier.Enabled = False
Me!CourierFee.Enabled = False
Me!Attachments.Enabled = False
Me!Mileage.Enabled = False
Me!PriceCD_IDFK.Enabled = False
Me!NumberofCDs.Enabled = False
Me!Notes.Enabled = True
MsgBox ("Data Saved! Now get back to Work!")
End Select
End If
Else
MsgBox ("No Data has been added. Record Not saved!")
End If
DoCmd.GoToRecord , , acNewRec
'Unlock TransactionType after a new record starts
Me.TransactionType.Enabled = True
End Sub