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!
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.
You could try cloud based solutions like; Google Firebase
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.
Related
I am tring to create an Access application.
I want the database (tables) to be online and the app (forms, reports) to be installed on each pc.
Is there any possible way to succeed this?
Will I need a dedicated server ?
Alternatively, is there any platform (free or not) that I can upload the whole Access app making it Web app?
I made a research and Sharepoint does not satisfy me at all.
Unfortunately, microsoft does not support Access web apps anymore.
Thanks in advance.
Your best and most low cost is SharePoint tables from an office 365 plan.
Remember, Access web publishing is NOT required if you migrate tables to SharePoint, and then place the front ends on each PC.
So even the most basic office 365 planes support SharePoint tables. (You don’t need Access web publishing for the SharePoint table feature). You one monthly plan of about $7 allows all 20 users to connect with the one account one $7 fee total for all 20 users.
You can’t use “files” like Access accDB ones over the internet with say OneDrive, or drop box etc. The reason for this is these web systems don’t support windows networking. So while you can pull a word file from such system, you cannot EDIT the file on that remote system. When you are done editing word, then you send the WHOLE file back up to the remote system and the word document is OVERWRITTEN.
Of course with Access, if each user were to OVERWRITE THE WHOLE file, then each user would thus always overwrite anything changed by any other user. So these systems do NOT support the ability to update ONLY BITS AND PARTS of the file. It is this “bits” and “parts” updating that allows two users to work at the same time and edit separate rows of data in the ONE file.
So Access is VERY different than the rest of office.
With word, or Excel, then you edit the document and then SAVE THE WHOLE document. That “saving” will thus overwrite the changes made by anyone else. So these “cloud” systems do NOT support the ability to only update “part” of the file – but only the WHOLE file.
Word, Excel etc. thus work on a “whole file” update model. However, Access requires the “special” ability of the windows file system that allows one to update ONLY PART of the file. And even more important is windows file system allows two people to update at the same time as long as they are updating “different” parts of the file.
What the above means is then you have to move the back end data file from a “file” based system to some kind of server database system. That means MySQL, SQL server, or SharePoint tables.
I made a research and Sharepoint does not satisfy me at all. Unfortunately, microsoft does not support Access web apps anymore.
I would not write off this choice. Access web publishing is NOT required for Access to use SharePoint tables. And that table option is VERY nice since such tables even work without the internet connection and will “sync” or “catch up” when you finally do get a decent internet connection. In other words this “sync” type of model is more like email then traditional links to a database.
This web based message system and technology is FAR BETTER than Access ODBC tables since “small” connection breaks that is common over the internet tends to make use of ODBC over the internet rather painful compared to SharePoint tables (they were built from the ground up with the internet in mind, while linked ODBC tables in Access were created 25 years ago, and they did not have the internet back then – so the design considerations of internet were not given to the ODBC choice.
I mean, you can make a car fly, but if you design the machine from the ground up as a plane as compared to a car, the result is a far better machine that flies. So there will be 100’s if not 1000’s of small choices made in the design of the product for its given intended use. So Access was around LONG before the internet – so most options don’t play nice over the internet. However the SharePoint table open is from the ground up based on internet connection technology – ones that often break, or even stop working.
I explain the table migration process to office 365 here:
https://youtu.be/3wdjYIby_b0?list=PL27E956A1537FE1C5
The other choice is to migrate the data to the Web hosting database system. Most web sites usually offer MySQL or SQL server as a database choice. However, ONE BIG detail is you have to find a web hosting provider that allows external ODBC connections. Today, less and less web hosting companies allow raw external connections to the database that drives the web site. (The reason of course is security).
So while say when you go to amazon to buy a book, the web site and web server system can pull information about books etc. from the database system. However, you on the outside cannot connect or link access to the database system that drives Amazon.
So while the web hosted server has full use of the database server, you as an external outside user (not from the web site) do not have such permissions.
So you need to find a provider that includes a database server, but in addition to allowing the web site to grab + pull data from database server, they also allow everyone on the planet who is connected to the wild and crazy internet to ALSO be able to connect to the database server (and by-pass the web site).
So as you can see, this is a big security risk because that database server now has to allow any crazy person on the internet to pull data from that database. I mean, I seen within say 5, or 10 minutes of opening up such database systems, you see 100’s if not 1000’s of logon attempts and people trying to link to your exposed tables! I mean, if all your users can link and see those tables, then so can the everyone else on the wild internet. So in a very short time automated bots will attempt to logon and link to those tables if they find someone crazy enough to “open” up their database system to allowing everyone to “link” or at least try to “link” to those tables.
So fewer and fewer web hosting companies allow external connections to the database that by-pass the web site. You need this by-pass the web site and go direct to database ability. The reason of course is Access is not connecting or linking to the web site, but needs to link DIRECTLY to the database system. (This thus has near nothing to do with the web site – you are to consume the database system, not the web system).
As noted, most simple is SharePoint and office 365. And this choice also has good performance WHEN the file sizes are limited and fit within the SharePoint table limits.
Another choice would be to purchase a monthly SQL Azure plan, and then again migrate your data from Access to SQL server. This setup will also work. They have a number of cool security features (you can restrict what IP address are allowed to connect for example).
Last but not least:
Your internet connection is about 10 times, or even 30 times slower than your normal office network. That means a typical wait time of say 3 seconds with your split application now on your office network will become a wait time of 30, or even 150 seconds if you connect over the internet (150 seconds = 2.5 minutes!!!!!).
This means you have to spend time optimizing the application for this setup. I explain this issue here:
http://www.kallal.ca//Wan/Wans.html
If you don't think this speed issue outlined in the above wans article does not apply to you then I suggest a re-reading it again and again until such time you realize this slower internet issue applies to you. Do the basic math - your internet connection will be 10 to 100 times slower then your cheap local office network. Do take more meds if you don't grasp this issue and don't think it applies to your case and use - it does.
One of the alternative options to Access Web App is PowerApps. It is one of the foremost suggestion to migrate Access Web Apps which is quite easy and powerful.
I have been trying to make an Inventory Management System. I have made the database on Access but I want the database to run online so that people from remote areas with different access levels can modify it in real time.
Is there a way I can store the .accdb file with access restriction? Or is there any online service hosting live databases of MS Access?
It depends on your infrastructure. The simplest (but worst as far as performance) is to set up VPN connections for remote users. Event better if you have the capability use Remote Web Workplace or a Remote Desktop server. Finally put all the tables on SQL Server or MySQL and distribute the front end. With any of these, as with any Internet facing service, you have to be very careful with your security precautions but it is possible to do any of these with adequate security.
If you know only one user will be working at it at a time you can use something like DropBox, Google drive or SkyDrive but that will not work if you want more than one user at a time. Access will not be able to "combine" the changes from multiple user accessing it this way.
I am using Filemaker pro 12 to manage a small database. What I need is to generate some stats based on the data in the database and update an HTML page so at any point I get updated stats. How would I do this ? I am a newbie when it comes to databases.
I am not necessarily sold on filemaker and if there is a better database option that has easier options available for autoupdating a website from the database, generate real time data etc. I am open to hearing about them. Thanks in advance for helping out.
If the FileMaker database is hosted using FileMaker server, you can output information from a FileMaker database to a web page using the FileMaker API for PHP. You just need to enable access via PHP in FileMaker server, and write the appropriate PHP code to pull out the data you want. You probably want the FileMaker server and the web server to be at the same location as there can be a bit of overhead going between them.
Advantage of the above is that it is real-time. However, if your web site is high traffic, it could bog down your FileMaker system.
Another way would be to build the web page using MySQL. FileMaker can access MySQL tables and then manipulate them almost as if they are local tables. You could have a script that periodically imports data into the MySQL table from the local tables. You could run the script as often as you want to keep the data up-to-date, but it wouldn't be as up-to-date as a live system. On the other hand, there wouldn't need to be a connection to the FileMaker database every time someone viewed your web page.
If you need something simpler and less current, you could write the entire page using FileMaker calculations, then manually export the field to an html file as required and manually upload it to the web server.
There are probably many other ways. You haven't been very specific in your requirements.
My web app uses mysql to store contact data. I'd like to sync this data via carddav with mobile devices. I understand carddav is based on a file system, not a database. What software is available to act as an interface or wrapper to make the carddav server work with mysql? or other relational database?
You might want to take a look at Bedework.
Baikal just added this feature!!!
Most dav servers are file system based. If you use SabreDav you can build a virtual filesystem based on your own backend. Baikal is a project that uses sabredav, and a virtual file system. Until recently it stored its data in sqllite. Now it supports both mysql and sqlite.
Its still not 100% mature, but its a great starting point. Playing around with it, I have been able to create contacts directly in the DB (by uploading vcard blobs to a table) and then having them show on my ipad addressbook.
After evaluating many systems, ones built on sabredav like baikal tend to be the simplest to build on. Fruxx is something else you may also check out. Its a hosted system, but will soon have an api.
Last if you are looking for a very elaborate system, then take a look at tine20. It supports activesync (illegally in the usa), carddav, caldav, and has a decent extjs web ui. It natively stores contact information in its mysql store, which is nice since you can update a contact through a sql statement without having to build a vcf file. Where tine doesnt make sense is that it uses a bit more resources because of all the features it offers, and the complexity has ensured that it has a VERY complicated database schema. In other words, you are probably better off creating a rest api on the tine source code rather than doing bare sql inserts.
http://baikal-server.com/
Hiii,
I am planning on developing a intranet website using access as the database and .net as the front end
or
A windows application by using access as the both user interface and database
Can anyone tell me, whether we can upload a file or a document into the access database or not.
Yes, It is possible to store a document in an Acces file. The issue is mainly a volume issue. Access databases holding documents tend to grow veeeeeryyyyy fast. People usually prefer to use the database to store a link to a document, rather than the document itself.
The issue with the the large files is the overhead that OLE adds when storing in the database. Take a look at this MSDN Article for an example of how to read/write files.
If you want to take a look at the OLE bloating issue look at what these guys have done.