How to convert a ms-ACCESS application?

BartSr

New Member
Credits
28
This is my first post on this forum.My whole life, I was using MS Windows and worked as free-lancer, especially for banks, specialize in ms-access.
When I stopped working, I wrote an accounting system in the same ms- access but now I want to convert it to Linux Mint. I searched for converters, but I found only converters for the table-part, not for the VBA-part.
So my question is this: is here anyone who can advice me how to do that? Assuming I have to use a tool, or language, which fits best.
 


captain-sensible

Well-Known Member
Credits
7,974
Hi BartSr,

It says new member so let me say welcome

The only way I can look to give you answer is for me to think of the components and what they need to run. Lets start with say MySQl that needs a database server or daemon to run; but it can be run on Windows via say a variation of a package from apachefriends https://www.apachefriends.org/index.html

in terms of connecting to a MySQl database drivers are available on Windows and Linux for say php language ,so that crud queries can be done. i.e create, destroy , update.

Now if you say had a a lot of information on say MyQL , and were using it on Windows then i might suggest to do a database dump into an sql file or equivalent, which looking at it from a birds eye view should allow you to import that(with a few caveats) onto a MySQl database used from Linux.

I've not used sqlite3 on Windows but i'm fairly confident you can useit. I do use it on Linux. So if there is a component that is not "platform dependent" you would be Ok. It depends how tied in the jet database is to Windows, because i think ms-access is more than just a database, its a gui using ? you mention VBA thats not visual basic is it ?

Anyway one approach would be you dump the data from ms-access. That depends on how selective the system is; php , java , python all run on Windows and Linux because off the top of my head Microsoft had nothing to do with their creation & were forced to go with the flow.

if jet database is unique and selective , say like .exe window files are, then there isn't going to be a fully fledged way of transfering. if you could you would set up schema on a database , you then set up database fields to match and with some hockery pockery it would be possible in theory to export. For the GUI you would have to code it yourself maybe using php which allows for html form fields, and also carry out crud operations.

There will be a few on here that know more; i only half know what I use myself which is sqlite3 with php
 
Last edited:

khedger

Active Member
Credits
1,026
Your biggest problem will be the one you've already cited. I don't know of anything that will convert VBA code to another language. I think you're looking at porting the code to another language yourself. As far as the database, if you can dump the data from the MSAccess database, you should be able to use MYSQL or Postgres or whatever DBMS you want that runs on Linux, then create your tables and load your dumped data.

keith
 

stan

Active Member
Credits
1,319
I wrote an accounting system in the same ms- access but now I want to convert it to Linux Mint.
This is a bit confusing since Linux Mint can run many different database applications, as others noted above. MS Access is the database part of the MS Office suite, and maybe you wish to convert your database to LibreOffice Base. LibreOffice is the office suite included with Linux Mint (and many other Linux distros), but Base is probably not included by default. You can install it, but you might be better off to uninstall your current LibreOffice (which is a little out of date) and install the latest full LibreOffice package from their website. It will then include Base.

LibreOffice strives to be MS Office compatible. It does a good job, but it is not perfect. Using Microsoft VBA code, or macros, is one of the most difficult tasks, and you will likely find work required to make the transition. LibreOffice suggests in this article that their "Access2Base" API may help you. They also link to the Access2Base API website here for more detailed information. Base may need the Java Runtime Environment (JRE) and perhaps other tools also.

If LibreOffice Base is not what you want, Google for the following should give some ideas:

convert ms access to sql
convert ms access to mysql
convert ms access to sqlite
convert ms access to mariadb
convert ms access to mongodb
and others

I find there are "migration tools" available for these other databases.

Databases are really over my head, but maybe I've helped to clarify which direction you want to go.
 

JasKinasis

Well-Known Member
Credits
5,067
Regarding the VBA code - you'll need to port it to another programming language - but the language to use will depend on the database system you decide to switch to.

