I've skimmed and disregaded all the posts about forms and combo boxes and have just focused on the latest screenshot and database sample you posted (post #30). With that I see you have some real issues with your tables and any form talk is irrelevant at this point. Here's what I see with your table structure:
1. Circular relationship. tblXactn, tblBroker and tblAcctDirectory have a wrong relationship--I don't know enough about your data to know which one. You should only be able to trace 1 path between tables--I can trace 2 between tblBroker and tblXactn (directly and also via tblAcctDirectory). What you are saying is that an Xactn can have a broker, but it can also have an AcctDirectory that may be a different broker. Is that true? Can 2 different brokers be associated with an Xactn?
2. Storing duplicate data. tblAcctDirectory has an AcctActiveDate and an AcctActiveTimeStamp--what's the difference between these 2 fields? Could an AcctActiveDate ever be a different date than what is in AcctActiveTimeStamp? If not, then you only need AcctActiveTimeStamp. Same for ActInactive fields.
3. Storing calculated data. You shouldn't store data that can be calculated from other data in your database. In addition to those AcctActive/Inactive fields tblAcctDirectory also has a Yes/No AcctActive field. You don't need AcctActive because you can look at your Active/Inactive date fields and determine that.
And here's the biggie:
4. Using field names to store data. This is what I guessed about your data in my first post--you are using values as names. tblAcctType should not have a field named for each Acct Type but each account type should just be a value in a field. Same for tblXactnTyp and tblXactn.
Back to the car analogy. When a used car lot has a database of the cars it sold it has tblSales with a field for CarMake and in that CarMake field that put Honda, Toyota, Ford, Buick, etc. They do not link tblSales to tblCarMakes in which they have a bunch of fields named after every make they offer (a Honda Yes/No, a Toyota Yes/No, a Ford Yes/No, etc. etc.). They simply store the make in the sales table with the value. With your database you have chosen the second and wrong method.
A database isn't a spreadsheet--you don't just throw more categories across the top. A database should accomodate data vertically (with more rows) and not horizontally (with more columns). Suppose you get a new tblAcctTyp. In your system you must add a new field to the table, reconfigure your form to accomodate it, reconfigure any query and report as well. In a properly structured database (like the car analogy) you simply add that new value to the available options and nothing else needs to be done.
Please understand: sometimes I just add a field (EDIT: that I delete on the final version) to make troubleshooting and sleuthing easier.
1. Yes, I see your point and have corrected it, thank you. That was my confusion as a result of converting from a malformed database. Since each account has an assigned Broker, then it is not needed in the transaction table. That said, transactions are done
by the broker, so accounts are selected based on the broker selected at the beginning of entering transactions.
2. Each transaction has occurred before these records are entered, and in this case many transactions are years ago. It is necessary to have the date of the actual transaction to match the entry to the records I already have. The "TimeStamp" is a Now() timestamp of the moment the record was created in the database. Just for historical record - I just want it there. Should another person ever enter records, I would also add a username to that, similar to what we use at work, which may complicate matters more. I want this record to track when the accounts were made as well.
3. As far as the Active/Inactive: this is really only used for the "Core class" account which is default cash storage in the Broker's account. You see, when a cash deposit is made, it first goes to a "Cash" account, then the Broker automatically moves it to the "Core class" account. This account can vary, as (some?) Brokers give you a choice of "Core class" accounts, with differing features. This is where your cash resides while waiting to be invested, and where the remainder of your cash resides. When you change accounts, the previous becomes inactive (after the transfer of all funds within), and that is not usually the date on the timestamp. This database will keep a record of which "Core class" account was used and when. There are also features like dividends on the "Core class" account to be recorded, and stats to be compiled. I want the forms to autopopulate with the "Core class" account for all securities trades, using the AcctActive binary, I think it's a lot easier to code than what you're asking for. I'm not even sure I need the dates there, but I'm going to put them there for now, I can always delete the field later if I don't need it.
I am also mulling over whether to drop using the "cash" account in the database. For all practical purposes, the deposits, withdrawals, and other cash transactions could come directly from the (active) "Core class" account. What do you all think?
4. I have already done this, I had trouble making a proper form for making the account type records in tblAcctTyp. I settled on 7 account types and 3 fields to denote the 3-4 variations of them. I now have a table of 10 total account types, 10 records: