views:

272

answers:

2

I'd like to include custom .Net controls and .Net forms within MS Access. It's possible but I was wondering if there was any new good articles on that subject.
Over time I've found a few related to the subject the but always found the process a bit cumbersome (see references below).

One of the issue is deployment:
my user's machines have normal user account and I'm wondering if I can just deploy the dlls in the same folder as the application (in the user's Application Data folder) and reference them from code without needing to register them under an Administrator account on that machine.
At the moment the Access application is deployed automatically when a new version is made available on the network.

References

Edit 09DEC2008:
I can't believe that I'm the only one with an interest in this? Has anyone tried to use .Net from within Access, either as a way to improve the UI or to slowly migrate to a full /Net app?

+1  A: 

Just a word of warning - I used to work on an access based system that had evolved way beyond what access was designed for and it was a real chore.

I know nothing of your project, but it might be an idea to consider a move to a more flexible/scalable system to avoid problems down the line.

Ben Aston
It's always a risk: Access applications tends to grow beyond what they were originally supposed to solve.However, there are good reasons for wanting to integrate .Net within Access, one of them being that it is a way to migrate your app to .Net without having to rewrite it all from scratch.
Renaud Bompuis
+1  A: 

The reason you don't see a lot of people doing this (using .Net forms in Access) is two-fold.

  1. MS Access is not a .Net application, therefore you must marshall calls between COM-Interop and the .Net framework which is performance heavy and prone to issues.
  2. MS Access is not a good solution for persisting data. It is better used as a prototyping tool. You are better off using the built-in ADO.Net Dataset class which can be persisted to XML if needed. It is definately a better performance choice as well as being a .Net solution which uses managed memory, multi-threading and such.

    Anything you can do in Access can be done better in a .Net application using ADO.Net.
Eric
Yes, but if you have an existing HUGE Access application (way too huge to "just" do a complete rewrite), then COM-Interop is the best way for a slow migration.I'm very interested in that topic as well (because I have a HUGE A2003 app), but I don't know enough about it yet to answer the question.
haarrrgh
You may be correct in that case. Porting an application is no small task. However, I would advise viewing the COM-Interop solution as a stop-gap measure at best.
Eric