I use a frame/tgl button combination myself having a default toggle but selected and two additional tog buttons for sorting.
Here's the code:
CODE
Select Case fraProcess
Case 1
Forms!frmPurchase!subformfrmPurchasesubfrmPaidInvoices.Form.RecordSource = "qryfrmPurchasesubfrmPaidInvoices"
Case 2
Forms!frmPurchase!subformfrmPurchasesubfrmPaidInvoices.Form.RecordSource = "qryfrmPurchasesubfrmPaidInvoices_SortDate"
Case 3 '8/22/05
Forms!frmPurchase!subformfrmPurchasesubfrmPaidInvoices.Form.RecordSource = "qryfrmPurchasesubfrmPaidInvoices_SortCut"
Case Else
Dim lstrMessage As String
Dim lintResponse As Integer
lstrMessage = "Sort unsuccessful - please inform System Administrator if problem persist."
lintResponse = MsgBox(lstrMessage, vbOKOnly + vbInformation, "Sort Failed")
Exit Sub
End Select
Note this name: subformfrmPurchasesubfrmPaidInvoices is the subform object on the form and not the actual source object which is the actual form used as the subform.
As far as the button being 'pushed', check your default value of the frame the tgl button is located. That will 'depresse' the tgl.
I'd recommend you have the 'base case' as the default and allow other cases as well as returning to the base case . . . which is what I've done in this code with case 1.
Steve