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
Solved

Option Compare Database and Option Explicit

Posted on 2013-01-31
10
752 Views
Last Modified: 2013-02-04
On a number of the modules behind my forms it starts with:
Option Compare Database
Option Explicit

From what I understand this seems to be a good practice for the beginning of all modules with this though I am not 100% sure why. I see Option Explicit as a way to for the module to pick up on any typos in declarations.

I suppose first I would like to get clarification on the purpose of this code and also know if it is worth opening all the modules and inserting this if it is not already there.
0
Comment
Question by:Shawn
  • 6
  • 4
10 Comments
 
LVL 75

Accepted Solution

by:
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 500 total points
ID: 38841196
"and also know if it is worth opening all the modules and inserting this if it is not already there."
Just an FYI ... for a *new* Module ... you can have it automatically add Option Explicit:

Auto add Option Explicit
0
 
LVL 75
ID: 38841206
From Help:
"When Option Explicit appears in a module, you must explicitly declare all variables using the Dim, Private, Public, ReDim, or Static statements. If you attempt to use an undeclared variable name, an error occurs at compile time.

Note   Use Option Explicit to avoid incorrectly typing the name of an existing variable or to avoid confusion in code where the scope of the variable is not clear"


Option Explicit is DEFINITELY best practice.
0
 
LVL 75
ID: 38841217
To not reinvent the wheel ... look up Option Compare in VBA help ... it gives a full explanation of what this means ... basically determining the comparison method to use when string data is compared.
0
Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

 
LVL 1

Author Comment

by:Shawn
ID: 38841261
ok, pretty sure it's clear now.

The wierd thing is as you know I've set up vbWatchdog (amazing btw) and on my login form I added this:
Private Sub Form_Load()
Call ErrEx.Enable("OnError")
End Sub

When opening the db and the login form loads I got the error on load...file not found.
I noticed in this module I did not have..."Option Compare Database and Option Explicit", added it. Closed the db, opened and presto, no more error.

I can't figure out the relation between this error and the option compare/explicit.
0
 
LVL 75
ID: 38841283
Humm ... must have to do with Option Compare. W/O that statement, the default is Option Compare Binary - not Database .... but still.

You might want to run this by Wayne ...
0
 
LVL 1

Author Comment

by:Shawn
ID: 38841417
ok, will do. Bug is gone but bizarre. I'll let you know what he says.
0
 
LVL 75
ID: 38841442
yes ... please do.
thx
0
 
LVL 1

Author Comment

by:Shawn
ID: 38841567
doesn't seem there is a relation but he confirms a suspicion I've had for a while...

Wayne's response: "That error is quite a well known indicator that the module behind the form has somehow become corrupt (specifically, the compiled form of the module).  It's not a problem specific to vbWatchdog though, just a minor problem with the VBA compiler itself that sometimes occurs.

Another way to fix problems like that, is to use the decompile switch in Access, which clears out all the compiled code in your project, ready for re-compilation."

As I have decompiled recently I think I'll opt to redo the form. It's only a small one.
0
 
LVL 75
ID: 38841601
Well, this makes sense.  Corruption is certainly a possibility.

I would have no fear of decompiling again ... just make a back up first.
0
 
LVL 1

Author Comment

by:Shawn
ID: 38852606
decompiled and no error as of yet. thx!

if you have a minute :)
http://www.experts-exchange.com/Microsoft/Development/MS_Access/Q_28017619.html#a38847262
0

Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

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

Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
It’s been over a month into 2017, and there is already a sophisticated Gmail phishing email making it rounds. New techniques and tactics, have given hackers a way to authentically impersonate your contacts.How it Works The attack works by targeti…
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

829 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