Sharing an Access database

Soldato
Joined
8 Nov 2005
Posts
4,574
I need some help with a small business set-up that's worked okay until now but is in danger of causing some big problems for us as we continue to expand.

The business effectively 'runs' from an Access database that contains all the information for our customers, orders, etc. That database is held on a desktop PC in the office and shared on the local network to a laptop. Presently those are the only two PCs in the office but we're thinking of adding a third as we grow.

The problem we face lies with the fact that we've recently added an 'extra' person to helps us process orders that come in at the weekends and some of the evenings. They need to be able to access the database from a remote location and to 'solve' that we're currently using GoToMyPC to allow access to the desktop machine whilst it's not being used.

But that's sort of knackers us if someone needs access to the finance package which is also on the desktop PC and our extra person is 'using' it. What we need is a solution that will allow us to share the Access database locally as well as remotely but free up the desktop PC for someone to GoToMyPC into in case they need to get to anything on there during out of office hours.

Any bright ideas? I'm sure there's something simple but my brain is drained form trying to manage the day-to-day running of the business and doesn't have the spare capacity to think about anything else!
 
A VPN client hosted on the internal machine, connecting using software by the external PC. Share the file, and voila, you have access to the DB.
 
That sounds deceptively simple.

So we install a VPN client on the desktop machine (and the same on the external one) and the remote worker simply VPNs into the desktop and accesses the database? Do you have any recommendations for suitable clients?

And would a system like that work if three or more people (with one of those being remote) were accessing the database at the same time? And could the same VPN system work if one remote person wanted to access the database and another wanted to access either the database or the accounts package?
 
That sounds deceptively simple.

So we install a VPN client on the desktop machine (and the same on the external one) and the remote worker simply VPNs into the desktop and accesses the database? Do you have any recommendations for suitable clients?

You don't even need a client/server - Windows comes with it's own VPN.

And would a system like that work if three or more people (with one of those being remote) were accessing the database at the same time? And could the same VPN system work if one remote person wanted to access the database and another wanted to access either the database or the accounts package?

Not with Windows desktop - AFAIK the desktop O/Ss have a one connection limit with VPNs. If you have a proper server in the office (with a server OS) I would configure that for VPN access - this would support multiple connections, but the concept would remain the same.

However, if you're looking to expand the business I would look for a better database than Access - from what I remember it's pretty iffy with concurrent connections, and I shudder to think what it would be like speed-wise over a VPN (remember you are limited by the upload/download speed of your internet connection).
 
You could really do with a SQL solution rather than access. Converting from Access to SQL shouldn't be "too" difficult either. SQL is designed for multiple users, access isn't.

You could also look at something like Sharepoint maybe? I've never used it, and it might not even do what you need.
 
You could really do with a SQL solution rather than access. Converting from Access to SQL shouldn't be "too" difficult either. SQL is designed for multiple users, access isn't.

Definitely, although I am biased ;)

If your business cannot afford SQL Server, check out SQL Express. It should be more than sufficient for your needs.
 
AFAIK the desktop O/Ss have a one connection limit with VPNs. If you have a proper server in the office (with a server OS) I would configure that for VPN access - this would support multiple connections, but the concept would remain the same.
I suppose the single-user limit makes sense. Unfortunately we don't have an in-house server we could use or we'd already be using it!

However, if you're looking to expand the business I would look for a better database than Access - from what I remember it's pretty iffy with concurrent connections, and I shudder to think what it would be like speed-wise over a VPN (remember you are limited by the upload/download speed of your internet connection).
The business is constantly expanding and at some point the current database will need to be migrated over to a better technology but when that happens is another matter.

Apart from anything else like cost or available time, I'd need to know with 100% certainty that the data would be perfectly accessible in another format. If we lost even one record it could have a massive knock-on effect for the rest of the business.

You could really do with a SQL solution rather than access. Converting from Access to SQL shouldn't be "too" difficult either. SQL is designed for multiple users, access isn't.
The phrase 'shouldn't be too difficult' fills me with fear! We rely on the current database to run the business and were anything to happen to that data we'd be completely screwed.

Can you give me some idea of how one might go about converting an Access database into an SQL database?

You could also look at something like Sharepoint maybe? I've never used it, and it might not even do what you need.
Well, it's worth looking into. I'd completely forgotten about Sharepoint.

Definitely, although I am biased ;)

If your business cannot afford SQL Server, check out SQL Express. It should be more than sufficient for your needs.
And by being 'biased' does that mean you know a lot about SQL databases?

Can you explain how I'd go about converting my current Access database? And once converted, how do we continue to use it? Is there an SQL front-end of some sort or does that have to be designed specifically for the database in question?
 
I suppose the single-user limit makes sense. Unfortunately we don't have an in-house server we could use or we'd already be using it!

The business is constantly expanding and at some point the current database will need to be migrated over to a better technology but when that happens is another matter.

Apart from anything else like cost or available time, I'd need to know with 100% certainty that the data would be perfectly accessible in another format. If we lost even one record it could have a massive knock-on effect for the rest of the business.

