Solved

VBA - Controlling Access from Word:  Create .mdb & table without opening Access?

Posted on 2008-06-23
2
324 Views
Last Modified: 2013-11-27
Hi All

Please can you tell me if, using VBA from Word, it is possible to create a new table in an existing Access database without opening Access?  Currently I am using the attached code which, although it works fine, displays a macro security warning when it opens the database.  I know that I can set the macro security in Access to low, or digitally sign the code, but am thinking that, if I can achieve this without actually opening Access, then I won't need to do either.  Also, would Access need to be installed on a user's machine in order for this code to work?  If so, is there a better way to do this so that it doesn't need to be installed?

Any help appreciated as always.


Set objAccess = CreateObject("Access.Application")
With objAccess
    .OpenCurrentDatabase (C:\Test\MyDB.mdb)
    Set dBase = objAccess.CurrentDb
    Set tdf = dbs.CreateTableDef("Contacts")
    Set fld = tdf. _
    CreateField("Surname", DB_Text, 50)
    tdf.Fields.Append fld
    dBase.TableDefs.Append tdf
End with

Open in new window

0
Comment
Question by:MonteDelMar
2 Comments
 
LVL 17

Accepted Solution

by:
Natchiket earned 50 total points
ID: 21845902
you should be able to it as long as DAO is installed on the machine, see
http://accessblog.net/2007/06/how-to-get-reference-to-dbengine.html
You need to be careful of the version, and I'm not sure if DAO is normally installed unless access is, in any case it should be straightforward to copy and register it.

However once you've got a handle on the DBEngine the rest will be plain sailing

Function testDBE()
Dim dbe As Object
Dim dBase As Object

Set dbe = CreateObject("DAO.DBEngine.36")
Set dBase = dbe.OpenDatabase("C:\Test\MyDB.mdb")
'etc as for your code

End Function
0
 

Author Comment

by:MonteDelMar
ID: 21845986
My hero!  Thank you so much for that - works a treat.
0

Featured Post

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

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

Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
Nice table. Huge mess. Maybe this was something you created way back before you figured out tabs or a document you received from someone else. Either way, using the spacebar to separate the columns resulted in a mess. Trying to convert text to t…
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…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

775 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