I believe Libreoffice has it's own VBA-like BASIC scripting language, but I've never personally used it. So I don't know what it's like.

If you use another database like mysql/mariadb, or sqlite, you could use pretty much any programming/scripting language. Python, ruby, php, lua, perl etc. Or even a compiled language like C, C++, go, or Java etc. That would be up to you and whatever you feel comfortable learning/using.

Libreoffice might be the simplest path to take. You'd just need to learn the differences between MS office's VBA and Libreoffice's BASIC and then port your code to the Libreoffice dialect of it.

And again - I've never really used Libreoffice's scripting language, so I don't know a lot about it - other than it's a thing!
 

BartSr

New Member
Credits
28
Lot of thanks to all reactors, but not what I expected. I hoped -and still hope- for a reaction of members with experience in converting a ms-access-application in linux, in for example mySql, Gambas, Kexi or LibreOffice
 

f33dm3bits

Gold Member
Gold Supporter
Credits
9,106
Lot of thanks to all reactors, but not what I expected. I hoped -and still hope- for a reaction of members with experience in converting a ms-access-application in linux, in for example mySql, Gambas, Kexi or LibreOffice
Welcome to the forums! Most of the members here only run GNU/Linux so are not likely to run MS applications, so chances are realistically low that someone here has experience with converting a MS-Access Application to another format.
 

JasKinasis

Well-Known Member
Credits
5,067
Welcome to the forums! Most of the members here only run GNU/Linux so are not likely to run MS applications, so chances are realistically low that someone here has experience with converting a MS-Access Application to another format.
To follow on from @f33dm3bits - Despite the huge number of users registered here, there is only a small, active community of regular contributors. All spread out, in different timezones around the world.

Most are ordinary, non-technical desktop users - and many of us completely abandoned Windows a long time ago.
There are very few professional Linux sys-admins and programmers in the community.

I'm one of the few professional programmers. I've had a lot of experience porting programs from one programming/scripting language to another. And at a previous job (over 15 years ago) - I did a lot of enterprise level database programming. But haven't used MS access since I was a teenager at school (30 odd years ago) and haven't yet used Libreoffice's database offering - so unfortunately - I can't give any specific advice because I have no direct experience with these pieces of software. I use pretty much everything else in Libreoffice, but I haven't used its database, or its VB-like macro language.

If you are interested in this Dutch accounting application, do this (in Windows)
1, Create the folder Boeket
2. Download https://app.box.com/s/nwtg0a4he3z6zd7evzyv5g8pi3rcbldj
3. Install it unpacked in the folder Boeket
4. Start with boeket.accdb
Regarding the above - I've just downloaded the application. I'll take a look at it in access on my Windows work PC during my lunch-break and will try to take a look at the VB under the hood.

As all of the VB is contained in the Access database - porting to Libreoffice will probably be the simplest option. However - because it's the simplest option, doesn't mean it won't still be difficult, or painless...

I'll try opening it in the Windows version of Libreoffice on my work PC and will see if it runs at all and see if there are any problematic bits of VB that will need to be altered/rewritten.
NOTE: ** I abandoned Windows a long time ago on my own PCs, but my current employers use Windows **

Then it's a case of looking at Libreoffice's documentation for their Basic language and try to find equivalent functionality for the problematic areas.

Libreoffice has some documention regarding running VBA macros in MS office documents here:

And there is extensive documentation on Libreoffice's basic language here:

If I run out of time on my lunch-break, then I'll take a look at it in Libreoffice on my Linux laptop tonight and will get back to you with my findings once I've finished investigating.

It might be a trivial job to get it running in libre-office, or it might be a much more involved process.
In the worst case scenario - It may require a complete re-write, from the ground up using a different database and a different programming language.
But again, if it comes to a complete re-write from the ground up - which programming language and database would you choose? Because there are a LOT of possibilities!

In the meantime - you might also want to consider looking for help in libreoffice's user community:

Some other places to seek help/advice are listed here:
 
Last edited:

Members online


Top