To open a second DB - Access 2013.

Turned off then back on: no problem!!! The solution is clear (almost) and I will try it later. A crowd is coming in for playing cards. Anyway, I will let you know...

Many thanks, JLC
 
You can use the proceeds from today's game towards the £100 "you" proposed ;)

Sure, I'll await your feedback!
 
I am spending too much time on my computer: totally forgot it's not card evening! It's hockey time ( Chicago and Tampa tied 1,1). It's totally crazy hockey - goals scored galore and Tampa goalie left the last game with 'no injury' reported but won anyway. Tonight its in Chicago: hoooooo.

P.S. - Don't you sleep???

Good night, JLC.
 
Unfortunately hockey is one of those games I don't understand. It's not as big a sport here as it is over there.

Oh I do, it's only 11pm ;)
 
Hi vbaInet!

I think I found why automation fails: none of Office components are defined in
HKEY_CLASSES_ROOT\CLSID keys!!!!

As usual, every one knows that keys must be present (path should be checked) but no one explains its structure. Do you know how they can be created?

Good day, JLC.
 
Hi vbaInet!

It says:"Examine the LocalServer32 key of the CLSID key for the path. ". Alas this key doesn't exist on my PC.

Good day, JLC.
 
Hmm, got PM and now just trying to figure out what's going on...

Not sure what this means...
Since I switched to Office 365. I lost automation with Access 2013.

So, are you creating an Access Web App or a Desktop Client? Is this a brand new database you started with or are you opening one created in an earlier version in 2013? Are you just trying to open a second database from the first database because you can just use Application.FollowHyperlink and call it a day.
 
Oops, forgot to ask... Is this 32bit or 64 bit Access?
 
64 bit, desktop app. Before I was using 2007. The app was switching between components; under 2013 automation errors prevented this. As I said, the problem is MS: Office 365 was improperly activated.

Thanks, JLC.
 
Last edited:
Out of my wheel house as I know 64bit has issues not present under the 32bit version and not having it loaded I can't duplicate to reproduce.
 
I am really sick and tired of this goddamn problem: I did not ask you to reproduce anything: I want to now the structure of a register key!!! I have spent 3 days with people who know things that they might know if I give then my height and weight. If you don't know what is a register key, why don't you say so...
One and only one question: what is the structure of a key in CLSID?????????
 
Reproducing would enable me to determine the CLSID key thereby giving you the answer you require. (As I'm thinking this key would be different based on the research I've done.) I would suggest re-asking your question noting in the subject line that this is for 64bit.

I will now move along never to bother you again...
 
Perhaps JLC has mistaken you for a Microsoft support representative. Well in a way you're a representative of MS but in a different capacity. He asked whether I knew someone in MS who could help and I suggested that he could PM either yourself or pbaldy to see if either of you knew someone in MS who might be able to give a definite answer on this issue, so maybe he mistook that to mean that you are the MS Support Rep. Only speculating anyway!

Anyway, I've attached screenshots of my registry with those keys so that you can see the structure. I run a 32 bit Access but you can try it out since it points to the executable.

Default: C:\PROGRA~2\MICROS~1\Office14\MSACCESS.EXE
LocalServer32: ykG^V5!!!!!!!!!MKKSkACCESSFiles>2AZ~`O7qC?OW,feZycxh

If it doesn't work, then you might as well restore Windows to a point where things were stable.
 

Attachments

  • Reg_CSID.png
    Reg_CSID.png
    35.4 KB · Views: 100
Hi vbaInet!

You are right all the way. Here it's quite early: I will have a look to you registry screenshot later this morning...
This automation issue makes me mad!!!

Good day, JLC.

SOLVED!!!

8:30 AM
Sipping my 1st coffee, I started random research to solve my issue. I found (plain luck) the following tutorial:
http://www.everythingaccess.com/tut...h-version-of-Access-to-use-for-OLE-automation

and there, I found the vba solution: Shell and GetObject!!!
It works fine but xDB must be closed first then App.Application.Quit closes the msaccess instance.

If you want the vba of the solution just say so.

P.S. - How can I mark this issue as solved?

Have a gooooood day, a finally happy JLC.
 
Last edited:
Is this your morning routine now that you're retired JLC :p

We're aware of Shell(), ShellExecute(), Wscript's Run() and any other variations out there, but you shouldn't need to specify the executable for this to work. CreateObject() still doesn't work. If you're happy with working this way then that's fine, otherwise I would suggest that you get to the bottom of it by looking into the registry, environment variables and/or doing a restore.

If you wish to mark this thread, I think there's a menu at the top of your post (or your first post) that should allow you mark this thread.
 
Hi vbaInet!

No it's not my morning routine but this automation issue became an obsession: I am finalizing a procedure to deliver a highly secure (I really mean it) Access app to a customer: no links to data file and no queries, BE super protected (can't be opened), unreadable modules, etc.!!! Someone, in a USA forum laughed at me, saying it's impossible to secure Access. Oh yes? if you want me do something challenge me!!!

You see, I went into so many strange situations that I learned to balance elegance and efficiency: we say in French "Le résultat fait foi de tout" (The result is proof of all). So, in complicated situations, I go for the efficient solution and leave for spare time the elegance...

Have a good night, JLC.
 
Hi vbaInet!

No it's not my morning routine but this automation issue became an obsession: I am finalizing a procedure to deliver a highly secure (I really mean it) Access app to a customer: no links to data file and no queries, BE super protected (can't be opened), unreadable modules, etc.!!! Someone, in a USA forum laughed at me, saying it's impossible to secure Access. Oh yes? if you want me do something challenge me!!!
Send it to me and I'll break it and send the parts back to you. :D

I see that you were under a tight deadline that's why. But remember though JLC that the path to the executable on your client's machine may not be the same as yours so remember to use:
Code:
Application.SysCmd(acSysCmdAccessDir)
 
Hello vbaInet!

Holly shmit I will put 100 $CDN on this one!!! But wait a sec: you will have to define the time you need to break it (the bet will depend on it...).

To get path, etc. I use this:
Code:
    str = CurrentDb.Name
    P = InStrRev(str, "\")
    PathBE = Mid(str, 1, P)
    strBE = "SecurityBE.accdb"

of course BE and FE will not always be in the same folder! If BE is on a server, then the path should be explicitly specified.

One thing: it is not possible to send attached document in a PM: so sending a test case might be difficult.

By, JLC.
 
Hello vbaInet!

Holly shmit I will put 100 $CDN on this one!!! But wait a sec: you will have to define the time you need to break it (the bet will depend on it...).
We have to make it more interesting and say £1000 :)

To get path, etc. I use this:
Code:
    str = CurrentDb.Name
    P = InStrRev(str, "\")
    PathBE = Mid(str, 1, P)
    strBE = "SecurityBE.accdb"
You can use:
Code:
CurrentProject.FullName  <--- full path to the FE (includes the name)
CurrentProject.Path  <--- just the path
But the path I was talking about is the path to MSAccess.exe, if you hard code it, it may not work on your client's machine. That's why I gave you the code in the last post which gets the path to MSAccess.exe
 

Users who are viewing this thread

Back
Top Bottom