[AccessD] Sub Report Syntax...

Darryl Collins Darryl.Collins at coles.com.au
Tue Aug 12 00:42:54 CDT 2008


Well... Turns out that I had to use the SubReports Open event to get this to work.  By doing that everything seems to work fine.

'--------------------------------------
Option Compare Database
Option Explicit

Private Sub Report_Open(Cancel As Integer)

Call WriteTLM_1

End Sub
'----------------------------------------

and then run the process - which is a bit of a pain as I have 6 of these to do and I wanted to loop / case thru them in a single module, rather than having 6 code modules which are pretty much identical, but hey, go with what works...  I am having to do this due to that "Cannot open any more databases" error when this report is run.  This report is rather complex and was causing problems, but by writing the values into labels I get around all those pesky connection limits - and it is faster too.  What I find odd is how I still refer to the Report/SubReport even though the code is being called by the Subreport open event - I would have thought a ThisReport.Something syntax would have worked in that case.

' --------------------------------------
Option Compare Database
Option Explicit

Sub WriteTLM_1()

Dim sSQL As String

Dim lFYPID As Long
Dim lAPLID As Long
Dim db As DAO.Database
Dim rsTL As DAO.Recordset
Dim rsTLClone As DAO.Recordset
Dim n As Long

' Traffic Lights as Key IDs
Dim iBudget As Integer
Dim iSched As Integer
Dim iScope As Integer
Dim iGov As Integer
Dim iStake As Integer
Dim iTeam As Integer
Dim iRisk As Integer

' Traffic Lights As Strings
Dim sBudget As String
Dim sSched As String
Dim sScope As String
Dim sGov As String
Dim sStake As String
Dim sTeam As String
Dim sRisk As String

Set db = CurrentDb

' ProgramID
lAPLID = [Forms]![frm_FYP_APLID_Admin].APLID.Value

' FY and Period ID (-1 from current period)
lFYPID = [Forms]![frm_FYP_APLID_Admin].txt1.Value

' Basic Counter
n = 0

sSQL = ""
sSQL = sSQL & "SELECT tbl_FYP_APLID.APLID, tbl_FYP_APLID.FYPID, tbl_FY_Period.FY_P, tbl_TrafficLightMatix.Budget, tbl_TrafficLightMatix.Schedule, tbl_TrafficLightMatix.Scope, tbl_TrafficLightMatix.Governance, tbl_TrafficLightMatix.Stakeholder, tbl_TrafficLightMatix.Team, tbl_TrafficLightMatix.Risk"
sSQL = sSQL & " FROM (tbl_FY_Period INNER JOIN tbl_FYP_APLID ON tbl_FY_Period.FY_P_ID = tbl_FYP_APLID.FYPID) INNER JOIN tbl_TrafficLightMatix ON tbl_FYP_APLID.FYP_APLID = tbl_TrafficLightMatix.FYP_ProgID"
sSQL = sSQL & " WHERE (((tbl_FYP_APLID.APLID)=" & lAPLID & ") AND ((tbl_FYP_APLID.FYPID)=" & lFYPID & "));"

Set rsTL = db.OpenRecordset(sSQL)
Set rsTLClone = rsTL.OpenRecordset

If (rsTLClone.RecordCount) = 0 Then
    GoTo LastLine