If done properly then no, there is no risk to you data. You'd be using a copy of it anyway, and your backups would mean you could restore after any issues migrating the data anyway.

You don't just jump in and do it with critical business data.

The phrase 'shouldn't be too difficult' fills me with fear! We rely on the current database to run the business and were anything to happen to that data we'd be completely screwed.

Can you give me some idea of how one might go about converting an Access database into an SQL database?

It's a piece of cake with a proper DTS/SSIS package, provided the Access database is of a decent design. The worse the design of the Access database though, the harder the migration would be. But, as above, you'd only be converting a copy until you're happy the process has worked.

And by being 'biased' does that mean you know a lot about SQL databases?

I'm a .NET/SQL Server developer, so I know a bit. I certainly wouldn't call myself an expert, but I know enough to do my job well, and then some.

Can you explain how I'd go about converting my current Access database? And once converted, how do we continue to use it? Is there an SQL front-end of some sort or does that have to be designed specifically for the database in question?

Hard to tell you without knowing a) what's in the database, b) how much data there is in the database, and c) what the database schema is.

There is no SQL front end. SQL Server is just that - a very manageable, scalable and efficient database hosting service. Someone would have to write you a frontend application. Again, without knowing anything about your data or your business I cannot comment on how long that would take or what it would entail.
 
The phrase 'shouldn't be too difficult' fills me with fear! We rely on the current database to run the business and were anything to happen to that data we'd be completely screwed.

Can you give me some idea of how one might go about converting an Access database into an SQL database?

Well presumably it would be well tested before you deployed it, so you should be fine.

You can import existing data from access in to SQL server easily, go grab yourself a copy of SQL Server 2008 Express with management tools (free) and you can have a go.

When I say "shouldn't be too difficult" I mean that without knowing your exact database layout, how many tables you have, custom queries etc it is hard to tell. Porting over the tables and data is fine, but if you have lots of intricate forms it would become more difficult.

Are you able to give us any more information at all?
 
You can import existing data from access in to SQL server easily, go grab yourself a copy of SQL Server 2008 Express with management tools (free) and you can have a go.

Can you do it with Express? I've not tried I must admit, but I would have thought you'd need full SQL to import from one to the other.
 
Hmm good question, I have the developer edition. We have the express edition on a staging server and it seems you can do it there too. Right click on a database > tasks > import :).
 
There are a lot of things in this thread that are pointing towards one thing for me. Your business has hit the point where you need a server. Hosting an access database on a Windows XP machine and having multiple users access it is just asking for trouble.

I do agree with Lokkers that you should consider moving over to SQL, however on a server operating system an access database is fine for what you need. I have seen companies of 40+ people run systems that have backend access databases. I also wouldn't do this via a VPN either as you've got a good chance of corrupting records in your database (I've seen this happen before).
 
There are a lot of things in this thread that are pointing towards one thing for me. Your business has hit the point where you need a server. Hosting an access database on a Windows XP machine and having multiple users access it is just asking for trouble.

It entirely depends on how many users the business has. Whilst I would always agree a server is ideal, it's isn't always (financially) possible. If the company doesn't have that many users, it's entirely possible to run anything from XP - plenty of the customers at my old employer did exactly that until they needed to start running server applications or hit the tcp connections limit in XP.

I do agree with Lokkers that you should consider moving over to SQL, however on a server operating system an access database is fine for what you need. I have seen companies of 40+ people run systems that have backend access databases. I also wouldn't do this via a VPN either as you've got a good chance of corrupting records in your database (I've seen this happen before).

I don't see there being any difference between hosting an Access DB on XP and Server 2003 - care to enlightening me? I think the priority here would be to get this "critical" business data into something a whole lot more reliable than Access :p
 
I don't see there being any difference between hosting an Access DB on XP and Server 2003 - care to enlightening me? I think the priority here would be to get this "critical" business data into something a whole lot more reliable than Access

There isn't really other than the TCP connection limit, but short of that having a user use a workstation that is hosting a network database causes problems if the user has to restart, or crashes their workstation. XP and an active user is a hell of a lot inherently less stable than a dedicated server. Then there is security but there is no point going through all the minor details as they are not show stoppers. It will work perfectly fine on XP but a server brings about so many advantages to a small business.
 
There isn't really other than the TCP connection limit, but short of that having a user use a workstation that is hosting a network database causes problems if the user has to restart, or crashes their workstation. XP and an active user is a hell of a lot inherently less stable than a dedicated server. Then there is security but there is no point going through all the minor details as they are not show stoppers. It will work perfectly fine on XP but a server brings about so many advantages to a small business.

Totally agree, and we've not even discussed the hardware benefits of a "proper" server. I would certainly recommend a separate machine for hosting any critical systems, however it doesn't necessarily have to be a server-class box if you're on a tight budget.
 
I am pushing our database developer who only knows access and VB to learn VB.net and put our bespoke database on a SQL server.

He won't do it :(

You don't need to learn VB.net to use SQL server. Migrate the tables to SQL server and create an Access and VB driven frontend using linked tables.

The SQL server handles the data integrity and user access management, but the frontend remains very similar to what you are already used to.
 
Back
Top Bottom