none
Access 2010 - Windows 7 - ODBC 32 bit / /64 bit - specified DSN contains an architecture mismatch / logged on with a non-Administrator account

    Question

  • Ok - have been round the bit on this one.  First off:  I am aware of the different ODBCAD32.exe files in the different directories and have used both to successfully create and test DSN's.  My issue is once I get inside Access 2010 and try to establish the link.

    Step 1 - I use the WOW64 (32 bit version) directory odbcad32.exe to create a pervasive 8.1 DSN to my database.  Tests correctly, works fine - but I can only see user dsn's from both 32 and 64.

    Step 2 - go into Access 2010, attempt to connect to the DSN by linking a table to the machine data soruce.  The DSN - ambiguously named THISDNS_32 - when selected yields the error

    ODBC --call failed [Microsoft][ODBC Driver Manager] The specified DNS contains an architecture mismatch between the Driver and the Application. 

    I hit OK thinking I will just re-set up a new DSN using Access instead.

    I go to create the new MACHINE data source and it yields

    You are logged on with non-Administrative priveleges.  System dSN's could not be created or modified. 

    Questions:  1.) My account is part of the Administrators group; however it is a domain account in the administrators group at the local machine level.  Thoughts on why it would say I am not logged in as an Administrator?

    Clicking Ok and attempting to set up a USER DSN does not show the 32 bit Pervasive Client as I believe we are now using the Access-called 64 bit version of ODBCAD32.exe.

     

    Any assistance would be greatly appreciated.

     

    Monday, January 17, 2011 8:59 PM

Answers

  • ah that is the problem then.

    you are trying to inter-mix a 64-bit app with a 32-bit driver.

    That's a non-starter, I'm afraid.

    You will need to either: drop back to 32-bit office to work with that driver, or convert/upgrade that driver to a 64-bit driver version (if Pervasive even has any - I haven't needed to look for Pervasive drivers in quite a while, so I'm out of touch on the details of where they are in that regard).

    i just took a quick look on their site, and apprently there is something available:

    ODBC 3.5
    DI version:Pre-9.2
    Connectivity Type:Core Connector
    Connected Via:
    Source/Target Type:Source and Target
    Platform:Windows 32, Windows 64, Linux 32, Linux 64, Solaris 64, AIX 64

     

    HTH


    Mark Burns, MCAD, MCP
    Sr. Microsoft Access Analyst/Developer
    Manager LinkedIn.Com community: Professional Microsoft Access Developers Network (PMADN)
    • Marked as answer by stingaway Monday, January 17, 2011 9:50 PM
    Monday, January 17, 2011 9:37 PM

