1. Table Removed@troutusa: re the data entry mock up form:
There is a dependency upon adoption of the data structures/ relationships:
1. Assuming the removal of the tblTrack_1 table and the Parent attribute then obviously you will have no need for that on the form.
2. Song Details will need a mechanism to create the Performer and Composer association.
3. While Tracks is a subform of Songs, Effects should be a subform of Tracks, not of Songs. You may need to consider a separate form that can be initiated from this one, depending on screen real estate, that enables this information to be maintained.
4. Brand ID and VST ID in Tracks is not relevant - they apply to Presets. In Effects, the Brand depends upon the VST selected, so the Brand combo has no relevance - except to set it up as a filter to the values presented in the VST combo (cboBrand is unbound)
5. BTW the compo boxed will/should display the VST / Brand ... etc name, not the ID although they will be used to capture the ID. So perhaps the labels are not correct.
Also, just consider the way in which you expect to work with the application. Are you going to use it only after you have defined the song and all the associated Tracks and effects, and tweaking these records as needed or will you want to build a library of the VSTs, and the Presets, which you can link to as needed when building your song record. You indicated earlier that you have, potentially thousands of these? That implies a plain-vanilla combo box may not be entirely suitable. You may need to think about how best to find (asyoutype) the record you want. There are some solutions to that type of problem that can be found in this forum and elsewhere.
Let's start there...
Thanks for the thanks.
Good luck with the project.
2. Table Structure corrected
3. Instead of having subforms 3 levels deep I was planning on a separate subform for effects. (See frmSong layout. I would sync the subforms manually using the current track selected ID.)
4. Yes, these combo boxes are just filters.
5. Correct. They were mislabeled.
Regarding my naming convention, I started doing this many years ago. It seem to make queries much easier to find mistakes. I've stuck with it ever since.
I plan on loading all of the Brands and VST's using a dedicated form. I will preload some presets using a Preset form, but eventually I want to incorporate a "Not in List" event that will either load the new data using an SQL statement, or open the Presets Form. I have code for this and have used it successfully before.
Please see the new relationship diagram and frmSong design view attachments.