views:

290

answers:

2

My dad built an MS Access Database to do property management. Now he wants to share it with other users over the internet. So I got a hosted SQL Server account at Network Solutions. Now I'm trying to connect the Access 2003 client to a test SQL database using these guidelines from MS:

http://office.microsoft.com/en-us/access/HP052745861033.aspx

However, the error message I get is "Connection Failed because of an error initializing the provider. Server does not exist or access is denied".

I've run the MSComponentChecker to make sure I have MDAC 2.7 or above. Mine is 2.8 SP1 on XP.

+1  A: 

It sounds like either:

(1) your workstation is unable to connect to the SQL server instance because (a) the hostname isn't resolving correctly or (b) a firewall in your network or on your workstation is preventing the outbound connection on the needed port

or

(2) you can connect and have the correct username and password but don't have sufficient privileges to get to the database you're attempting to use. Access gives a different error than what you received if you have a bad username or password ("Login failed for user 'xxxx').

You can check the networking by running "telnet example.com 1433" (whatever hostname and port you were given to use; if you weren't given a port, use 1433) and making sure you can connect (the command window will go to a blank screen). If that works, you can then confirm with your provider that the account you're using has been granted the needed permissions. If you can't telnet to the address you need, check you have the right hostname and the existence of any firewalls.

schinazi
Thanks for the rapid response. I'm running Windows in VMFusion. I can telnet on my Mac Host to the SQL Server IP address on 1433. For some reason, I can't telnet from Windows. I tried another Windows only PC, but still no luck. In both cases, I tried Windows Telnet and Putty. I even disabled the Windows Firewall. Any suggestions?
Chris Beck
On further review, this post implies that the blank screen I got in Windows Telnet and Putty means that I CAN connect on that port.http://stackoverflow.com/questions/435838/sql-server-does-not-exist-or-access-denied-error. Mac telnet gave me a verbose, Trying...Connected sequence.
Chris Beck
After some tweaking, I now get this error message, "[DBNETLIB][ConnectionOpen(Invalid Instance()).]Invalid Connection" which implies that I have in invalid instance name. A little research shows that that MS SQL virtual servers are in the format <hostName>\<instanceName>. Now if Network Solution could just tell me the instanceName
Chris Beck
A: 

After a little more research, I figured it out.
In MS Access 2003, you have to enter the server name in this format:

serverName\instanceName,portNumber

This is a BackSlash, not a ForwardSlash. Thank you MS. Not sure why I had to specify the port number when it's the default.

Special thanks to this post: http://dbaspot.com/forums/sqlserver-server/251219-error-connecting-remote-server.html

It should be noted that you can't do much design work in Access 2003 once you are connected. So I needed to upgrade to 2007 to change the SQL schema. Hopefully, 2003 users will still be able to connect and use the app.

Chris Beck
It's a backslash because it's WINDOWS, which uses baskslashes everywhere in paths. It's ridiculous to complain about something that has been the case since the days of the first version of MS-DOS 1.0. What would be strange would be for a Windows program to use *forward* slashes, in fact.
David-W-Fenton
not trying to start a holy war, but, it looks more like a URI (TCPIP hostname/localpath) than a DOS path and everywhere else (e.g., MSIE) MS follows the RFC on URIs and uses forward slashes.
Chris Beck