Else
    With rsTLClone
        .MoveLast
        .MoveFirst
    End With

    If (rsTLClone.RecordCount) > 0 Then
        Do While Not rsTLClone.EOF
            n = n + 1
            If n > rsTLClone.RecordCount Then
                Exit Do
            End If

        ' Get the Traffic Light KeyID's
            iBudget = rsTLClone!Budget.Value
            iSched = rsTLClone!Schedule.Value
            iScope = rsTLClone!Scope.Value
            iGov = rsTLClone!Governance.Value
            iStake = rsTLClone!Stakeholder.Value
            iTeam = rsTLClone!Team.Value
            iRisk = rsTLClone!Risk.Value

        ' Write the String Value of the Traffic Light and Colour the Label as appropriate
            ' Budget
            If iBudget = 1 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblBudget.BackColor = 8454016
                sBudget = "G"
            ElseIf iBudget = 2 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblBudget.BackColor = 8454143
                sBudget = "Y"
            ElseIf iBudget = 3 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblBudget.BackColor = 8421631
                sBudget = "R"
            Else
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblBudget.BackColor = 16777215
                sBudget = ""
            End If

            ' Schedule
            If iSched = 1 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblSchedule.BackColor = 8454016
                sSched = "G"
            ElseIf iSched = 2 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblSchedule.BackColor = 8454143
                sSched = "Y"
            ElseIf iSched = 3 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblSchedule.BackColor = 8421631
                sSched = "R"
            Else
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblSchedule.BackColor = 16777215
                sSched = ""
            End If

            DoEvents

            ' Scope
            If iScope = 1 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblScope.BackColor = 8454016
                sScope = "G"
            ElseIf iScope = 2 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblScope.BackColor = 8454143
                sScope = "Y"
            ElseIf iScope = 3 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblScope.BackColor = 8421631
                sScope = "R"
            Else
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblScope.BackColor = 16777215
                sScope = ""
            End If

            DoEvents

            ' Governance
            If iGov = 1 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblGovernance.BackColor = 8454016
                sGov = "G"
            ElseIf iGov = 2 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblGovernance.BackColor = 8454143
                sGov = "Y"
            ElseIf iGov = 3 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblGovernance.BackColor = 8421631
                sGov = "R"
            Else
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblGovernance.BackColor = 16777215
                sGov = ""
            End If

            DoEvents

            ' Stake
            If iStake = 1 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblStakeholder.BackColor = 8454016
                sStake = "G"
            ElseIf iStake = 2 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblStakeholder.BackColor = 8454143
                sStake = "Y"
            ElseIf iStake = 3 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblStakeholder.BackColor = 8421631
                sStake = "R"
            Else
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblStakeholder.BackColor = 16777215
                sStake = ""
            End If

            DoEvents

            ' Team
            If iTeam = 1 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblTeam.BackColor = 8454016
                sTeam = "G"
            ElseIf iTeam = 2 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblTeam.BackColor = 8454143
                sTeam = "Y"
            ElseIf iTeam = 3 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblTeam.BackColor = 8421631
                sTeam = "R"
            Else
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblTeam.BackColor = 16777215
                sTeam = ""
            End If

            DoEvents

            ' Risk
            If iRisk = 1 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblRisk.BackColor = 8454016
                sRisk = "G"
            ElseIf iRisk = 2 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblRisk.BackColor = 8454143
                sRisk = "Y"
            ElseIf iRisk = 3 Then
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblRisk.BackColor = 8421631
                sRisk = "R"
            Else
                [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].lblRisk.BackColor = 16777215
                sRisk = ""
            End If

            DoEvents

        ' Write the Traffic Light Values into the Labels
            With [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report]
                .lblBudget.Caption = sBudget
                .lblSchedule.Caption = sSched
                .lblScope.Caption = sScope
                .lblGovernance.Caption = sGov
                .lblStakeholder.Caption = sStake
                .lblTeam.Caption = sTeam
                .lblRisk.Caption = sRisk
            End With
        Loop
    End If
End If

Set rsTLClone = Nothing

LastLine:

Set rsTL = Nothing
Set rsTLClone = Nothing
Set db = Nothing

End Sub
'----------------------------------------------------





  ----- Original Message -----
  From: Darryl Collins
  To: 'Access Developers discussion and problem solving'
  Sent: Friday, August 08, 2008 12:00
  Subject: [AccessD] Sub Report Syntax...


  Hi all,

  A dead easy one I am sure, but got a bad case of fried brain this friday afternoon.  What is up with this syntax...

  [Reports]![rpt_ProjectSummary].[rpt_TL1].[Report].Budget.Caption = sBudget

  is returning "Invalide Ref to Property Form/Report", which would suggest a spelling or naming error, but I check that about 20 times already.  Or do have the syntax all buggered for the subreport.

  I want to write the value of the string "sBudget" into a label (named budget) on the subreport.  Can be that hard surely!!??
  :)

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



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

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.





More information about the AccessD mailing list