Public Variables

P

Pierre de Beer

Hi

I store the company name that is displayed on all my forms in a table. I use
DLookup("[Company Name]", " Company Details") to retrieve the company name
from this table. Is it not better to retrieve the company name at startup
and store it to a global variable?

If the variable option is the best, how do I declare a global variable in
Access? I declare the variable in a module but can not get a value assigned
to it.

As you can see I am new at this.

Kind Regards

Pierre
 
T

tina

you would declare the variable in a standard module (not a form or report
module), and put it at the top of the module, directly after the Option
Compare and Option Explicit statements.

you would have to set the value of the variable in code. you can do this in
any event procedure. suggest you use the Open or Load event of the first
form that opens when the database is opened. or you can write a public
function in a standard module to set the value of the variable, and run the
function from an AutoExec macro, which will automatically run when the
database opens.

on each form's Load event, you would add code to set the value of the
textbox control that displays the company name, as

Me!TextboxName = GlobalVariableName

as for which one is better: unless you have a whole lot of records in your
CompanyDetails table and/or are experiencing a noticeable lag in getting the
company name control populated when the form opens, i probably wouldn't
bother with all of the above, and would just use the DLookUp().

hth
 
L

Larry Daugherty

Your use of the value in a table is actually the preferred method.

Global variables are somewhat risky. In the example you give probably
not much risk at all. The risk is that a global variable can be
modified anywhere in your code. From the depths of your code you
don't always know how program execution got to the current line. Many
a frustrating hour and day has been frittered away by people chasing
problems caused by global variables. Somewhere else in your code the
variable is assumed to have a value that reflects a certain state of
affairs. Other code was written with other assumptions.

The consequences are right up there with failing to require definition
of variables before their use. In those cases, a typing error will
quietly create a new variable for you.

HTH
 
R

Randy Harris

Pierre de Beer said:
Hi

I store the company name that is displayed on all my forms in a table. I use
DLookup("[Company Name]", " Company Details") to retrieve the company name
from this table. Is it not better to retrieve the company name at startup
and store it to a global variable?

If the variable option is the best, how do I declare a global variable in
Access? I declare the variable in a module but can not get a value assigned
to it.

As you can see I am new at this.

Kind Regards

Pierre

From what you describe, that sounds like a good candidate for a public
constant.

At the top of a module (not a form or report module):

Public Const CompanyName As String = "My Company Name"

I use this technique for version information that I want to appear on all of
my forms. Just change it in one place when necessary.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top