Colvin, you're asking a lot if you have little or no experience with
MsAccess to be able to build a robust application that is 'idiot proof' and
suitable for a commerical application.
You might want to take a look at: Microsoft Business Solutions at :
http://www.microsoft.com/BusinessSolutions/RetailManagementSystem/rms_productoverview.mspx#EDAA
as a 'standard'. They list a lot of the features you need to consider in
building your application.
Now to your question restated:
I need to maintain an inventory of fish. Fish come in about 1000 different
types. I need to start with an inventory of each type of fish I currently
hold. As time passes, I need to add any fish that I receive from my
suppliers. I need to record the number of fish removed. Fish can be
removed by selling them, by dying. This needs to be a simple application
that poorly trained clerks can interact with.
You will need at least the following tables and forms.
Table:
FishType (actually there may be additional tables like WaterType
(fresh/salt), FishCategory (goldfish, minnows, darters, catfish, etc.
(super categories of fish to help sort out your 1000 different fish types).
FishTransactionType
TransactionTypeID (pk) TransactionType(text) Credit_Debit (true/false)
1 Died Negative
2 Received Positive
3 Sold Negative
4 Lost By Inventory Negative
5 Gained by Inventory Positive
etc.
FishType
FishTypeID(key) FishTypeText
1 feeder goldfish
2 Koi Carp
3 Striper Bass
etc.
FishInventory Primary Key (FishTypeID,InventoryDate)
FishTypeID(fk to FishType Table) InventoryDate (date)
FishCount(integer)
1 09/01/2005
1000
2 09/02/2005
50
etc.
FishTransaction:
FishTransactionID (Primary Key) FishTypeID (fk) TransactionTypeID
TransactionDate FishNumber (new fish added as a positive number, fish
lost, sold as negative numbers)
1 1
3 10/18/2005 30 (30 feeder
goldfish sold)
2 2
3 10/18/2005 2 (2 koi carp
sold)
3 1
1 10/18/2005 5 (5 goldfish
died)
4 1
2 10/18/2005 300 (300 goldfish
received from supplier and added)
etc.
Table Relationships:
FishType 1--M FishInventory (on FishTypeID)
FishTransactionType 1--M FishTransaction (on FishTransactionTypeID)
FishType 1--M FishTransaction (on FishtypeID)
Forms:
FishTransactionType
FishType
FishInventory
FishTransaction (TransactionDate -->Default to now(), FishType(comboBox
lookup from the FishType (show the text sorted by name, store the
FishTypeID)) TransactiontypeID (comboBox from TransactionType (show the
Text, store the TransactiontypeID)
Reports
You will have to build a set of queries to deliver the reports you want, but
with the table structure above you will be able to get all the answers you
have posted here.
You will start with the most recent Inventory count for each fish type,
query the transactions after that date, add the Positive type and substract
the negative type.
This should be enough to get you started.
Ed Warren.