Connect Access Database to Qlik Sense Enterprise - ms-access

I have an Access 2010 Database (.accdb) and I am attempting to connect it to Qlik Sense Enterprise.
With QS Enterprise, I was able to connect an Access Database (.mdb) using OLE DB connectivity, but I have not had any luck connecting a .accdb database using this method.
I was able to connect a .accdb database file using QS Desktop with an ODBC Connection, but OLE DB has been a nuisance. I updated my Access 2010 Redistributable Driver (though it did not need it) and that did not fix the problem.
I tried saving my .accdb file as a .mdb, but I was given an error saying:
"You cannot save this database in an earlier version format, because it uses features that require the current file format.
These features include attachments, multi-valued fields, offline data, data macros, calculated Columns, links to unsupported external files, newer sort orders, newer encryption types, and navigation controls."
I am not entirely sure why I can connect the .accdb file through QS Desktop, but not through QS Enterprise.

If you're using OLEDB check you have the Jet 4.0 data driver installed on the server.

Related

Does one need Access to access Access files with odbc?

Is it necessary to have Access installed when using odbc connector to access Access files?
I have an Access file db, which is used by my application. I want to install this application on another pc, so I also need to move the file.
Will I be able to access Access file if I copy the file and have my application installed together with odbc connector? Or do I also need Access (for some dlls?) to do that?
The short answer is no.
The long answer is . . . longer.
If your app using the MDB file for storage only then all you need on the clients machine is MSDAO - Microsoft Data Access Objects.
There are different versions of DAO libs for different version of Access, you should be able to lookup which version you require for your version of access easily enough.
Later versions of MS Windows often come with DAO libs already installed.
If your app is firing up MSAccess Forms or Reports in the database then you do need to have MS Access installed
While the answer about using DAO is correct, you also have the choice of using ADO and optionally ADOX, supplied by Microsoft as part of the MDAC package. It has a smaller memory footprint than DAO and is usually faster. The same restrictions apply in that you can read and write data, create, modify, and drop tables, but not use Access forms or reports.
ADO is still supported as a COM based interface for Access and many other databases. ADOX (for table modification) is depreciated, but still works.
ADOX and DAO are both "Jet only" interfaces, meaning that they work with Microsoft Access's "Jet DB Engine", but will not work if you later change the underlying database.
The OBDC connector you mention should work well, using ADO.NET (recommended for new code) and still has the same "data only" restrictions. This interface should still work if you later want to change the database to SQL server or MySQL.

Using Vaadin with a database created in Microsoft Access

I'm trying to develop a simple web application to run on my company's internal network. I've recently taught mysef the fundamentals of Vaadin and Microsoft Access. I've gotten Vaadin to access a simple MySQL database without any problems. I've also created the real database in Access. My question is how do I get the two to work together? Is there a driver I can use to access the .accdb database itself, or is there a format I can convert to that is compatible with Vaadin but can also still be administered with Access?
Using vaadin with a database is "simply" making the right choice for the JDBC drivers.
For MS Access you can either go via the ODBC Bridge, or purchase a professional JDBC driver.
When you go the ODBC bridge way, you then have to make sure that the server java vm matches the odbc version. Either both 32 Bit or both 64 Bit.
Look here: How to connect to Access .mdb database from 64-bit Java?
In the meantime MS has provided 64 Bit ODBC drivers for MS Access too. But the platform needs to be Microsoft Windows.
Please be aware, that MS Access is a bit tricky when using in multiuser mode. If it's a real project, then you should consider migrating it to a real database.

ODBC connection to MS-Access on Ubuntu

