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.
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 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.
We have a central Access database (with smaller peripheral databases attached) that we would like several users not in the same locality to work on through a network. We currently have the databases on OneDrive; we would also like to lock the database when it is being edited.
I see there is a relevant post that is 5 years old on StackOverflow:
Access database sharing strategies
We have the Office 365 version. Would the solution enable us to lock the databases when they are in use? Are there new solutions to help with our task? We are also willing to try other online storage options if they are better than OneDrive.
Thank you in advance.
The post you provide a link to is quote old now, and some of what it says it bang on still, but some of it is a little bit misleading.
Running an access file that is stored on onedrive sounds like a very bad idea to me.
The post mentioned "Windows Terminal Server". This is a good solution as in effect it allows multiple users to open their own copy of an access file that grabs data from a singel access database file stored on the machine they are accessing using WTS. You will need to investigate this more.
That said, I've never used the above.
I wanted to write as you should be aware that Access 2013 can be used with SQL Server to store it data. Some "slightly more expensive subscriptions designed for business" will give the subscribers access to Sharepoint and access 2013 can then be used to create "Access web apps", and Access makes it really easy to store the data on a SQL Server that is managed for you and really simple to use. Users can also enter and view data into what MS call "Access Views" which are essentiall basic access forms that can be used in a web browser.
My gut feeling is that the WTS route will be best for you.
It's worth noting that there can be considerable work to move data from an access file into SQL server using the MS tools. This depends on what features of access you use.
We currently have an desktop application that is sold to small businesses and used as a server/client model application and we are in the early stages of researching the possibility of adding cloud-based syncing to the program.
Besides the obvious hurdles in transitioning/recoding the networking code of the program itself, there seem to be many additional questions related to the server/database selection, available cloud services, scalability, and more.
For example, currently the non-cloud application simply connects to a specified MySQL database file and then loads/views/updates data. This database can even be stored remotely on a server and accessed from multiple machines, for example:
db=New mySQLCommunityServer
db.host="12.23.56.57"
db.port=3306
db.databaseName="myData"
db.userName="userName"
db.Password="password1"
db.connect
But for a distributed cloud application, it would need to connect to a the same host and SQL database name but with each specific user's login and password and access their specific database and tables. Where would that translate into the code above?
A few questions arise:
Would a new entire database need to be created for each new user account that signs up?
If so, how would changes to table formatting be applied to all user databases. Assuming roughly 500-1000 users signup, having 500-1000 separate databases doesn't make much sense.
Would this be better accomplished using a service such as Amazon Web Services? Even there, it was a bit unclear how the "program user account" would translate onto their services.
Thank you for any feedback!
I have developed a few forms for analysing data on a access database. Now I would like to know if it would be possible to host the forms on a link over the net having the database in a different system. Basically I want the database to be in a different system, the user should see the forms and use it but all processing, must take place in the system where the database is. The user must then be able to see the results.
Is this possible?
No, it's not possible. The web has a separate client for user interaction (usually the browser) and a server for storage. Browsers do not support Access for GUI interaction.
However, you can still use Access for storage (although this is not advisable), but you will have to find a solution for converting the Access forms to web forms. Fortunately, there are plenty of tools available that can do that for you.
There are various limitations in Access/Sharepoint combination. Like union query is not supported in web access and other things. Access can be better deployed over net by using remote connection with mysql (or other server dedicated or cloud) as backend.
Since Access 2010, it is possible to run Access forms on-line. This can be seen in Access 2010: Outlook-Style Calendar in Browser, by Albert Kallal