Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Excel ODBC Connect Failed to SQL Server table.

Status
Not open for further replies.

lordsmusicalbox

Programmer
Dec 13, 2006
8
0
0
US
Programmers,

Here is the situation: The company I work for has several Excel spreadsheets that are linked to our SQL Server 2000 database via an Access file. All has worked for years until now. When I try to Refresh the spreadsheet for Company3, I get an ODBC Connection Failed Error. Basically, the configuration is as follows:

SQL Server: Database has 3 tables for each company which we will call respectively - Company1, Company2, Company3.

AccessFile.mdb contains linked tables to those tables.

Excel Spreadsheets have a Microsoft Query defined using a Microsoft Access ODBC driver. From there, the linked table
Company3 and its appropriate columns are selected. (it is interesting to note the connection seems to work as it will show the column names when I click (+) to expand the table.) However, as soon I try to run the query, it fails with a ODBC Connection Error.

+++ Note +++ If I select a SQL Server ODBC driver instead of a Microsoft Access ODBC driver in the Microsoft Query Wizard, it will work fine. Data gets refreshed with no problem.

Here is what I have tried and observed:

1. Tested the OBDC connection through the ODBC Datasource Adminstrator. Works fine.

2. In Microsoft Query, selected SQL Server 2000 ODBC Driver.
Refreshed the Excel Spreadsheet. Works as mentioned above.
(The current configuration worked previously using an Access ODBC Driver to the linked SQL table.)

3. Created a new Access database with a link to Company3, thinking maybe the mdb file is corrupt. Still didn't work.

4. I created a new Excel spreadsheet and Microsoft Query to
to the linked table. Same results.

5. Compared the datatypes for Company3 against Company1 and Company2. Looked ok.

6. Copied Company3 into a test table. Tried Refreshing the Excel spreadsheet with Access ODBC Driver and the test table (all records). ODBC Connection failed. I even tried deleting all but one record in the table, but I obtained the same results.

7. Tried SQL Profiler to see if could give any useful information why the conncection failed. All I could find that it was testing the connection, but I could find any information why it failed.


9. Turned on ODBC tracing. Here is a snapshot of the log file:

msqry32 580-eb0 ENTER SQLDriverConnectW
HDBC 00892BD0
HWND 00000000
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 3 <SQL_DRIVER_COMPLETE_REQUIRED>

msqry32 580-eb0 EXIT SQLDriverConnectW with return code -1 (SQL_ERROR)
HDBC 00892BD0
HWND 00000000
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 3 <SQL_DRIVER_COMPLETE_REQUIRED>

DIAG [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed (0)

DIAG [IM008] [Microsoft][ODBC SQL Server Driver]Dialog failed (0)

msqry32 580-eb0 ENTER SQLErrorW
HENV 00892B58
HDBC 00892BD0
HSTMT 00000000
WCHAR * 0x0012D488 (NYI)
SDWORD * 0x0012D4D4
WCHAR * 0x02417260
SWORD 4095
SWORD * 0x0012D4C0

msqry32 580-eb0 EXIT SQLErrorW with return code 0 (SQL_SUCCESS)
HENV 00892B58
HDBC 00892BD0
HSTMT 00000000
WCHAR * 0x0012D488 (NYI)
SDWORD * 0x0012D4D4 (0)
WCHAR * 0x02417260 [ 66] "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed"
SWORD 4095
SWORD * 0x0012D4C0 (66)

msqry32 580-eb0 ENTER SQLErrorW
HENV 00892B58
HDBC 00892BD0
HSTMT 00000000
WCHAR * 0x0012D488 (NYI)
SDWORD * 0x0012D4D4
WCHAR * 0x024172F6
SWORD 4020
SWORD * 0x0012D4C0

msqry32 580-eb0 EXIT SQLErrorW with return code 0 (SQL_SUCCESS)
HENV 00892B58
HDBC 00892BD0
HSTMT 00000000
WCHAR * 0x0012D488 (NYI)
SDWORD * 0x0012D4D4 (0)
WCHAR * 0x024172F6 [ 48] "[Microsoft][ODBC SQL Server Driver]Dialog failed"
SWORD 4020
SWORD * 0x0012D4C0 (48)

msqry32 580-eb0 ENTER SQLErrorW
HENV 00892B58
HDBC 00892BD0
HSTMT 00000000
WCHAR * 0x0012D488 (NYI)
SDWORD * 0x0012D4D4
WCHAR * 0x02417368
SWORD 3963
SWORD * 0x0012D4C0

msqry32 580-eb0 EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 00892B58
HDBC 00892BD0
HSTMT 00000000
WCHAR * 0x0012D488 (NYI)
SDWORD * 0x0012D4D4
WCHAR * 0x02417368
SWORD 3963
SWORD * 0x0012D4C0

msqry32 580-eb0 ENTER SQLFreeConnect
HDBC 00892BD0

msqry32 580-eb0 EXIT SQLFreeConnect with return code 0 (SQL_SUCCESS)
HDBC 00892BD0

msqry32 580-eb0 EXIT SQLExecute with return code -1 (SQL_ERROR)
HSTMT 00891B18

DIAG [S1000] [Microsoft][ODBC Microsoft Access Driver] ODBC--connection to 'CompanyDatabase' failed. (-2001)

Not sure what is causing this error. I am leaning that it has to so some thing with the table (Company3) itself. Permissions? Any assistance on issue would be greatly appreciated.:) Thank you.

