How to pass multipe items in OpenArgs event of an ACCESS 2010 report

I pass the name of the report in its caption using the Open Args.  But, I need to pass two items in open args.  One to dynamically change the report title and an argument to change the sort order.  Right now, I pass the caption, but how to I add a second argument?

    DoCmd.OpenReport strReportName, acViewReport, , strFilter, , strReportCaption

Private Sub Report_Open(Cancel As Integer)
    Me.lblTitle.Caption = Me.OpenArgs
   
End Sub

Need to add in the Report_Open event
     Me.OrderBy = Me.OpenArgs
     Me.OrderByOn = True
Will post as another question as you did answer the one I asked.

Sandra
Sandra SmithRetiredAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jim Dettman (Microsoft MVP/ EE MVE)President / OwnerCommented:
The simplest is to choose a delimiter, say a vertical pipe, and do:

<caption>|<other value>|<othervalue>

then use Split() in the receiving object to split the string into an array.

Jim.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Sandra SmithRetiredAuthor Commented:
Yes, the looks familiar.  I knew I had done this in one of my other databases, but simply could not remember which one and how.  They you for jogging my memory and I know this approach does work, I just could not remember it!

Sandra
0
Jim Dettman (Microsoft MVP/ EE MVE)President / OwnerCommented:
and just as an FYI, you can come up with all kinds of schemes.  For example:

"ADD;SETCTRLTODATA=txtCustomerID:" & NewData & ";EXITTOFORM=frmLoad"

This is a string I pass to a form in OpenArgs.   I'm using the semi-colon as a delimiter.

First argument is the mode the form should open in.   Second specifies that the following control/value pairs should be set, and the third is the form that focus should be returned to when closed.

Whatever you do, don't rely on position (i.e. 3rd argument in is this xxxx), but rather use a 'tag' (i.e. 'SETCTRLTODATA=') to tell you what the argument is.  

So in your case, maybe:

"SETCAPTION=<value>|SORTORDER=<value>"

Then your report open can be standardized looking for each thing that needs to be done as you should do it:

1. Do I need to set the caption?  Look for the tag.  not found, do nothing.  Found, set.
2. Do I need to set the sort order? Look for the tag....

or you can loop through the array after a Split() and act on each tag in turn.

Jim.
0
Sandra SmithRetiredAuthor Commented:
Thank you for the follow up and I learned a long time ago not to rely on position!  When I inherited this database, there was a report for every scenario, the same report, but now I just have one to worry about and pass the needed filter and arguments.  Easier to maintain the one now than 15 copies.  I use the pipe as I can see it better, but important thing is it does get the job done.

Sandra
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.