Solved

What is the syntax to reference Access report fields in VBA

Posted on 2009-07-06
5
637 Views
Last Modified: 2013-11-28
I am trying to call an Access report field from a Macro but can't seem to get the syntax correct in my VBA script. I have enclosed a copy of my code. This may look a little muddled as I have tried several attempts to get it to work.

Hopefully from the code it should be quite obvious what I am trying to do, update the rag report output to appropriate colours so that I can then export the file. (which conditional formatting doesn't allow.


DoCmd.openreport "rpt90", acViewPreview
 
Dim rpt90 As Report_rpt90
 
If rpt90!RAG_Label = "A" Then
Rrpt90.RAG_Label.Properties("ForeColor") = vbYellow
ElseIf Reports!rpt90.TextBox("R/A/G") = "R" Then
Reports!rpt90.TextBox("R/A/G").ForeColor = vbRed
ElseIf UCase(Reports!rpt90.TextBox("R/A/G")) = "G" Then
Reports!rpt90.TextBox("R/A/G").TextBox.ForeColor = vbGreen
End If
 
End Sub

Open in new window

0
Comment
Question by:JayceW
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 61

Accepted Solution

by:
mbizup earned 125 total points
ID: 24785180
Here are a few comments:

<If rpt90!RAG_Label = "A" Then>

If RAG_Label is a label (not a textbox) then you need to use the Caption property (otherwise the syntax is fine as-is):

If rpt90!RAG_Label.Caption = "A" Then

<Rrpt90.RAG_Label.Properties("ForeColor") = vbYellow>
Is simply:
Rrpt90.RAG_Label.Properties.ForeColor = vbYellow

<ElseIf Reports!rpt90.TextBox("R/A/G") = "R" Then>
is "R/A/G" the name of your textbox?  If so, consider renaming it using standard naming convetions which avoid spaces and special characters, for example txtRAG.

Otherwise, use Brackets and the following syntax:

ElseIf Reports!rpt90.[R/A/G] = "R" Then

The same thing applies to all your other references to R/A/G.
0
 
LVL 61

Assisted Solution

by:mbizup
mbizup earned 125 total points
ID: 24785202
The Reddick VBA Naming conventions are described here:
http://www.xoc.net/standards/rvbanc.asp

Conventions specific to Access are midway down the page.

Most of the regulars here follow these conventions.
0
 

Author Closing Comment

by:JayceW
ID: 31600135
Excellent thanks, Next step I will find out how to loop through the rows on my report to apply the formatting.
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 24785976
JayceW,

I think mbizup has most of this covered, but, ...
What is this line supposed to ber doing?:
    Dim rpt90 As Report_rpt90

AFAICT (Unless you have some special Library loaded), your code will error out right away at this line, with a "User defined type, not defined" error.

Perhaps it should be:
    Dim rpt90 As Report

?

JeffCoachman
0
 

Author Comment

by:JayceW
ID: 24786014
Thanks Jeff, that line, as you suggest was not needed, so I have already removed it from the code
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Omit After Update event 5 46
Access module into  a teradata procedure or db2 procedure 18 85
Menus 6 56
Conditionally trimming using VBA 8 35
Phishing attempts can come in all forms, shapes and sizes. No matter how familiar you think you are with them, always remember to take extra precaution when opening an email with attachments or links.
In earlier versions of Windows (XP and before), you could drag a database to the taskbar, where it would appear as a taskbar icon to open that database.  This article shows how to recreate this functionality in Windows 7 through 10.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question