Versions of access

B

Bruce

I've written a database using Access 2002, but with the file format
set to 2000. When I try to use it on Access 2000, however, the
"openargs" parameter in the openreport function generates an error.

Does anyone know how to circumvent this?

Cheers,
Bruce Walker
 
B

Brendan Reynolds

While the two versions use the same file format by default, if you want the
app to work with the older version, you have to avoid using any new features
that were not supported in the older version. And the OpenArgs argument of
the OpenReport method is a new feature in Access 2002. You can use a global
variable, or a (hidden if necessary) text box on an open form. Set the
variable or the value of the text box in the code that opens the report, and
read it in the Open event of the report.

--
Brendan Reynolds (MVP)
http://brenreyn.blogspot.com

The spammers and script-kiddies have succeeded in making it impossible for
me to use a real e-mail address in public newsgroups. E-mail replies to
this post will be deleted without being read. Any e-mail claiming to be
from brenreyn at indigo dot ie that is not digitally signed by me with a
GlobalSign digital certificate is a forgery and should be deleted without
being read. Follow-up questions should in general be posted to the
newsgroup, but if you have a good reason to send me e-mail, you'll find
a useable e-mail address at the URL above.
 
P

Paul Overway

Actually, you can. You just need a condition for use of the new feature,
i.e.,

If Syscmd(7) = "10.0" Then
DoNewMethod
Else
DoOldMethod
End If
 
B

Brendan Reynolds

Try it, Paul. You'll get a compile error when you attempt to run it in
Access 2000.

It could be done with conditional compilation ...

#Const OPENARGS = False

Public Sub TestSub()

#If OPENARGS Then
DoCmd.OpenReport "rptTest", acViewPreview, , , "A Test"
#Else
DoCmd.OpenReport "rptTest", acViewPreview
#End If

End Sub

But as you would have to write the code to do it the other way in the
earlier version, it would generally be simpler to go ahead and use that code
in the later version as well.

--
Brendan Reynolds (MVP)
http://brenreyn.blogspot.com

The spammers and script-kiddies have succeeded in making it impossible for
me to use a real e-mail address in public newsgroups. E-mail replies to
this post will be deleted without being read. Any e-mail claiming to be
from brenreyn at indigo dot ie that is not digitally signed by me with a
GlobalSign digital certificate is a forgery and should be deleted without
being read. Follow-up questions should in general be posted to the
newsgroup, but if you have a good reason to send me e-mail, you'll find
a useable e-mail address at the URL above.
 
P

Paul Overway

Yeah...wasn't thinking about the compile error on this particular method.
I've used SysCmd(7) to conditionally execute other code based on version,
but obviously hadn't thought this all the way through. Nevertheless, this
should work (air code)...

Dim x As Variant

If SysCmd(7) = "10.0" Then
Set x = Application
x.DoCmd.OpenReport "rptTest", acViewPreview, , , "A Test"
Else
DoCmd.OpenReport "rptTest", acViewPreview
End If
 
Top