[AccessD] TabControlSheet Page Event?

Max Wanadoo max.wanadoo at gmail.com
Tue Mar 11 05:50:20 CDT 2008


Hi Kath,
As an aside, you can change this:

If Me.Dirty Then
    DoCmd.RunCommand acCmdSaveRecord
End If

to this:

me.dirty = false

It does the same thing without having to do a check first or invoking
another function.  all happens within the Form.

Max
 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Kath Pelletti
Sent: Tuesday, March 11, 2008 5:00 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] TabControlSheet Page Event?

Darryl - you need the tab control's 'On Change' event. For each 'tab' on the
tab control, the tabs have a value starting from 0 (ie. the first tab is 0,
the second is 1 etc). So then you can say if on the first tab, load subform
a, if on 2nd tab, load subform b etc.

My code looks something like this:
'----------------------------------------------------------
Private Sub TabChosen_Change()
Dim strerrormsg As String
On Error GoTo Err_Handler

If Me.Dirty Then
    DoCmd.RunCommand acCmdSaveRecord
End If

If Me.TabChosen.Value = 1 Then       'On borrowers subform.
    'If subform not loaded then load it.
    If IsNull(Me.FrmClientContractPrincipalSecuritiesSubform.SourceObject)
Or _
    Me.FrmClientContractPrincipalSecuritiesSubform.SourceObject = "" Then
        Me.FrmClientContractPrincipalSecuritiesSubform.SourceObject =
"FrmClientContractPrincipalSecuritiesSubform"
    End If
    Me.FrmClientContractPrincipalSecuritiesSubform![OfferedBy].Requery

ElseIf Me.TabChosen.Value = 2 Then       'On Collateral securities subform.
    'If subform not loaded then load it.
    If IsNull(Me.FrmClientContractCollateralSecuritiesSubform.SourceObject)
Or _
    Me.FrmClientContractCollateralSecuritiesSubform.SourceObject = "" Then
        Me.FrmClientContractCollateralSecuritiesSubform.SourceObject =
"FrmClientContractCollateralSecuritiesSubform"
    End If

ElseIf Me.TabChosen.Value = 3 Then       'On IPF data tab subform
    If IsNull(Me.FrmClientContractIPFData.SourceObject) Or _
    Me.FrmClientContractIPFData.SourceObject = "" Then
        Me.FrmClientContractIPFData.SourceObject =
"FrmClientContractIPFData"
    End If

End If

Normal_exit:
    Application.Echo True
    Exit Sub
Err_Handler:
    MsgBox "Error: [" & Err.Number & "]  " & IIf(Len(strerrormsg) > 0,
strerrormsg, Err.Description), vbCritical, "Error Message"
    Resume Normal_exit
End Sub

'----------------------------------------------------------

Kath

----- Original Message -----
From: "Darryl Collins" <Darryl.Collins at coles.com.au>
To: "Access Developers discussion and problem solving" 
<accessd at databaseadvisors.com>
Sent: Tuesday, March 11, 2008 3:24 PM
Subject: [AccessD] TabControlSheet Page Event?


> Hey all,
>
> I am stuck on with this, It is probably easy but been up since 4am (it is 
> now 3:20pm) so I am not the sharpest tool in the shed right now!
>
> I have a form with sheet tabs, currently when a user opens the form it is 
> populating all the tabs with data, but this seems a lot of overhead as 
> some users will only look at one or two of the Tab pages.  I wanted to 
> capture when a user click on the tab page so I can call some VBA that will

> load the sub forms for that page only.  I have the code to populate the 
> sheet tabs etc, but I cannot seem to capture the "click on page tab" event

> at all.
>
> I can get "Click on TabControlSheet" but that is for the whole sheet 
> and/or other such unhelpful combos of events.  I thought this would be 
> simple, but maybe I am wrong?
>
>
> '------------------------------------------------
> ' Something like:
>
> Private Sub TabControlSheet.Pages(2)_Click()
>
> ' Then call the modules I want
>
> End sub
> '------------------------------------------------
>
> would be great, but that doesn't seem to be an option.
>
> Any advice?
>
> cheers
>
> Darryl.
>
> This email and any attachments may contain privileged and confidential 
> information and are intended for the named addressee only. If you have 
> received this e-mail in error, please notify the sender and delete this 
> e-mail immediately. Any confidentiality, privilege or copyright is not 
> waived or lost because this e-mail has been sent to you in error. It is 
> your responsibility to check this e-mail and any attachments for viruses. 
> No warranty is made that this material is free from computer virus or any 
> other defect or error.  Any loss/damage incurred by using this material is

> not the sender's responsibility.  The sender's entire liability will be 
> limited to resupplying the material.
>
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 


-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list