+++ By the way, does anyone know why sometimes you get a login dialog when you open a datasource and sometimes not?


 



Hi,

Did your MS Access Database get moved OR assigned a different DRIVE on your machine?

Skip,
[sub]
[glasses] [red][/red]
[tongue][/sub]
 
SkipVought,

Thanks for your quick reply [medal]. The Access database is in on a Server mapped to the same location as it should be.

Also, the other tables Company1 and Company2 work fine using a Access ODB Driver. As I mentioned, I did create an Access file on my PC with a link to Company3 on SQL 2000. This did not work.

I have tried selecting different columns in MS Query thinking that there is bad data in one of the records that the Access ODBC Driver fails on, but not using SQL Server Driver. Hmmm???

Any other ideas? Thanks for your quick response.
 



Can you open the Access database and Open those linked tables? If not, the delete and relink.

Skip,
[sub]
[glasses] [red][/red]
[tongue][/sub]
 
SkipVought,

Thanks again for your responses [medal][medal]


Yes, I can open the linked tables. I even tried to deleting the one link table in question and relinking;
still no avail. Probably, something simple or then again maybe not. [smile]

I appreciate your help so far.
 



It seems like it might be the MS Access ODBC driver.

Try going into Start/Settings/Control Panel/Administrative Tools/Data Sources (ODBC)

Look in EACH of the THREE DSN tabs --

delete each existing MS Access driver and Add & Configure only ONE.

Skip,
[sub]
[glasses] [red][/red]
[tongue][/sub]
 
Programmers,

In in effort to solve this problem I have tried to take the SQL from MS Query and run it in Query Analyzer [Q/A].
After I did that, I Refreshed the Excel spreadsheet and it worked.
(So I thought). Excited, I went back to my boss to tell him to give a try. Of course, it did not work.

I went back to my PC and tried it again. Seemed to work fine. Saved and emailed the Excel spreadsheet to my boss to give another try. Same.

Today, I have tried to get the Refresh to work on the Excel spreadsheet with no avail. (Note, all Excel spreadsheets that link to this table Company3 used to work using the Access ODBC Driver, but not now. As noted above, I can create a SQL ODBC connection via the Query Wizard and I can get the data every time.

Interestingly enough, I have observed that when I select MS Access ODBC Driver followed by table Company3, I can't preview the data. However, when I select table Company1 for example, and preview its data, I can go back to table Company3 and return data for any column I preview. From here, I can click next to run the query, but the it fails with the ODBC Connection Error.
Hmm?

Could this be persmissions? Locking problem? I am perplexed.

Thank you
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top