Solved

Option Compare Database and Option Explicit

Posted on 2013-01-31
10
770 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
[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
  • 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
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 
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

Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

Question has a verified solution.

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

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
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…

726 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