Splitting an existing DB to allow access over VPN

cocksy_boy

Registered User.
Local time
Today, 00:59
Joined
Oct 4, 2012
Messages
11
Hi There,

I’m new to Access databases and am asking for a bit of help; I have a bit of old IT knowledge (which is probably a bit dangerous), but have never worked with Access before and I’m hoping you guys can help out!

A colleague has already set up an Access 2007 DB which I am trying to modify to make more efficient. The main issue is that the database is about 60MB and growing rapidly; this makes it very slow (15 mins or more) to load over a VPN when away from the office – so pretty much completely impracticable. The VPN and IT structure are all in force due to company security and there is no way to change this. The DB is this large because it has a number of attachments (a combination of word, excel, pdf and jpg) for each record in the DB – these are required to be saved for audit purposes and need to be attached to each record for traceability.

The database has been built (I think) on the MS tasks template and has been split into a number of front ends (6 x .accdb files – one for each person accessing the database) and a single back end (with the name _be.accdb). All the database files are saved in a folder on a network that is accessed through a LAN when in the office and can be accessed through a VPN over the internet when out of the office (which is every day for at least one of the team). I have no way to change the LAN or the VPN as this is ‘big company’ policy and well beyond my level of influence!

I think the reason the DB is so slow (impossible) to open is that it is loading up all of the fields from all records when you open the front end – so every single attachment in the DB is being loaded / opened. It has to ‘suck’ all the 60MB over the very slow encrypted (I think) VPN which essentially crashes Access, but works fine when on the LAN.

What I would like to be able to do is separate / split the ‘attachments’ field away from the rest of the fields in the database. The rest of the DB is about 2 dozen text fields, not all of which is used in every record, so isn’t that much data and should load fine over the VPN. I want to do it in such a way so that when the user opens the front end, they have visibility of all the fields (as it is now) and if the user wants to load up the attachments field for each record, it only opens that single record when pulled. This would hopefully mean that it can be accessed over the VPN without any major decrease in speed, and the attachments in each record can be opened and saved as required.
It might be that it’s easier to start again and design it this way from the ground up; I'd rather not if I can help it but will do if required, as long as I can suck the existing data in from the old database; I’ll also need some help and guidance if that is the case though!!

Hopefully this makes sense to someone who knows about relational database design in Access – anything I once knew (which isn’t very much) has been forgotten over the many years since I did any kind of database training – and that wasn’t even with MS Access!! Any help much appreciated - thanks in advance.
 
Are the attachments saved within the DB or simply the path to the location in which they are stored?
 
Are the attachments saved within the DB or simply the path to the location in which they are stored?
The attachments are saved in the DB. This is required so that there is instant access from the DB and so that they cannot be deleted or modified once they are saved in the DB (I realise that that is possible, but less likely than if it were just a file in a folder on a drive!).

I was having a similar problem over the VPN...my solution can be found here
Essentially, the front-end for VPN use needed to be linked to the tables via a direct network path, and NOT a mapped drive.

I haven't looked at that yet, but I'm 90% sure that it already is a network path rather than a mapped drive. I'll check and get back to you.

Any other ideas?!!
 
I haven't looked at that yet, but I'm 90% sure that it already is a network path rather than a mapped drive.

If you used the link tables function and did not type in manually a UNC path, or select it from through My Network Places, then it would have used the mapped drive letter instead.
 
Ah, OK, I didn;t know that. I'm not sure how it was created, but I doubt he went in and manually typed the UNC. However, he doesn't even have a mapped drive on his system, so not sure.

Either way I am (ironicllay) working on the VPN at the moment, socan't get in to check it!!

How do i go about checking the paths - do I need to go into the back end and check it there, or individually through all the front ends? If its all in the other link, I'll read that shortly....!
 
Ah, OK, I didn;t know that. I'm not sure how it was created, but I doubt he went in and manually typed the UNC. However, he doesn't even have a mapped drive on his system, so not sure.

