I have just made a database so that teachers can access it and book the ICT rooms for lessons. The only problem is, i need the database to be on all my teachers computers and im not sure how to do it. Our school runs on a server based network as there are over 400 computers. I need the database to be on all of them, obviously with updated information from other users. Can anybody help?
I would compile the database into a mde and place this on the network drive that all user have access to. A shortcut pointing to the database needs to be placed on each user's pc. When creating the shortcut make sure to use a path such as \\22.214.171.124\ICT\Reservations.mde vs. H:\ICT\Reservations.mde. IT should be able to do this using a script at login so you don't have to walk to 400 pcs.
There are other ways to accomplish what you are after.
You could split the tables into a 'back-end' and other objects(forms, reports,...) into a 'front-end'. The 'back-end' or shared data ALWAYS needs to be on the network. The tables are linked in the front-end to the back-end. Temporary tables specific to each users actions can go on the front-end.
The problem that you will have when you split the database is updating to front-end when you make any changes. Keeping track of who has the most recent version is a pain.
What I do:
Link the front-end to the back-end tables. Create a setup utility using software such as installshield or wise installer. There are many cheap alternatives that will meet your needs. This will install all of the files, registry settings, and create the shortcuts that I need on each users pc. I also use a VB 'Loader' program to launch the application. Before the loader starts my app - it check the local version's mde date vs. the most current copy of the mde is that is stored on the server. If the server's version is newer than the user's - it downloads the updated version to the users pc. This will always keep all users current with any changes you make. Then it fires up my app. When my app starts - it checks the table links. If the table links are bad (server ip changed /down / blah blah) it prompts the user to browse/find the back-end. It then relinks the tables. Without this your users may have to relink manually - or they may not be able to relink at all. This helpful if you are developing on a production back-end (as you should) and forget to relink prior to distributing the newest version.
Thanks Matt, i really needed that information but how can i complie into an MDE file and why do i have to do this? and will there be any problem when multiple users access the database, like will it really slow down the network?
A compiled mde will run a bit faster. The main advantage is that the users will not be able to change your forms/reports/modules.
Tools-->Database Utilities--Make MDE File
Access can handle 255 concurrent connections according to MS. I have heard of complaints with numbers as low as 5-10. It all depends on how you set up your database design. If you have just one table and all users are working off of that table then you may have record locking issues to deal with. I would suggest using Snapshot vs. Dynaset recordsets when possible for forms where no editing or updating is needed. Unbound forms using ADO recordsets is your best bet for reducing network traffic.
A small user pool working on tables of small size should not be an issue on a network with no other connectivity issues. With a small number of users - the potentially for simultaneous connections is reduced.