Updating multiple (linked) datasheets on the same subform - ms-access

I have a navigation form with multiple tabs. Under one of the tabs, I have inserted several datasheets. These datasheets are all related to the same table – they simply display different fields from that table. The reason that I use multiple datasheets linked to the same table is that the table contains many fields, and I don’t want to force my users to enter data into a single “wide” datasheet. An ID column is also present in each datasheet to help the user identify the same record across the datasheets.
When I enter a new record in one of the datasheets, I want that record to be displayed in the other datasheets as well. My problem is that a record entered in one of the datasheets will not instantly be visible in the other datasheets. I have to close the form and open it again, and only then is the record displayed in all of the datasheets.
I tried to solve the problem by inserting a requery statement in the After Update event of the datasheet, but this makes no difference. Any ideas?

Related

Form to edit table selected from combobox

I have several (many, 30+) tables of values ready for use in comboboxes on various forms. I want users to be able to add values to these tables in case they need an additional value while filling out a form, but I do not want to create 30+ identical forms (one for each table) to make edits. So, I have a form where I can select one of the tables from a combobox and then open another continuous form that will eventually be used to show and edit the values in the table I selected. What I can't figure out is how to link the continuous form text fields to the table I selected in the previous form. I need to be able to set the textBox control source to something like [Tables]![[Forms]![FormToSelectWhichTableToEdit]![Combo0]]![DropdownValues], but I have the wrong syntax or something.

How to edit an existing record and not create a new one when using subforms in Access?

I have an access database that holds medical information. It holds quite a bit of information so i have grouped like fields together into individual tables and linked them using a common primary key. I have created a tab style form with subforms on each tab.
Some of these subforms contain fields from only one table, however there are a few subforms where i have included fields from more than one table.
For example, i have a table that holds blood transfusion data and a table that holds patient characteristics. Some Fields from the blood transfusion table and patient characteristics table are in the same subform, but I also have fields from both these tables in other subforms.
When i try to insert data into the sub-forms with fields from multiple tables i get the following errors..
update or cancelupdate without addnew or edit
and
The changes you requested to the table were not successful because
they would create duplicate values in the index, primary key or
relationship. Change the data in the field or fields that contain
duplicate data, remove the index, or redefine the index to permit
duplicate entries and try again.
From researching the problem i gather this is because access is trying to create a new record for both tables, but if a record has already been created with that primary key (from inserting data into a previous subform) it won't edit the existing record.
Does anyone know how to get access to edit the existing record in this instance instead of trying to add a new record? I have basic skills in VBA but this is a bit past my level of experience.
Any suggestions would be greatly appreciated.
I used have a whole long response about split forms instead but I was having a horrible time getting it to work. So here is my new and improved answer for using subforms.
Here is a link with sub form info if you want to brush up for your purposes https://support.office.com/en-us/article/Create-a-form-that-contains-a-subform-a-one-to-many-form-ddf3822f-8aba-49cb-831a-1e74d6f5f06b
Step 1
Make sure your main form is bound to the right table.
For my purposes I used a single combo box on my main form to search with. Make sure all the field parameters on your combo box are correct. This includes making sure the Row Source is correct and that you DO NOT have a control source entered.
Step 2
Don't press enter after making a selection in the combo box. To prevent people from hitting enter I created a dummy button at the bottom that says "Save and Refresh" but all it does it create a message window that pops up with "Save Successful". I find hitting enter creates the first error you keep getting. I'm not sure how to address this in a more sophisticated way yet.
Anything else that comes up I will add later.

Split form columns not displaying correct value

I have a split form set up in Access 2007. In it, I have one combo box to select a school, and the After Update event for this combo box populates a second combo box.
The second combo box selects an item of equipment, and the query associated with it selects all equipment located at the selected school, unioned with the currently selected piece of equipment. (If the school selection changed, the box would turn blank, but actually still hold a value, so I unioned it with it's own current value)
Anyhow, the issue is that the equipment column in the split view only shows equipment values that are associated with the currently selected school as well. For example, if I have a form with schoolA and EquipmentA selected, only equipment also associated with SchoolA will appear in the Equipment column of the split form data sheet. If I change the School column to SchoolB, any rows that were populated with equipment associated with schoolA disappear, and equipment on rows associated with schoolB now show up.
Interestingly, if you click on the school column of the data sheet, this also will update the equipment column to only show equipment related to whatever school was in that row.
To summarize: changing the value of one field in my split form will change what data is displayed in the data sheet portion of the form. Clicking on the fields column in the data sheet has the same effect.
I had the same issue, as you describe. I used a workaround (i.e. used different control instead of split-form)
My Situation:since In the split-form, I was just showing the records, and not allowing users to edit the records in split form. Users could click on any record in split form, which would show in main form, and then could edit. The main purpose of this form was for the users to be able to search for the data in split form and then select and edit.
My workaround : Created a form, where I used text boxes to search, and a list view to show all the columns which were in the split form. On double click event, I added Open the form filtered with the record which was double clicked.

Changing Record of Subform in MS Access

I have a form that contains 4 subforms. The first subform gets data based on a selection in a combo box on the main form. The second subform gets data based on the first subform, and the third and fourth subforms get data based on the first.
It's a database contain information on research grants. I want to be able to pull up certain data based on a person's ID (multiple records to a person) or by the title of the grant. Names are working fine, but searching by title is giving me a hard time.
I've tried setting first subform's Record Source with a .RecordSource ="" line, but nothing updates at all when the code runs (the code is in the AfterUpdate event of the combo box containing grant titles). This one has me sort of stuck; I'm not sure if the dependencies among my forms have something to do with it.
Did you put a Form.Refresh in after you updated the recordsource?

How can I require at least one record to exist in a subform?

I have a form with a subform on it that queries a many-to-many relationship (but this would apply to a one-to-many relationship as well). I want to require that the user adds at least one record to this subform.
I believe the issue will be that the main form must update/insert before the subform even gets focus. This means I can't use BeforeUpdate to check the RecordCount on the subform.
Has anyone found a decent way around this?
In such situations, I use to open a dialog form, where the user must enter the basic information required to insert both records. This form has an OK and a Cancel button. Enable the OK button only when the requested fields have been entered. Then insert both records (the master record and the detail record) programmatically. Only then, you open your main master/detail form (the one with the subform) which now will display both records. The user can now add additional data, if he wants.