Need help with VBA syntax when referencing an option group for exporting Access reports

I need to give users the option of exporting Access reports in PDF or XPS format.  The code used for exporting the reports works fine, but I need help finding the syntax that will run the correct set of code once users have selected their desired exporting option.  There are two sets of code to run; if a user selects the PDF option then the syntax for exporting in PDF runs.  If the user selects the XPS option then the syntax for exporting in XPS runs.  

I created an option group with two buttons: PDF (name is optPDF; value = 1) or XPS (name is optXPS; value = 2).  The default is PDF.  I now realize that what matters is which button has the focus.  Thus, saying if Me.optPDF.value = 1 (or Me.optXPS.value =2) doesn't matter.  I'm guessing I need to say something like if Me.optPDF.HasTheFocus then proceed to run the code for exporting reports.

I'm familiar with Select Case statements but cannot find the right combination of syntax to make them work.  Please advise if my code needs to identify which option button has the focus and, if so, what is the correct syntax for that.  If there is a better way to do this I'm would appreciate any suggestions.
Liberty4allAsked:
Who is Participating?
 
Liberty4allConnect With a Mentor Author Commented:
I appreciate your quick response.  I'm guessing that "fra" is short for frame?  If so, the default name for my option group is Frame46.  I renamed it to fraExp (for frame Export) and used two IF statements as follows.

If Me.fraExp = 1 Then (runs code to export reports in PDF format)

If Me.fraExp = 2 Then (runs code to export reports in XPS format)

I usually don't work with option groups so forgot the border (frame) of the option group is the name of the object, and the value of the group itself, and not the individual buttons within it, is what matters.  

Since the above worked I did not need to use Select Case statements but will keep your info for future use.

Thank you very much.
0
 
Helen FeddemaConnect With a Mentor Commented:
You need to get the value of the option group itself, rather than the buttons within it.  Here is some typical code:
Private Sub cmdMultipleContactsQuery_Click()
'Created by Helen Feddema 28-May-2014
'Last modified by Helen Feddema 30-May-2014

On Error GoTo ErrorHandler
   
   intMethod = Nz(Me![fraMethodQuery].Value, 1)
   
   Select Case intMethod
   
      Case 1
         DoCmd.OpenForm FormName:="frmDocPropsQuery"
         
      Case 3
         DoCmd.OpenForm FormName:="frmTypeTextQuery"
      
      Case 2
         DoCmd.OpenForm FormName:="frmMailMergeQuery"
      
      Case 4
         DoCmd.OpenForm FormName:="frmBookmarksQuery"
         
      Case 5
         DoCmd.OpenForm FormName:="frmCatalogMergeQuery"
         
      Case 6
         DoCmd.OpenForm FormName:="frmFormFieldsQuery"
            
      Case 7
         DoCmd.OpenForm FormName:="frmDocVarsQuery"
            
   End Select
   
   Parent.Visible = False
   
ErrorHandlerExit:
   Exit Sub

ErrorHandler:
   MsgBox "Error No: " & Err.Number _
      & " in " & Me.ActiveControl.Name & " procedure; " _
      & "Description: " & Err.Description
   Resume ErrorHandlerExit

End Sub

Open in new window

0
 
Helen FeddemaCommented:
An If ... ElseIf ... End If statement works fine if you just have two options.
0
 
Liberty4allAuthor Commented:
See my comments above as to why I accepted my own solution.  For my purposes it worked the best, but I want the points awarded to Helen Feddema as I would not have been able to solve this without her help.
0
All Courses

From novice to tech pro — start learning today.