No ODBC Drivers available for Excel or Access in Windows 7 ?!

Anonymous
2009-10-08T06:27:39+00:00

No ODBC Drivers available for Excel or Access! Even after a complete new installation of Windows 7 and Office 2003 professional or Office 2007 professional on another computer. When I want to add a driver in the ODBC Data Source Administrator, the response is: "To install new drivers use the driver's setup program!"

In the ODBC Data Source Administrators Windows only the SQL-Native Client and SQL-Server, from Microsoft shows to be installed!

How to install these ODBC Drivers or how to go about it? Thanks a lot for your responses!

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
Answer accepted by question author
Anonymous
2010-02-16T06:07:57+00:00

I think the answer is already here in this thread (but it's not, imo, the post marked as "Answer").

You need to use Windows 7 32-bit subsystem.  In particular, you need to use the ODBC control panel here:

c:\windows\sysWOW64\odbcad32.exe

At least in my case, that version (the 32 bit version) of the cpl did contain the Access (2003 in my case) ODBC driver. 

The 64 bit DLLs etc are in c:\windows\system32.  The 32 bit subsystem (so you can still run 32 bit apps on 64 bit Windows 7) is in c:\windows\sysWOW64.

I mean, that's very intuitive - right?

But I didn't post anything here until I could confirm that the 32 bit ODBC connection to Access was working (giving me the db's data).

Well what I'm trying to get to work goes through a bunch more complications: https://sourceforge.net/projects/mondrian/. Tomcat, mondrian, edits to config files to point things in the right direction, etc.

But given that it all now works, I'd say that the ODBC connection to the Access db must be working (I'm getting its data in the web interface to Mondrian).  Mondrian is an open-source (sourceforge) OLAP project.  It's also bundled with other BI stuff at: www.pentaho.com

The default data store for Mondrian on Windows is Access.

So the key is to use c:\windows\sysWOW64\odbcad32.exe

Was this answer helpful?

90+ people found this answer helpful.
0 comments No comments
Answer accepted by question author
Anonymous
2012-07-03T21:51:52+00:00

The following KB article provides additional information on how to create DSNs that make use of Office ODBC drivers on 64 bit versions of Windows.

2721825          Unable to create DSN for Microsoft Office System Driver on 64-bit versions of Windows

http://support.microsoft.com/kb/2721825/EN-US

Hopefully this helps.

Best Regards,

Nathan O.

Microsoft Online Community Support

Was this answer helpful?

30+ people found this answer helpful.
0 comments No comments

83 additional answers

Sort by: Oldest
  1. Anonymous
    2010-05-29T13:42:04+00:00

    While the drivers are there, it doesn't get you up and running.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2010-05-31T15:36:13+00:00

    Hello! I had the same problem!

    I'm using Win7 64bit. I was also using a JDK 64bit.... however, JDK 64 bit cannot work with dll developed for 32bit applications (like the ODBC drivers provided with Win7).

    Therefore, it has been sufficient to use the standard JDK x86 for using the DB correctly (e.g., by using the path of the DB). This is an example code:

                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

                Connection con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver"+

                        " (*.mdb)};DBQ=C:\Users\MYNAME\PROJECT\DB\DBFILENAME.mdb");

    Hey, I just forgot to mention that I downloaded and runned mdac_typ.exe (MDAC 2.8) from http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en as suggested by jgareauI dunno if it helped, but I did it!

    Bye

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2010-06-03T09:48:47+00:00

    I have an even deeper question. I have an application that checks for the DSN when the login form loads if it doesn't exist it creates a SYSTEM DSN. On windows 7 64bit it doesn't work to create a SYSTEM DSN. I changed the code out of curiosity and it will create a USER DSN. Here is my code: ODBC_ADD_DSN has a value of 1 as a constant and it creates a USER DSN. I have another constant that has a value of 4 and it creates a SYSTEM DSN. I thought the problem was in the way I create the connection but it works for a USER DSN. If anybody knows why this is happening it would be great. CODE BELOW

    Sub MakeDSN(ByVal sDSN As String, ByVal sDriver As String, ByVal sDBFile As String, ByVal lAction As Long)

        Dim sAttributes As String

        Dim sDBQ As String

        Dim lngRet As Long

        Dim hKey As Long

        Dim regValue As String

        Dim valueType As Long

        ' query the Registry to check whether the DSN is already installed

        ' open the key

        If RegOpenKeyEx(HKEY_CURRENT_USER, "Software\ODBC\ODBC.INI" & sDSN, 0, KEY_ALL_ACCESS, hKey) = 0 Then

            ' zero means no error => Retrieve value of "DBQ" key

            regValue = String$(1024, 0)

                   ' Allocate Variable Space

            If RegQueryValueEx(hKey, "DBQ", 0, valueType, regValue, Len(regValue)) = 0 Then

                ' zero means OK, so we can retrieve the value

                If valueType = REG_SZ Then

                    sDBQ = Left$(regValue, InStr(regValue, vbNullChar) - 1)

                End If

            End If

            ' close the key

            RegCloseKey hKey

        End If

        ' Perform the action only if we're adding a DSN that doesn't exist

        ' or removing and existing DSN

        If (sDBQ = "" And lAction = ODBC_ADD_DSN) Or (sDBQ = "" And lAction = ODBC_ADD_SYS_DSN) Or (sDBQ <> "" And lAction = ODBC_REMOVE_DSN) Then

          ' check that the file actually exists

            If Len(Dir$(sDBFile)) = 0 Then

                MsgBox "Database file doesn't exist!", vbOKOnly + vbCritical

                Exit Sub

            End If

            sAttributes = "DSN=" & sDSN & vbNullChar & "DBQ=" & sDBFile & vbNullChar

            lngRet = SQLConfigDataSource(0&, lAction, sDriver, sAttributes)

        End If

    End Sub

    Private Sub Form_Load()

        Dim sDriver As String

        Dim sName As String

        Dim sFile As String

        sDriver = "Microsoft Access Driver (*.mdb)"

        sName = "BuyHere"

        sFile = "C:\Data\data.mdb"

        MakeDSN sName, sDriver, sFile, ODBC_ADD_DSN

    End Sub

    Was this answer helpful?

    0 comments No comments