In Access 2007, I split my database (which only contains tables and forms) into front end and back end. I want my front end to only have forms, while my back end only have tables.
When I split the database, the front end has tables and forms while my back end only has tables. When I try to remove the front end tables, the front end forms don't work.
I am completely new to Access and cannot find the answer.
In the end I want to give the forms out to multiple people and not have them see what other people input into the forms and to have the information on the table in the backend.
Thanks in advance!
You should probably have a look at using linked tables in the front end
About importing and linking data and database objects
MS Access: Link to a table in another database in Access 2007
A linked table in Microsoft Access is not actually a table that contains any data. It is just a shortcut to a table that resides in a different database, usually called the backend.
When you split your database the front-end should contain forms, queries, macros and code modules. And also linked tables that point to the backend database.
The backend database therefore would just contain the base tables.
Note if the backend database is moved then the linked tables will no longer work as the link would be broken.
You can either manually split your database or use the menu option built into the user interface, In Access 2007 click on database tools, then in the move data group click on access database.
To manually link tables, open your front end database and select External Data on the ribbon then click Access then after you've selected the file name make sure you select the 2nd option to link the table in the dialog box that opens.
It's a good idea to put the backend database on a server that does not get turned off and when linking avoid using mapped drives in case all users have not got the same letter mapped to the same folder share.
Related
I have a database in access that has 4 tables and 4 forms that are bounded to those tables. I recently split the database and the tables are now stored in a different file and I have the front end stored on a shared drive(People in the office want to use the database while it is being built, so I had to put it on a shared drive). My questions is, I am planning on adding another table to the database with it's bounded form. How can I link the table and the form when they are going to be in two different files? The other tables and forms work because I used the wizard to split the database.
Assuming you are asking how to do this manually:
Open the backend in Access and add the new table. Note that at this time, no user should try to access the backend, be it via your frontend or the Access UI.
In the frontend, use the Linked Table wizard to add a link to the new table.
Note: all these steps could be done via VBA as well.
I split my DB and now when I try to change some information on a few queries, I can't access them. I have a front end and a back end and understand that I should make changes to queries/forms via the front end, but they are grayed out and inaccessible.
At this point, I tried unsplitting the DB (which I believe I did), but I still can't edit those queries or forms.
I can click on the query/form and see the result of it, but I can't get to design view to edit it.
I'm taking a shot in the dark and saying that in the process of splitting your database, you either created your front-end in an accdr or accde format (a runtime application). The purpose of this is that you shouldn't be able to open queries or forms or tables in design view on the front end. You can just open your database and save it again as an accdb file and continue as normal.
If you're having other problems with the linked tables, I suggest you open the Linked Table Manager and refresh the links (if you moved the backend file, this is necessary).
I would recommend trying to proceed as normal by using Shift Bypass just to be sure. ( Hold the shift key when you start the database. Then attempt to modify in design view).
If these fail, I would attempt to copy the queries and /or forms if possible and create new ones.
I'm redeveloping an Access + VB based application to C# and SQL server. I am working with the split versions of the Access database. In the front-end file when in design view I see code like this for some event routines to lookup a value from a query:
DLookup("someField", "someQuery")
This is probably simple but I cannot find where "someQuery" and queries in general are located and how to view them. They don't appear in the backend file and I can't see how to list them in the front end file. I haven't had any luck searching the net only that this suggests they are located in the front end file. How can I view the SQL for these queries?
Since you are unable to open the Navigation Pane, you could create a new db file and import queries from the front end into the new db (see the Import section of the External Data ribbon). Without the linked tables, those queries will be non-functional, but that effort will allow you to identify which queries exist and you may examine their SQL if that is helpful.
You could even create links to the back end tables and import anything else you may need from the front end db.
So here is the gig, I have this inventory access database that I am trying to seperate the form logic from the database itself; having the database on the server while the form is distributed to users.
I know how to seperate the database to a "front end" and a "back end" but my question becomes " is that all I need to do? Send the users the front end with the form and call it done?"
How do I ensure the database can still talk to all instances of the form?
Help, or at least a point in the right direction, would be great! Been trying to figure this out for the past week.
Based on your question "How do I ensure the database can still talk to all instances of the form?" it seems to me that you fundamentally don't understand how Access/Jet/ACE works.
The database (back end) doesn't do any "talking" -- it's just a file. Each user's PC does all the data manipulation, and as long as the linked tables in each user's front end has the right connect string, it will load the data from the shared file on the file server.
It's all "pull" -- no "push" as there's no server process running on the server to send anything back to the users.
See the "Splitting your app into a front end and back end Tips" page for more info. See the free, for basic use, Auto FE Updater utility to make the distribution of new FEs relatively painless
That is basically it. You will probably need some code to check the linked back-end tables and re-link them if any are missing. I like to keep a small set-up table that lists the expected tables and location and a start-up form. The start-up form checks a few things and either loads the menu form, if all is well, or a form to find the back-end database is all is not well.
I have created an Access file with forms and report and put it in a shared drive with full access rights. But when one user open the Access file, another user can not open the file. He clicks on the file, but no response comes... while I, at the server, am able to open it at anytime.
I am stuck. This Project is for all the users, all of them need to access the mdb file at the same time. How could it be done.
I have a lot of hope. Hope you guys help me out.
Thanks in advance.
Use the database splitter wizard to split your database into separate front end and back end components. Your forms and reports should remain in the front end. And the back end should contain only tables, indexes, and relationships. In the front end, your "tables" will actually be links to the back end tables.
Then use Tony Toews' Auto FE Updater (http://www.autofeupdater.com/) so that each user will work from their own copy of the front end database.
The approach that you're using now ... allowing multiple users to directly open the same mdb stored on a network share ... is asking for trouble. In addition to the problem you're seeing now, that approach dramatically increases the risk of database corruption. Don't do that!
Maybe one of your users is now opening the file in Exclusive mode?