Forms :: M2M / Master Child Form Design - Trigger Event?
Oct 14, 2013
How to structure some MS Access 2007 Forms for the following scenario.
My table structure is as follows:
Product
++++++
ID (pk)
ProductName
...
Tag
++++
ID (pk)
TagName
ProductTag
+++++++++
ProductID (fk)
TagID (fk)
I want to have a main form that allows me to search for and displays a list of all products (and the dozen or so attributes for each product) that meet that criteria (I'm thinking a continuous form view of products).
So far so good. No problems.
Now I want a "tagging" form to the right of my continuous forms product list that is linked to the product which currently has focus. The tag panel should always show a complete list of all Tags. I want a checkbox next to each tag that I can switch on and off whether that tag applies to the currently selected Product. I also want to be able to add tags on the fly (without leaving the main form).
I think I have three forms in play :
Main Form
Product Form (subform to Main) my product search criteria is probably on this form header.
Tag Form (also subform to Main)
But with this approach I'm have trouble linking the two sub forms to each other. Actually, I'm having huge trouble figuring out how to display the list of all tags with a check box that when checked on and off creates / deletes a record in the ProductTag table and I really want Access to do as much of the CRUD as possible. I would prefer to avoid writing screeds of SQL INSERTS/DELETES on events. Am I asking too much of Access?
I am building a user creation form. I have built it with 3 subforms
Subform 1 is voor general information about the user. Subform 2 is some more specific information about the user Subform 3 is more info about the same user.
Now when I create a user (record) in subform 1 it gets the primary key lets say 14. Then when i add information in subform 2. I want it to grab the Primary key 14 from subform 1. So that the information which is inputted in subform 2 will be related to information from subform 1. I get it working if I make a Main form and then put subform 2 and 3 in a subform and then let them grab the primary key from the main form. But how does this work with 3 subforms and no mainform.
I have a form, frmProjects, with a continuous subform, sfrPeopleOnThisProject. They have a master-child relationship. The form shows one Project record at a time, while the subform shows all the People records for that project. This works as expected - the correct records show up in the subform as you move through the form records.
To make it easier to glance through the list of subform records (as they can sometimes be quite long), I've added a navigation combobox to the header of the subform. If I understand correctly, as the combobox is within the subform, it should obey the master-child relationship: it should only show the subform records associated with the main form's current record. It does not. Instead, the combo box collects *all* of the records from the table that the subform is based on. So, choose the record for Project 1 in the main form. Up pops the 2 people on Project 1, but the combo box lists both the 2 people on Project 1 and the 3 people on Project 2.
The row source for the subform combo box is:
SELECT tblPersonOnProject.PersonOnProjectID, tblPerson.Fullname FROM tblPersonOnProject INNER JOIN tblPerson ON tblPersonOnProject.PersonFK=tblPerson.PersonID ORDER BY Fullname;
I can make the combo box perform as required by adding "WHERE Project=Forms!frmProject!ProjectID" to the row source and placing a hidden textbox on the main form for ProjectID (the autogenerated primary key) to sit. Have I misunderstood the point of the master-child relationship in the subform? This hidden textbox thing can't be correct.
I have a form and a subform in MS Access 2003. I have made some changes to database structure, so I decided to change the subform also. When I changed the Link child and link master fields, the controls of the subdatasheet dissapear- they show only in design view. If I clear the contents of Link child and link master fields they appear again, but the records are not binded. Is there a setting on the parent form that also has to be changed, to make the new binding?
I have a main Part form and a Spec subform linked via Part key.
I need to add 6 Spec records automatically when a new Part is added so user can select desired Specs (default value is "n/a" for al 6 entries).
Right now I have the Spec entries added in AfterInsert for Part form, but I have to navigate out and back into record to trigger Part insert. I cannot add the Spec entries until the Part entry is added.
Is a command button my only option? Or is there another way?
AfterInsert is too late, and BeforeInsert is too early; that gets triggered as soon as the first character is typed in Part name.
I have a listbox on a subform (or a subform within a subform).
When it is clicked I want all other listboxes to unselect.
There may be listboxes on the mainform, on other subforms, on other subforms of subforms.
I imagine I'm looking at a recursive function of some sort, but I'm not entirely sure of syntax to identify parent and children forms...
pseudocode so far: loop all controls if control = listbox, unselect all if control = subform - recurse: loop all subform controls if control = parent... err... Fail.
HI everyone, I have a Sales Invoice form with a Receipts subform showing what receipts have been lodged against that invoice. It works fine as long as there is one receipt or more.
The problem is when no receipts have been lodged and there are no receipts to show in the subform. When I open the Sales invoice form I get a "you entered an expression with no value" error, then the Sales invoice form opens. I tried suppressing the warning with DoCmd.SetWarning False, but that hasn't worked.
We all know we're not supposed to duplicate data right? So was wondering how people deal with the deletion of Master records.
For instance let's say I have 3 tables. tblSales tblSalesSub tblProducts
tblSales - lists the sales summary - stuff like SaleId, SaleDate, SaleTotal tblSalesSub - lists the products contained within the sale. tblProducts - is the Master list of products storing the product specifics
Now to prevent duplication of data I should just store the productId in tblSalesSub then reference that to tblProducts with an innner JOIN of some kind. But what if the Master record gets deleted? The reference is broken and NULL values are returned.
How do you deal with this? Don't allow deletion of these records?But just hide them when deleted? Duplicate data by storing the product title and description within tblSalesSub? Tell the user - tough cheese you shouldn't have deleted it should you? Any other ideas?
Thanks to S.baxter I have used some code to loop through a recordset and select each record in turn in a form that uses the recordset as the Rowsource of a combo box. However, there is an After_Update event attached to the combo box which is not being triggered.
MS Help says :- "If you move to another record or save the record, the form's BeforeUpdate and AfterUpdate events do occur." I have tried this but can't get it to work. Would it work if I could move the focus to another control on the form and if so how do I do that?
I use access database for a website. I would like to run a trigger in a specific table when updating a record.
Is it possible to create table level triggers in Access at all, if it is, pls. give me short direction. (as far as I know there are lot of events, but this events occur only in native access application only, and can not be handled outside of access, am I right?)
Basically, I have progress table with learners and each learner must undertake 4 tests. Once they have completed each test, in the original learner table, I want it to show that they have completed the task if all 4 boxes are checked by it triggering one final check box.
I've got a subform that im writing code for, once a user enters a value in one of the fields i want to make sure they cant change that field (and two other fields in that same record, though the rest of the fields are fine to edit at will)
I've got a function already written to validate the data in the record and decide whether or not the fields are enabled and disabled, however im having trouble finding an event in which to activate the function
Is there an event that triggers whenever a user selects a different record?
Any chart or list with all the handlers and how they trigger (in relation to each other) and when?
I am updating a value in an unbound control on an unbound form. When the value in the control is changed I want a sequence of code to execute. Specifically changing the record source of a subform and refreshing it.
The problem I have is that when the value of the unbound text box is control is changed (I am using a button to change the value as a test) the after update event on the text box does not do anything.
I did a simple test using a button to change the value in the text box and in the afterupdate event of the text box asked it to output the value of the textbox to a message box as shown below.
The problem is this does not work, nothing happens. If I tab out of the text box or change the value with the keyboard however the msgbox appears. Just not via a vba change.
Code: Private Sub Prod_ID_AfterUpdate() Dim pid As String pid = Me.Prod_ID MsgBox pid End Sub Private Sub Button_Test_Click() Me.Prod_ID.SetFocus Me.Prod_ID = "TEST" End Sub
There are around 100 customers.And on application open, need to check if customer has paid invoice. If the customer has paid/not paid need to change the status accordingly. Form on open event changes status of only the first customer.Form on current changes status only if we move to the specific record. Is there an event to trigger to check the entire table records on application open?
I have a master table with about 40 fields. In addition, I created eight child tables with read only datasheet views of limited fields from the master table. The child table views are based on certain critera in the master table and are being refreshed by using delete and append queries tied to the On Current property of a form. By double-clicking a specific child record, a form is opened to allow editing of the master record. Also, I am using Referential Integrity and Cascade Update Related Fields to update the child table when a change is made to the master. However, I do not know how to add a record to one or more child tables when a record is added to the master table. The new child record would have to be based on the same critera that the append queries use so it gets added to the correct child table or tables.
I have a problem retrieving my Design Master. I regularly backup my DB onto a separate hard drive. And in doing so have lost my designing capabilities. I have tried replicating and retrieving the DM per the help section, but I receive numerous error messages telling me Error accessing file, network connection lost rollback error, etc. Any ideas would be greatly appreciated.
I appologise but I am useless with Access but am trying to learn.
I have a datababse that we use to log calls onto, There are five members of our team and each member has thier own replica of the datababse. At the end of each day we have to re-sync our replicas to the design master.
It would be nice if we could put a button on the form we use to do the synchronization for us. Is this possible and how do you do it? bearing in mind that I am not too good with access so I need laymans terms.
I have a replicated access database, and I want to move the design master to another computer. I have tried using the Windows 'Copy and paste' command, and the 'Save as' command, both result in creating a replicated database.
I have also tried chnging the design master status to a replicated database, but then I am unable to view any VB code behind the controls when I go to design view.
I am trying to replicate a database for mobile working. When I attempt to 'create a replica' I get this error:
"MS Access can't convert to design master Cannot make the Table "[TableNameHere]" object in tables container replicable."
The table in question is fairly large and has 248 columns and is linked to 3 other tables of similar size as well as 3 smaller ones. Got about 2000 or so records and set to cascade deleted and updated records. 248 columns should leave enough spare columns for replication though, shouldn't it?
Any suggestions as to what I should look for to fix this?
I have an application that when in design master shuts down when I attempt to open a certain form. I have traced the problem to a linked field from another table, by creating a new form and ommitting the said field, problem is its a required field!
If I copy the database (Backup) and run it as a replica it does not happen, if I then convert the replica to design master it happens.
I have been using replication successfully for years. Recently the PC where my Design Master resided crashed taking the hard drive with it. No problems I thought, I used a replica to recover the design master and placed it on the new hard drive (the OS and Access was upgraded from 2000 to XP, however the Access 2000 file format was retained – there are still a couple of laptops with only W2000 software). I understand that moving the path of replicas or design masters is no no, so I proceeded to start from scratch and create a complete new batch of replicas based from the new design master.
Everything was going to plan UNTIL a replica was routinely synchronized with the design master. The design master reverted back to a replica. I recovered the design master again, everything looking fine until again a synchronization causes the design master revert to replica.
Next plan of attack to hopefully fix a potential corruption problem: create a new blank database, import all (non-system) tables, compact and repair, and create a new replica from scratch. From the design master, I created the complementing replicas and sure enough the Design Master again reverted to a Replica after a routine synchronization.
I repeated this “start from scratch” procedure, and the same results prevailed. I am at a loss especially since I verified that the hidden system MSysReplicas table had only two entries after the Design Master and Replica were first created.
I would greatly appreciate any ideas of where to go next with this problem.