I have application in MS Access 2000.
It is connected to Oracle 9.2.06 database.
I have to migrate the application to MS Access 2007 and Oracle 11G.
I've created a blank .accdb file and imported all the objects from MS Access 2000 (.mdb) file, except the linked tables
While Linking MS Access 2007 with Oracle 11G database tables, i'm getting an error saying
"ODBC--call failed"
I've checked for Machine DSN, System DSN and its configured well alongwith ODBC Drivers.
Also, when i launch the application i'm getting an error as below:
"Error while connecting to '%Oracle database SID%'"
Could you please help me to resolve this issue.
Have you re-created all your ODBC links on your computer (in Administrator panel)? The ODBC is going to be different from Oracle 9.2 to 11.
you may need to import and reference libraries being used - check the Visual Basic Editor and confirm that all applicable libraries have been brought in.
The previously linked tables may have the credentials saved, or may not - you will have to check the properties of the linked table.
Related
In my Access database, I reference the DSN, "mydatasourcename" to connect to an online MySQL database. It is a machine DSN. Somehow through the course of editing my config files, a phantom DSN was created. This DSN is now out of date and I need to update it with the new hostname (after having migrated the MySQL Server). But the config file is nowhere to be found. It does not show up in either 32-bit or 64-bit "ODBC Data Sources" forms. I have searched "mydatasourcename" in the Registry Editor and it is not there either. Mysteriously, when I open an Access linked table referencing "mydatasourcename" it opens a MySQL ODBC Connector dialogue with the old connection information in it. How is it doing this? Where is it getting the connection string information? To answer this question, I am requesting a list of the places the ODBC driver looks for configuration files and how to access them so I can delete the old configuration file. I am using MySQL ODBC Connector 8.0.16. Thank you.
EDIT: The connection string found in my linked table is definitely looking outside of Access for connection info based on the fact that is referencing a DSN. The connection string in one of my linked tables is the following: "ODBC;DSN=mydatasourcename;;TABLE=qrychemigationapplications_materialsrequired1"
On Windows, ODBC DSN information is stored in the Windows Registry. System DSNs can be found in the registry keys
DSNs for 64-bit drivers: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
DSNs for 32-bit drivers: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI
and User DSNs can be found in
HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI
If a DSN does not appear in the ODBC Administrator (odbcad32.exe) it might be because the DSN name is not included in the list of DSNs in the corresponding subkey
...\ODBC.INI\ODBC Data Sources
Paths to odbcad32.exe:
x86:
%windir%\syswow64\odbcad32.exe
x64:
%windir%\system32\odbcad32.exe
I was able to find the "Machine Data Sources" that Microsoft Access creates in the Windows Registry Here:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\ODBC\ODBC.INI\ODBC
Data Sources
The "Machine Data Sources" that are in this part of the registry, seem to be accessible only via MS Access. If you look for them instead using the standard Windows ODBC Data Source Administrator "widgets" (32 or 64 bit), you just don't see the "Access Created" Machine Data Sources for some reason. If anyone can tell us why, that would be great!
What's more frustrating, is that at least with the latest Microsoft Access Office 365 version, you can only create NEW Machine Data Sources. You can't delete or edit existing "Machine Data Sources".
That being said, if you avoid creating the "Machine Data Sources" using Microsoft Access itself, and instead use the standard 64 Bit Windows ODBC Data Source Administrator "widget", then for whatever reason Access will see those that you create in this way.
So having the issue that you're describing, just seems to be the result of some weird design that Microsoft has implemented specifically in regard to Microsoft Access ODBC connections, for a reason that escapes me.
Hope this helps!
Below is an alternative to accessing the Windows Registry:
Control Panel
Administrative Tools
ODBC Data Sources (32-bit or 64-bit)
Click the tab for: User DSN, System DSN, or File DSN
Click the name of the Data Source
Click Configure... if you would like to view or modify the details of the data source
Hi I am using Windows 7 and Access 2013. I am unable to link tables using Visual Fox Pro DB via Access after a windows update. I get the error message : ODBC connection failed. In order to fix this where should I start exploring? I went to windows regedit-> ODBC->ODBCINST.INI and I am not sure how to proceed from here.
To my opinion, you should start from "data sources(ODBC)",
then create a User DSN, by selecting the correct driver
Microsoft Visual FoxPro Driver.
Then you can setup all needed information to create a ODBC connection to your Foxpro database. (I don't have FoxPro as it's not used in my company), but we do the same between MS Access and Oracle.
Once set, you can open your MS Access database and create linked tables towards your FoxPro database via the ODBC DSN just created.
good luck !
I have an asp application residing on Windows server 2003 -32bit and backend for the application is MS Access 2000. When I upgrade it to MS Access 2010, it throws error: 'Unrecognized Database format'
I even tried to upgrade Access driver on server but of no luck.
What am I missing?
Make sure you have the ACE drivers installed. You said you updated the Access driver on the server but I'm not sure you actually installed the drivers that are needed for the new .accdb format.
By default, Windows only contains drivers for Jet, that allow you to use .mdb Access databases without installing anything new.
On the other hand, the new 2007/2010 Access format '.accdb needs to have the drivers installed separately.
You also need to make sure that your connection string to the database is updated:
string constr = #"Provider=Microsoft.ACE.OLEDB.12.0;Mode=16;Data Source=C:\...\mydb.accdb;user id=;password=;";
In addition to upgrading the database file itself from .mdb to .accdb you'll need to make two changes on the server:
You'll need to download and install the Access Database Engine, available here.
You'll also need to update your connection details for your ASP application. For a DSN-less connection you'll have to update your connection string to one of the formats described here. For example, an OLEDB connection string will have to be updated to Provider=Microsoft.ACE.OLEDB.12.0;.
I have an MS Access 2003 DB that was created by a contractor who has now left. The DB uses linked tables and DAO to connect to an ORACLE backend. It used to work until we recently upgraded our ORACLE version from 10g to 11g. As part of the upgrade we had to update our rather out dated "Microsoft ODBC for ORACLE" driver to "Oracle in instantclient11_1" thats forms part of the ORACLE Instant Client.
When we run the VBA it returns error code 3151 and says "ODBC --connection to 'MYDB' failed. I did a bit of googling and found that code 3151 is a generic code. However sometimes this works and other times(80% of the time) it doesn't.
Its installed on an MS Xp SP3 32bit machine and the drivers are 32-bit. From The ODBC Manager when I run the test connection it is always successful and I can query the DB from within excel and using the "Import External data"
Any idea how I can resolve this?
I just installed SQL Server 2012 to test differences and make sure it is ok for my Work. I may not be a pro at SQL, but I don't see how to add a Link to Jet database on my server. I have imported Jet Databases, but when going thru the GUI to Link a JET Database I see no Provider for JET. I am running Access 2003 (I don't like the 2008+ GUI)
I searched an found nothing simular to my issue; at least nothing I understood. Nothing mentioned how to add Jet db Provider.
I ran a connection string to the Jet Database thru QA:
sp_addlinkedserver 'USGEScrub', 'Access', 'Microsoft.Jet.OLEDB.4.0',
'D:\Lead$\SupList\USGEScrub.mdb'
The connection string works till I try to access the data and then I get this the errorand of course if I click the links nothing shows up:
TITLE: Microsoft SQL Server Management Studio
Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch.
Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked
server "USGEScrub". (Microsoft SQL Server, Error: 7302)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=7302&LinkId=20476
download the 2010 Access database engine from Microsoft
Allow "InProcess"
Add linked server using the ACE OLEDB provider.
more details here
I had a similar problem and in my case it turned out to be related to the permissions on the %TEMP% folder for the account under which the SQL Server service was running. For more details see my answer here.
Sometimes this problems occurs in computers x64 with office x84 versions installed. Try this:
Install pasive OleDb Driver x64