I hear that the new version of Java, Java 8, does not support a way to connect to MS Access database... I have a rather big problem in this case as I created all my databases with access (And im not porting them to SQL). I wanted to update my codebase from Delphi to Java, but now that I hear Java 8 doesnt suppor MS access anymore I cant do that.

What othe options do I have here, are there another way I can use Java with ms access?

Recommended Answers

All 7 Replies

UCanAccess (sourceforge) may be an answer

the bridge driver was NEVER a good option for anything except the most basic of experiments. It was NEVER intended to be used in production code or anything beyond a proof of concept (which it was itself, a proof of concept).
It's also been unmaintained for a decade or more.

So not having it is great, it forces you to think and use something better...

commented: Agreed +15

If you don't mind me asking, why is it you can't (or won't) shift to a different DBMS? Access itself is a SQL RDBMS, if a very limited one; it should not be difficult to port the data, at the very least, over to MS SQL, and relatively easy to go to most other RDBMSes like MySQL. I assume that you have a reason that you won't, but I am curious what that reason is.

I can't speak for the OP, of course, but even though I wouldn't recommend using an Access DB, I do know of some reasons that may cause people to think twice before migrating (then again, those people should 've thought twice about the design of the db in the first place).

As you said, it should not be difficult to migrate to MS SQL, but that doesn't mean it isn't.
In the ordinary home-kitchen-garden db, there's no problem, MS SQL has it's own converter which does the trick in no time.

but, as already pointed out, MS ACCESS (when it comes to db) is pretty crappy. sure, it's nice to have, but still ... if there's anything wrong with the original design of the db, or how the user uses it, this 'll make the conversion to a MS SQL Server fail, without informing the user of this.

For instance, you have a hundred tables, one of them has a column of type long integer, yet the user used it differently and didn't store numerical, but "normal text", which you would expect in a column of type 'text'
(I am not making this up, this is not hypothetical, I have actually seen this happen once during a conversion of an access db to ms sql)
the converter would convert it, but it would replace the text to numeric values, since that is what it expects to be in that column (how he decides on which value, beats me, but he does it)

so, not only would you need to convert the DB, you would also need to re-check each and every table, and each column to check whether the contents is OK. for ten tables, not a problem, but for a db containing hundreds of tables, have fun.

next to this, (again, speaking from experience), MS Access and MS SQL do not use the same SQL dialect/language. so, if you have tons of queries, you can't just copy paste them, you'll need to copy them one by one, try them, and in (quite) a lot of cases, manually re-write them, since the functionality you used, isn't supported in MS SQL. the more queries you have, the less eager a lot of people are to convert the DB.

commented: Excellent points. +10

And then there's the cost factor. I've seen major corporations and government departments insisting we use Access because they already have it as part of their MS Office licenses and they don't want to invest in MS SQLServer or Oracle licenses.

In an extreme case that led to us being contracted to create a CRM system for a 1600 person government department using MS Access as a database, a system that would have an estimated 100 simultaneous users. Of course the development and maintenance of that in the end would cost more than that Oracle license, but maintenance funding is a different bucket of money, different budget item, and would be easier to acquire than the one time amount to purchase that Oracle license (or whatever other real database engine they'd need an extra license for, they had several already, so additional support cost was not an issue).

It's sometimes easier to get a million dollars of funding spread out over 10 years authorised than 10k of funding on another ticket that's budgeted to some other department...

Good points, to be sure, but I was hoping to hear from the OP about their reasons.

Actually, my assumption was that the OP didn't know SQL, and had done all the data access iteratively in DAO or ADO, but I wanted to know if that was the case or not. Since the OP said "I'm not porting them to SQL", I wasn't sure if that meant any SQL or just MS SQL Server. I would in the latter case recommend an open-source option such as SQLite or MySQL, and see if those were suitable choices.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.