How Do I Prevent Access 2003 Crash when using Digital ID & Library

E

EarlM

I posted this as a suggestion to Microsoft several days ago. Guess that was
a mistake. Here's my problem:

When using a Digital ID in an MDB with a MDB/MDE/MDA library which also has a
Digital ID, MS Access 2003 crashes when I use Tools-Database
Utilities-Compact
Repair Database. Backup Database crashes from both File and Tools. Compact
on Exit also crashes if MDB but MDE exits OK. I'm using a VeriSign VBA
Digital Certificate. Using Low, Medium, or High security has no effect. The
crash appears to occur after the repair/compact or backup completes, but who
can be sure?

BTW: Some documentation on
HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampURL would be nice.
The only documentation I could find was from VeriSign.
 
6

'69 Camaro

Hi, Earl.
I posted this as a suggestion to Microsoft several days ago. Guess that
was
a mistake.

Yup. People who answer newsgroup questions tend to ignore suggestions
directed at Microsoft itself.
The
crash appears to occur after the repair/compact or backup completes, but
who
can be sure?

The crash may not be due to the digital signatures, but due to an uncompiled
code module in the MDB file or library. This is why it's best to use MDE
files as libraries, since they don't become uncompiled. This common cause
of crashes is most clearly evident when the Access 2003 database file at the
end of the chain of libraries has a startup form that runs a VBA procedure.

Ensure that the code is compiled in every MDB and MDA file in the chain of
database files, then compact/repair your database file again to see whether
or not the problem persists.
BTW: Some documentation on
HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampURL would be
nice.

Almost no one has this Windows Registry key, so documentation for so few
people in the world is unlikely to be done on a timely basis. If you'd like
to see such documentation, then do what the rest of us do: write the
documentation yourself and post it to the Web.

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/expert_contributors2.html for contact
info.
 
E

EarlM

Hi 69 Camaro,

The library is an MDE and is the end of the chain. The main MDB compiles
cleanly and converts to an MDE with no problem. If I remove the Digital ID
from the main MDB, the Backup Database, Compact on Exit, and Repair/Compact
work as expected. Just for kicks I'll test with a simple MDB and a do
nothing library and let you know what happens.
 
E

EarlM

Here's my test case: (1) Create a blank database called MyLibrary.MDB; (2)
Create a blank database called MyApp.MDB; (2) Add a module to MyApp.MDB that
consists of the following:

Option Compare Database
Option Explicit
Public Function HelloWorld() As Integer
End Function

Note this is just a do nothing function.
(3) Create a reference from MyApp to MyLibrary.MDB; (4) Verify that Compact
and Repair under Database Tools works; (4) Add a Digital Signature to MyApp;
(5) Exit Access and restart MyApp; (6) The Compact and Repair now fails, as
does Backup Database and Compact on Exit.

If you remove the dummy module Compact works. So I guess we can use Digital
IDs only if we don't have any modules?
 
6

'69 Camaro

Hi, Earl.
So I guess we can use Digital
IDs only if we don't have any modules?

An Access 2003 application with VBA code in modules can be digitally signed
successfully. I've done it myself, although I was using a SelfCert digital
signature, not a VeriSign one.

Did you save the module and compile it before you digitally signed it? Did
you ensure that the file is in Access 2002-2003 database format before
signing it?

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/expert_contributors2.html for contact
info.
 
E

EarlM

Gunny,

Yes, both the 'main' MDB and the library MDB are in 2002-2003 format. The
problem is caused by an Access library (MDB or MDE) and a digital signature
in the MDB that references the library. The test case I constructed had no
forms, no reports, no macros, and no tables; just a module with no executable
code. It's not necessary to actually call any of the procedures in the
library. While it's possible the problem is unique to VeriSign, I suspect it
is not. While I suspect it's a VBA bug, I don't understand why Backup
Database fails as well.

I have a customer with Office 2003 at high security. Several apps I've
developed for them work just fine with my VeriSign digital ID. To avoid the
problem, I import the library into each application. That makes maintenance
a bit messy.

Thanks for your suggestions.

EarlM
 
6

'69 Camaro

Hi, Earl.
While it's possible the problem is unique to VeriSign, I suspect it
is not.

I haven't experienced your problem, but I may have had a different
configuration. I used it on Microsoft Access 2003, with and without SP-1,
with a SelfCert digital certificate, and with Macro Security set to Medium.
The operating system was Windows XP Pro SP-1.
I have a customer with Office 2003 at high security.

It's uncommon to need Access Macro Security set at high. (I'm not saying
that people don't set it at high. I'm saying that they usually don't need
to.) Is your customer aware that Access Macro Security can be set at a
different level than the rest of Office Macro Security?

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/expert_contributors2.html for contact
info.
 
E

EarlM

Gunny:

I'm using Office 2003 with SP2 and Win XP Pro SP2. Both Office and Windows
have the latest updates. I see the problem with low, medium and high
security. I'm not about to tell my US Military customer they should change
their Access security setting from high to medium.

The only clue I've just noticed is that the library LDB is present after the
Access crash.

EarlM
 
6

'69 Camaro

Hi, Earl.
I'm not about to tell my US Military customer they should change
their Access security setting from high to medium.

For many years, the only programming language approved by the DoD for new
software applications was ADA, so that the DoD could reduce programming
maintenance costs by having a standard language. New software applications
could use other languages when ADA wasn't capable of producing the
application, but only if a waiver was applied for and approved, a very time
consuming process.

The only way this policy was changed was because software development
experts repeatedly told the IG's what a detriment this policy was and gave
an estimate of the cost of the policy. If you and everyone else remains
silent on the Access Macro Security setting policy, then the people who make
these decisions will never realize that there's a problem that needs to be
addressed.
The only clue I've just noticed is that the library LDB is present after
the
Access crash.

And the main database LDB file is present, as well. This is expected when
the application crashes and Access hasn't had time to close out the LDB
files before quitting.

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/expert_contributors2.html for contact
info.
 

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