Either way I am (ironicllay) working on the VPN at the moment, socan't get in to check it!!

How do i go about checking the paths - do I need to go into the back end and check it there, or individually through all the front ends? If its all in the other link, I'll read that shortly....!

You can use the linked table manager or you can just run this query:

SELECT MSysObjects.Database
FROM MSysObjects
WHERE (((MSysObjects.Database) Is Not Null))
GROUP BY MSysObjects.Database;
 
Many thanks - I'll give that a go when I'm back on the network and let you know how it goes!
 
OK, just checked and the paths in the linked table manager are all in the format \\XXXX\yyy\zzz so there's no reference to mapped drives as far as I can see.

what else can I do to check this DB?
 
Any ideas on this? I'm at a loss and cant work out how to fix this problem??!!
 
I just spent about 10 minutes typing a reply and something happened and it was wiped out...the short version is....

1/ Try moving your back-end to a high level folder...don't burry it in multiple folders.
2/ Try creating your backend tables in Sharepoint if you have that available.
3/ Try linking your access front end to a SQLserver backend and import the data....

-chelly
 
I concur with using a Terminal Server.

Without going into the detail but all that really happens is that screen dumps are transmitted across the WAN. With a Terminal Servver it is interacting with the data at LAN speeds.

It you take the logic further you can render all documents, email services into the Terminal Server so that you have one delivery system providing users with all their documents inside and outside the office.

Downside is that you would need to invest invest in a Terminal Server. Outlook I understand does not sit comfortably with Exchange Server so it is not advisable to combine the two. You may also need to look at the upspeed of the office's broadband.

Upside no performance problems and with generous time-outs you should avoid data corruption. I have seen a user leave a Terminal Server session open and resume it from another PC.

Simon
 
Hi Chelly,

OK, just looking through your answers:

1/ Try moving your back-end to a high level folder...don't burry it in multiple folders.
Hmm, I dont think I'll be able to move it much higher - its only 2 folders deep and the second level is access controlled for different members of the team so I cant place it any higher as everyone will be able to access it.
2/ Try creating your backend tables in Sharepoint if you have that available.
I dont think we have sharepoint I'm afraid - and I've never used it to be honest so wouldn't have a clue what to do!
3/ Try linking your access front end to a SQLserver backend and import the data....
As above - I dont think we / I can access that (or if we even have it)and I've never used it to be honest and don't have a clue what to do!

Simon -Unfortunately, I'm merely a lower level worker and have absolutely no call on whether we have a terminal server int he system. There is no way I have any influence at my elvel in this, unfortunately!

Boblarson - I took a look at those links and whilst useful access informtino, I couldn't find one that would help me in my current predicament!

Ideally, I'm just looking for a way to split theback end database into a number of smaller sections so that it only loads the attachments when they are called by the user. It sounds like Access doesn't really make sthis possible...??!
 
I've never done that and so I can't really give you direction, but I wouldn't say it's not possible. Almost anything is possible with code.
 
Ha ha! yeah - its a shame I dont really know much code, and ahven't really got a clue where to start! Any pointers appreciated!
 
Try posting on the VBA Forum Board on this site. I'm a code neophite myself so I'm not the one to help with that.
 
So I was doing some more thinking about my issue, and I wanted to bat a few ideas past you all!

How easy would it be to split my back-end database file into 2 separate files: one with attachements and one with all the rest of the data?

The plan would be to then possibly have 2 front ends for each user: one which loads both back ends and all the attachments when on the LAN and teh second which only loads the "rest of the data" back end when VPN-ing in.

My only concern is making sure that the relationships stay the same, so that when a new item is created from the front end only accessing the "rest-of-the-data", how does it copy into the "attachments" database.

Any thoughts on this possible method? If it sounds like a good idea, any pointers and guides to help set it up would be greatly appreciated!
 

Users who are viewing this thread

Back
Top Bottom