5

I've seen numerous answers to similar questions like this one. I haven't seen on the web many people have asked the seemingly simple question "How do I connect Access 2007 to an SQL server 2008 database" - but all of the answers describe how you can migrate from access 2007 to an sql server 2008 database, or they describe how to connect access 2007 to an sql server 2005 database. I can't find any simple solution to my problem (and probably this is a problem for many others). Here is the question (sorry for the over emphasis):

How do I connect to an sql server 2008 database (and I mean 2008, not 2005 :) ) from access 2007? Apologies again for the over emphasis, but this very simple question, and what I thought should be a very simple task seems, yes, ... impossible! I tried running sql server browser, enabling pipes, TCP etc, but it seems that with 2008 SQLEXPRESS just isn't recognised! Please can someone help with this. Peter

CJM
  • 11,908
  • 20
  • 77
  • 115
  • Please say exactly what you tried, and exactly what the result was. "wasn't recognized" isn't much detail. – John Saunders Mar 11 '09 at 16:07
  • Do you have the SQL 2008 client tools installed on the computer that is running access? – David Mar 11 '09 at 16:20
  • I've added access-data-project to the tags to pull in interested parties in future. This is a common question it appears. – CJM Mar 11 '09 at 16:34
  • I don't see anything at all about ADP in the original question. On the other hand, it doesn't mention ODBC, either. – David-W-Fenton Mar 27 '11 at 20:14

7 Answers7

3

Guys - you really should check whether this works before firing off random answers. It takes all of about a minute to run up an Access project and discover that it doesn't actually connect to SQL 2008 easily.

There are plenty of reasons to use projects instead of ODBC, but here's a few:

  • Existence of DSN on deployment machines cannot be guaranteed
  • Network traffic - does not do pass-through queries by default
  • Poor support for stored procedures

Assuming that appropriate protocols have been enabled, the solution is to go to the Advanced tab of the data link dialog and delete the value in the Network Library setting.

2

There should be no issue with connecting Access 2007 to a SQL Server 2008 database.

You need to make sure that:

  1. Your SQL Server 2008 database is accessible, ie that it isn't locked down and that it is accessible to the machine(s) where you will have your Access 2007 application.
    A few things to check:

    • In SQL Server 2008, go to Properties > Connections > Check "Allow remote connections to this server".
    • Enable TCP/IP in the Configuration Manager.
    • Make sure the firewall allows incoming connections on TCP port 1433.
    • You can also start the SQL Server Browser Service so your SQL Server instance can be found.
  2. You have created an ODBC DSN (a System DSN) using Windows ODBC administration tool. If you're running on a 64 bit system, make sure that you're using the 32 bit version of ODBC to create your DSN, otherwise it will never be visible to Access which is a 32 bits application.

  3. Once you have created the ODBC link (and tested it works) on the machine where Access is installed, you can just link the tables: In Access 2007, in the External Data ribbon tab > import > More > ODBC Database.
    Then select the DSN you create for your SQL Server 2008 database and chose which tables you want to link.

Renaud Bompuis
  • 16,596
  • 4
  • 56
  • 86
  • Perhaps if you want to access SQL tables in an existing Access DB, this would be suitable, but the OP *appears* to be simply asking to access SQL data via Access, in which case an ADP is more efficient. – CJM Mar 12 '09 at 15:28
  • 1
    ADPs are now deprecated by MS. With the exception of reporting, they now say that MDB/ACCDB with ODBC will be faster. It is also a lot less buggy than ADPs, which have been a moving target ever since they were developed. – David-W-Fenton Mar 14 '09 at 23:20
1

Ray, The reason you are not seeing your database is because of permissions. You need to grant the user name you are using access to your database. In MS SQL Server Management Studio expand the database you created and go to the security tab to configure the user name you are using. Either add it or create a new user

Hope this will help....

Gerhard
  • 11
  • 2
1

When going through the link or import wizard in Access choose Sql Native Client 10.0. When asked which server you wanrt to connect to, the server will not show in the combo box. If you type the correct name of the server and hit next, you will go to the authentication screen. Use windows authentication if that's what you choose and hit next. On the next screen, check the Change default database box and your server databases should appear; then you know that you have a good connection. Remember you have to type the correct server name, which should be MACHINE NAME\SERVER INSTANCE NAME.

0

Just had the same problem but found a link that suggested referring to the server in the Data Link Properites Dialog as .\SQLEXPRESS - It would seem the [.] before the instance name made all the difference.

That did the trick for me - I got connected but then access complained that the version combo - Access 2007 & SQL 2008 did not support managing DB objects form Access.

Message was as follows:

This version of Microsoft Access does not support design changes with the version of Microsoft SQL Server to which your Access project is connected. See the Microsoft Office Update Web site for the latest information and downloads. Your design changes will not be saved.

Artemix
  • 2,113
  • 2
  • 23
  • 34
Fran
  • 1
0

One solution (though this may not apply to SQL Express) is to use an Access Data Project, although in 2007 it's not that intuitive how to do this.

Create a new (blank) DB, but rather than accept the default .accdb extension, change it to .adp. You can also select Access Data Project (.adp) format if you use the browse dialog to set the file location.

Once created, you will be asked if you want to link to an SQL DB... the rest is pretty intuitive, but ask for further details if you need to.

CJM
  • 11,908
  • 20
  • 77
  • 115
  • You're buying yourself a ton of problems by doing this. There's a lot more documentation on using ODBC linked tables with an MDB/ACCDB, and that's actually been MS's recommended architecture for using Access as front end to SQL Server for several years now. – David-W-Fenton Mar 14 '09 at 23:19
  • The OP wanted access to SQL via Access; an ADP is the quickest and simplest way of achieving that. There pro's and con's for both ADP and ODBC, but nothing can be inferred from the OP's as to which would be better. And there will be no 'ton of problems' either. – CJM Mar 16 '09 at 12:59
0

SQL Express 2008 + Access 2007 both on a workstation. Connect to Adventureworks SQL db from Access 2007. Here we go...

  • Open Access 2007
  • click on the windows or top left icon/ new/ click on blank database/ put in file name/
  • click on the browse icon/ save as type/ Microsoft Office Access Projects (*.adp)/ click OK/
  • click Create/ on the question do you want to connect to an existing SQL server database?
  • click Yes/ you can use the dropdown box to select your computer but put in it like this... (eg if your computer name is "laptop") put in... laptop/SQLEXPRESS
  • Click on user windows NT integrated security/ hit the down arrow on step 3. Select the database on the server: and it should show the adventureworks database. click test if you like or just OK.
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343