All replies

  •  

    The only piece of information I see missing from this puzzle is this:

    What version of Office/Access are you running 2010 32-bit or 2010 64-bit?

    Then we should also ask about the version of the Pervasive driver you are running...is it the 32-bit Pervasive ODBC driver, or a 64-bit version?


    Mark Burns, MCAD, MCP
    Sr. Microsoft Access Analyst/Developer
    Manager LinkedIn.Com community: Professional Microsoft Access Developers Network (PMADN)

    Monday, January 17, 2011 9:21 PM
  • It's Office Professional Plus 2010 64-bit.  Pervasive is the 8.1 32 bit ODBC driver.
    Monday, January 17, 2011 9:25 PM
  • ah that is the problem then.

    you are trying to inter-mix a 64-bit app with a 32-bit driver.

    That's a non-starter, I'm afraid.

    You will need to either: drop back to 32-bit office to work with that driver, or convert/upgrade that driver to a 64-bit driver version (if Pervasive even has any - I haven't needed to look for Pervasive drivers in quite a while, so I'm out of touch on the details of where they are in that regard).

    i just took a quick look on their site, and apprently there is something available:

    ODBC 3.5
    DI version:Pre-9.2
    Connectivity Type:Core Connector
    Connected Via:
    Source/Target Type:Source and Target
    Platform:Windows 32, Windows 64, Linux 32, Linux 64, Solaris 64, AIX 64

     

    HTH


    Mark Burns, MCAD, MCP
    Sr. Microsoft Access Analyst/Developer
    Manager LinkedIn.Com community: Professional Microsoft Access Developers Network (PMADN)
    • Marked as answer by stingaway Monday, January 17, 2011 9:50 PM
    Monday, January 17, 2011 9:37 PM
  • I had a bad feeling that was going to be the case.  Answers how I had it working under Vista 64 though - was still using 07 32 bit Office... (sigh).  Thanks for the heads up, will try to install Access 07 32 bit and go from there...

     

     

    Monday, January 17, 2011 9:50 PM
  • If it's any consolation, be aware that Microsoft actually recommends the 32 bit version of Access over the 64 bit version, regardless of what OS you're using.

    From http://office.microsoft.com/en-ca/word-help/choose-the-32-bit-or-64-bit-version-of-microsoft-office-HA010369476.aspx?CTT=1:

    "Important    The 32-bit version of Office 2010 is the recommended option for most people, because it prevents potential compatibility issues with other 32-bit applications, specifically third-party add-ins that are available only for 32-bit operating systems."


    Doug Steele, Microsoft Access MVP
    http://www.AccessMVP.com/djsteele (no e-mails, please!)
    Co-author Access Solutions — Tips, Tricks, and Secrets from Microsoft Access MVPs (ISBN 978-0-470-59168-0)
    Monday, January 17, 2011 9:58 PM
  • You might be an Administrator, but that doesn't mean you're running with Administrative permissions. Try running odbcad32 using Run As administrator. You should then be able to create a System DSN.
     

    Ok - have been round the bit on this one.  First off:  I am aware of the different ODBCAD32.exe files in the different directories and have used both to successfully create and test DSN's.  My issue is once I get inside Access 2010 and try to establish the link.

    Step 1 - I use the WOW64 (32 bit version) directory odbcad32.exe to create a pervasive 8.1 DSN to my database.  Tests correctly, works fine - but I can only see user dsn's from both 32 and 64.

    Step 2 - go into Access 2010, attempt to connect to the DSN by linking a table to the machine data soruce.  The DSN - ambiguously named THISDNS_32 - when selected yields the error

    ODBC --call failed [Microsoft][ODBC Driver Manager] The specified DNS contains an architecture mismatch between the Driver and the Application. 

    I hit OK thinking I will just re-set up a new DSN using Access instead.

    I go to create the new MACHINE data source and it yields

    You are logged on with non-Administrative priveleges.  System dSN's could not be created or modified. 

    Questions:  1.) My account is part of the Administrators group; however it is a domain account in the administrators group at the local machine level.  Thoughts on why it would say I am not logged in as an Administrator?

    Clicking Ok and attempting to set up a USER DSN does not show the 32 bit Pervasive Client as I believe we are now using the Access-called 64 bit version of ODBCAD32.exe.

     

    Any assistance would be greatly appreciated.

     


    Regards, Graham R Seach Sydney, Australia
    Tuesday, January 18, 2011 6:52 AM
  • Connecting to MS Access on Windows 64-Bit

     

    Folks, like many of you I struggled with the deprecation of JET 4.0 in Windows Vista/7 on 64-bit machines. A process running simply for years, ported to a faster machine simply stopped working with the error: 'Microsoft.Jet.OLEDB.4.0' provider is not registered. I was annoyed at the lack of notice from MS and lack of clear instructions. After tinkering I found the solution and I’ll post it first directly, with details after, for the benefit of those just as frustrated as I. The situation I describe is for VB, but may work in other code/environments.

     

    1. Download and run AccessDatabaseEngine_x64.exe

     

    (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en)

     

    2. Change the connection string in your code to:

     

    Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ= <-db name and path here

     

    There is no need to upgrade/replace JET or emulate 32-bit connections. You don’t have to buy a new version of MS Office/Access, Access does not even need to be installed on the machine, you just need the driver. No need to convert to SQL Express. My legacy code is now running flawlessly on Windows 7 quad 64-bit machine without any office apps installed.

     

    When I first encountered the issue I tried to replace/upgrade JET but it was not available for 64-Bit and there were no plans to create it. Apparently, there is now a version released for 64-bit windows but you don’t need it. The MS Access Driver exists on older platforms as well and can be used instead of JET on 32-bit machines as well. However, there is one important detail concerning “*.accbd”, you must include this in the string or it wont work. Many examples posted on the web look like this: Driver={Microsoft Access Driver (*.mdb)} But it will produce an error in some cases indicating the DB and driver were not supplied in the string. *.accdb needs to be included as well.

     

    Replace: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=

     

    With: Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=

     

    Full pseudo code:

     

    dbLocation = "C:\dbstore\myAccess.mdb"

    Set objADO = CreateObject("ADODB.Connection")

    objADO.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & dbLocation

     

    All other SQL calls and objects are unchanged.

     

    Have not tried yet in C++, or with Excel, or as a DNS location, but test it yourself.

    Wednesday, May 18, 2011 3:29 PM
  • I'm

    having 64 bit Windows 7.
    I've created an application in VB 10 which uses MS Access as database in back end. Which uses ODBC Drivers via a DSN.

    But, I'm having Error while creating a DSN ...
    When I click on the MS Access option from ODBC Menu in Administrative Tools,
    It gives following Errors (Figure 1)...

    On clicking OK,
    It gives following Error (Figure 2)...

    The same application works fine with the 32 bit Windows 7.

    Please help me creating the DSN for MS Access in 64 bit Windows 7.

    Note : It gives the same error for the DSN of Oracle or Excel Databases...


    The Remedies I tried --

    I downloaded the AccessDatabaseEngine_x64.exe and When I tried to run it, It gave an error that "The Office version you are using is 32 bit This drivers can not be installed !!"..

    so I downloaded the AccessDatabaseEngine.exe which ran successfully, the drivers were installed successfully but,
    when I tried to create a DSN again the errors mentioned in Figure 1 & 2 occurred...

    So finally I'm unable to create a DSN of any kind...

    Monday, January 30, 2012 5:03 PM
  • Are you using correct version of ODBCAD32.exe?

    Even though you're on an x64 machine, you should be using the x86 version of ODBCAD32.exe, which you can do by invoking C:\Windows\SysWOW64\ODBCAD32.exe (as opposed to the default C:\Windows\System32\ODBCAD32.exe)


    Doug Steele, Microsoft Access MVP
    http://www.AccessMVP.com/djsteele (no e-mails, please!)
    Co-author Access Solutions — Tips, Tricks, and Secrets from Microsoft Access MVPs (ISBN 978-0-470-59168-0)
    Monday, January 30, 2012 5:13 PM
  • I ran  C:\Windows\SysWOW64\ODBCAD32.exe as administrator and this worked for me. Thank you!
    Wednesday, July 18, 2012 8:12 PM