0

I need to develop a very simple database (probably no more than 4-5 tables, with up to 50 records per table) for my company, with the following requirements:

  • The database itself (most likely an Access file) must be stored on a server and accessed through http://www.something.com/my_db.mdb
  • Users from 6 different countries (with generally low Internet bandwidth) must be able to access this database and to view / edit it through a few masks, as well as produce automatic reports / extracts
  • The whole solution must be as robust and as low-tech as possible, to reduce maintenance issues (ideally, no development at all)
  • I cannot pay an Access license for each user, and using OpenOffie or LibreOffice is not an option (because I cannot go and install it on the computers of all the users)

My first (and naive?) idea was to:

1) Create the mdb file containing only the data and store it on a webserver

2) Create the edition masks and the automatic reports in another file that would define the online file as data source

3) Deploy the file containing the edition masks to the computers of all users

4) The users only have to open their local file to edit the distant DB through ther edition masks

Is my approach somehow realistic? Do you see another approach that would make more sense? Can I implement my solution with 1 single Access license?

Thanks a lot in advance for your inputs and insights!

  • You're accessing a database by downloading it over HTTP? That sounds like a total mess from step 1. This is why SharePoint was made. – tadman Oct 21 '17 at 19:30
  • 1
    No, the idea is not to download the DB! In other words, I probably won´t have the IT resources to setup a real database (MySQL or else) but I would like users from different countries to access and edit a single source of data. This solution over Access sounded to me like the most low-tech and straight-forward option, but I may be overlooking some basic technical and architectural issues, which is why I am posting here :) -- PS: SharePoint will come at some point, but is not deployed yet in our company – Stéphane Henriod Oct 21 '17 at 19:35
  • I think Christoph has the right idea here: Build a simple wrapper around it that you can host on your web server. Some databases might work over HTTP (e.g. [CouchDB](http://couchdb.apache.org)) but Access is not one of them. – tadman Oct 21 '17 at 19:37

3 Answers3

4

If you provide just the mdb file as file source, accessible via HTTP, the users won't be able to connect to the database, because in a HTTP GET file download they just get the .mdb file downloaded to their local computer. When they edit something within the database (e.g. add a record), it will be done just locally on their local copy of the file.

If you want to use a access database, the simplest approach I have is that you implement a very small web application (e.g. ASP.NET) which connects to the .mdb file (and the .mdb file then can be in a private directory on the server). Your web application then is deployed to Internet Information Server (Microsoft IIS as a webserver).

You can provide data forms as web application, which you implement using ASP.NET, or develop separate clients which access web services you develop with .NET.

Christoph Bimminger
  • 1,006
  • 7
  • 25
  • Thanks, this is very clear! However, because we don´t have dedicated IT human resources and no budget for hiring external resources (this DB is far from being a core process), I would like to go for something that doesn´t involve development or any kind of server / DB management. As said, are talking here about a very small DB. Do you see anthing that could fullfill these requirements? – Stéphane Henriod Oct 21 '17 at 19:42
  • See the comment tadman posted above. he mentioned that CouchDB has such functionality, but I don't know this DB. Otherwise, I'd suggest that you check some samples for ASP.NET, many samples show how to store data in a database. If you don't want to use IIS but prefer Apache (or your web hoster only provides an apache web server with PHP/mysql support), you can develop such functionality very fast with PHP. I guess when you are able to "develop" an access database, you will also be able to develop a PHP/mysql database. For german-speakers, there's a very good book available online (SelfPHP). – Christoph Bimminger Oct 21 '17 at 19:58
  • Ok, I will look into this direction! I am not really afraid of the dev part of the forms in php or whatever language, but more of the maintenance of the scripts, since I really don´t have resources allocated for this. Also, I do not have direct access to the IT infrastructure, which makes it difficult to setup an Apache server, php interpreter, etc. So maybe my initial idea was altogether not realistic, given the framework limitations I have. Thanks so much for having taken the time! – Stéphane Henriod Oct 21 '17 at 20:04
  • For development purpose, I'd recomment an Oracle Virtual Box virtualization environment (as replacement for a server), and within that, you can install apache, mysql etc as parts of XAMPP bundle. See https://www.apachefriends.org/de/index.html (Just recognized XAMPP now comes with MariaDB - if you prefer mysql db, see https://stackoverflow.com/questions/39654428/how-can-i-change-mariadb-to-mysql-in-xampp) – Christoph Bimminger Oct 21 '17 at 20:06
  • I will look into it! But, again, after I finish developing something in my virtual box, I will need to deploy to a "real" server, with "real" Apache, etc. And this will probably be the bottleneck in my case, since I don´t have access to the servers and since our IT Dpt might not be particularly happy about a random employee requesting them to install and maintain not-standard technologies...They might have been more cooperative if I could have just uploaded a mdb file to a webserver... But, as you pointed out, this is not an option. – Stéphane Henriod Oct 21 '17 at 20:20
0

You could try cloud based solutions like; Google Firebase

tahwos
  • 574
  • 7
  • 21
0

For a requirement of this type; one should not use Access tables which are static because Access is a front end database but instead use a back end database such as SQL Server Express. SSE is free and one is better positioned to provide real web based features if needed in the long run.

Further I would say, in terms of cost/management - one should really consider using one of the online db services such as soho, knack, airtable, etc. One of these could well be faster and less expensive than creating a web app from scratch for such a small requirement.

Cahaba Data
  • 624
  • 1
  • 4
  • 4