One of our employees created a Microsoft Access Database and has built a Joomla! module around it. It is currently running on a WAMP server, with an ODBC connection to the accdb file.
How can I create an ODBC connection on Ubuntu for the Access database?
At this point, I'm open to having the DB live locally on my Ubuntu server, or on an SMB share somewhere.
Moving it from Access to MySql has already been proposed. It may come down to that, but I'm really being pressured to find another option.
Does anyone know if this is possible and how to accomplish it?
I'm sorry if this question has already been asked; I truly did look for it already, but couldn't find anything specific to connecting Access via ODBC on Linux.
I'm not entirely sure I understand the use case here, but here are a few thoughts:
Access databases are file-based databases and therefore server-less.
This means that the database file itself can reside on a local Windows machine, a windows network share or a SMB share on a linux box.
However, the application that queries the database must have access to the necessary drivers to manipulate the database.
On Windows, this is not an issue: All Windows version come pre-installed with the Jet drivers for the old .mdb format.
For the new .accdb format, you must have one of MSOffice 2007/2010/2013, Access 2007/2010/2013, Access Runtime 2007/2010/2013 or the standalone ACE driver installed to be able to use the new database format.
On Linux, the mdbtools package provides some degree of compatibility with the .mdb file format, allowing such a database to be queried and modified by a Linux application directly.
Another Open Source library (java) for manipulating (.mdb and .accdb) databases is jackcess.
ODBC drivers for Linux exist, but as far as I know, they are commercial and can be fairly expensive, see the easysoft Access ODBC Driver.
See also this SO question: Connecting to access database from linux
Basically, if you are looking for an easy solution that would be Open Source, going to MySQL or using a local SQLite database will be a lot more workable on Linux.

How to programmatically create an encrypted database that is Access 2007 compatible from the Access 2010 database engine?

I'd like to upgrade my application to use the newer Access 2007/2010 database engine. It currently stores its data in a Jet 4.0 (MDB) database. My application is written in Delphi, and it uses ADODB (ADO classic) to interact with the database. I'd like to upgrade the database engine from Jet 4.0 so that I can offer better encryption options.
I changed the connection string in my application to use Microsoft.ACE.OLEDB.12.0 and despite a few hiccups, the conversion went amazingly well! Impressive backward compatibility.
I also distribute my application in a Wine bundle for Mac users. I'm running into a few problems with running my application under the Access 2010 Database Engine on Wine (1.4-rc1). Strange access violations appear. When I install the Access 2007 Database Engine on Wine instead, my application works great. Just as good as with Jet 4.0. So it appears that the Access 2010 Database Engine isn't quite ready for Wine. Bummer!
The problem I'm running into is that if you have the Access 2010 Database Engine on your Windows machine (such as when you install Access 2010), when it creates a new database it encrypts it using a higher form of security that is incompatible with Access 2007. Users of my application couldn't share their database between their PC and Mac (i.e. via Dropbox) since they would no longer be compatible.
In Access 2010, you can set an option for it to "Use legacy encryption". This option causes Access 2010 to create new databases using an encryption that is compatible with Access 2007. This option sets a registry key "CompatMode", and the Access 2010 application must take a different approach to creating new databases in this case.
My question is: How can I programmatically create an encrypted database that is Access 2007 compatible from the Access 2010 database engine? If the Access 2010 application can do it, how can I? I'm aware of two techniques for creating an Access database: 1. via DAO (DBEngine.CreateDatabase), 2. via ADOX (Catalog.Create). I've been trying various approaches to these two techniques, and can't come up with anything that creates an encrypted database that is Access 2007 compatible.

Converter apps rejecting MS Access 2010 accdb file

I have the Bullzip MS2mySQL converter and another converter by Convert-In.com installed. I am working with a MS Access 2010 accdb file which is working fine in Access but gives errors in both converters. Both converters work fine when used with an old Access 2007 mdb file.
The Bullzip converter error is "Error 3706: Provider cannot be found. It may not be properly installed." I have an open forum topic over there but I have open topics there which are months old with no replies at all.
The Convert-In converter's error is "Unrecognized database format". Their docs specify Access 2010 support while Bullzip does not make mention of versions supported.
The Access Save As dialogue is not offering me any options other than 2010 accdb.
Does anyone have any advice on this? Client needs to continue using Access as GUI but I need to fluidly port data to mySQL for our web apps.
// EDIT
My copy of Access 2010 only offers accdb even for new files. So I tried creating a new database in accdb format with 2007 as the version and imported only the tables from the problem file. No forms or queries etc. Same errors from all converters tried.
// EDIT 2
Per HansUp's suggestion to import data into another file - I changed version to Access 2003 and mdb shows up as format and file is opened by converters!
"The Access Save As dialogue is not offering me any options other than 2010 accdb."
Sorry, I don't have Access 2010 so don't know why it won't let you save as MDB. However, since that option is unavailable, create a new MDB, then open it and import everything you want from the old ACCDB into the new MDB. Sounds like you would then be able to use your converter utilities with the MDB.
If at all possible, I would prefer to replace the native Access tables with ODBC links to their MySQL counterparts. With all the data in MySQL, you could avoid the challenge of synchronizing data between Access and MySQL.