Given up on stock control

SeanDelere

Registered User.
Local time
Today, 10:35
Joined
Sep 7, 2004
Messages
51
Thanks to all the people who have tried to help over the past few weeks in my quest to build a database for stock control of my shop.

I thought Access would have been the tool of choice to do such a thing but it is just too complicated and too time consuming trying to understand how things should be done.

As no one has been able to provide an example database I presume I am just trying to do something that can't simply be done. I now see why custom written databases cost so much money.

Thanks once again for all the help - I'm off to fire up Excel again to see if I can bodge something up.
 
Access should be able to manage stock control far better than Excel ever could, but if you think Excel is the better choice, good luck.

I haven't been involved in the other part of your attempts to find your answers because I've been sick and had to travel due to Hurricane Ivan. (I'm in south Louisiana.) But I'm going to make a couple of comments that are intended to be helpful. Unfortunately, they could be taken as a personal criticism, which is NOT my intention. But sometimes you have to say the things that need to be said.

If you honestly think that Excel can do this and Access can't, you betray a certain mind-set. Flat-file thinking will limit and hamper your designs every time, because the two programs are not the same and never will be the same. The problem for beginners in Access is that datasheet views look SO much like an Excel spreadsheet that they simply MUST be the same, right? Wrong. Excel, well,... excels in dealing with certain types of data layout for visual presentation and it includes formulas, but eventually you will reach a limit with it and you will tear your hair out wholesale. Access has much higher limits and greater flexibility, but you have to leave two-dimensional (spreadsheet) thinking behind. In design terms, this is a quantum leap in modes of thought.

My advice to folks planning to stand up ANYTHING complex in Access is always the same. First, get a dry-erase board and markers, a box (not a pad - a BOX) of sticky notes and some pens. Now start identifying elements of your business. You talk about stock control. OK, I'll generalize a bit, assuming this is a sales case (but it also works for a manufacturing situation, just another wrinkle or two.)

You have inventory items. These items have descriptions. They enter your inventory through transactions that add stock - incoming shipments, returns, stock level corrections (after a miscount, e.g.). They leave your inventory through transactions that remove stock - sales, shrinkage (defects, theft, damage, miscounts). Your suppliers can provide the items. Each supplier can perhaps provide different items, maybe with some overlap. Your customers can purchase your stock. (In the manufacturing case, one of your other departments is your customer and your customer table gets EASY.)

OK, what I have done in the above paragraph is identified some elements of your functional business model. WITHOUT THIS MODEL (tailored for your real business), PACK IT UP AND GO HOME. You will NEVER get Access to help you. But for that matter, Excel won't give you much more help, either.

Now, on your dry board, identify some tables that describe your stock items. Identify your suppliers. Identify your customers. You should have a table of stock descriptions. A table of suppliers. A table of customers. The sticky notes will be used to represent individual records in a table.

Next, you have to decide how these business entities relate to each other. Each supplier has a different list of things that company can supply. The sum of those lists MUST cover every item in your item description list. You don't need to duplicate the list for each supplier, though. You can make what is called a linking table, which lists one item identifier number and the supplier number of the company from which you can get it. It is fair game to have multiple entries per supplier AND multiple entries per item, but you would never have duplicated records in which you have the same exact supplier and item combination in this list twice.

So on the board, you have a few stickies for each supplier and for each item. You can then make stickies for each supply source combination. Draw lines between the stickies to help you see how that relationship works.

OK, when you order items, the supplier supplies them. When the items come on board, you have a bill of lading that should report the number of each item you have received. This is the start of your "real" inventory. Your bill of lading becomes an entry in a table, and the line-items of that bill become entries in a child table. They are your inventory-add detail records. Again, make some stickies for each bill of lading, and make some more stickies for each line item in that bill. Draw lines to see how it works.

When you sell some items, your customer has a detailed purchase order, and the details report the number of each item sold. This is another part of your "real" inventory. The PO becomes an entry in a table. The line-items in each PO become entries in a child table. They are your inventory-remove detail records. Again, the stickies will help you SEE the relationship. I am talking visualization aid, nothing more, but it is a way to help you break out of the two-dimensional thinking mode. And that is crucial.

By now you should have a messy dry-board, but it has enough for you to see the relation between inventory and add/remove transactions VISUALLY. The SUM of adds and removes for a part number tell you how many items you have on hand or how many items you need to order, or whatever. Detailed stock return and shrinkage transactions also contribute to the stock item counts. You can have each of these transaction types in a separate table and just use something called a UNION query to form the totals.

Why did I send you down this path? Because in order to program it, you have to SEE it with your mind's eye. If you are thinking along Excel lines, you tell me you cannot see your model. And that is what I hope to help you to see. 'cause without the model, you are dead in the water.
 
I thought Access would have been the tool of choice to do such a thing but it is just too complicated and too time consuming trying to understand how things should be done.
- Access is the correct tool for the project. Please don't feel stupid because you couldn't create the database you need. You have chosen a fairly complicated business process for your first project and unfortunately it is one that actually requires a little programming to implement properly. Just because you know what your dream house would look like doesn't mean that you could create the engineering drawings necessary to build it soundly. Creating a database is the same problem. You are a business person who presumably understands his business. That doesn't make you a database developer. Most non-technical people ease into the process gradually and get a chance to understand how the interface works and how to build queries before they need to put anything sophisticated together.
As no one has been able to provide an example database I presume I am just trying to do something that can't simply be done.
The problem is that db's with this type of functionality are rarely built test purposes. I have created several with the functionality you need. I can't send them to you because they are proprietary. I can only describe what they do.
I now see why custom written databases cost so much money.
People always experience sticker shock when they try to contract for custom software. Think about it though. The software you buy in a box such as QuickBooks actually costs hundreds of thousands of dollars to develop and improve every year. The fact that you can buy them for $100-$200 means that the development/support costs can be amortized over hundreds of thousands of copies sold. Custom software has ONE and only ONE customer and so that customer must foot the entire bill.

If you haven't already looked at it, you might consider Quickbooks Pro. It can help you manage inventory. Unless you have some unique custom requirement that Quickbooks can't handle, you'll save yourself a lot of money. Not necessarily a lot of frustration though since Quickbooks is pretty complicated to use due to how much of your business it manages.

If Quickbooks won't do it for you or you still want something custom, send me a PM and we'll see if I can help you.
 
Thanks very much Pat and The_Doc_Man.

My "threat" to use Excel was really just that - a threat. As a user of spreadsheets since the days of 123Calc (I think that was what it was called) I feel comfortable with a spreadsheet. I am certainly not an expert Excel user but it is relativley straight forward to search formums like this one to find the answer I am looking for. My problem with Access is knowing what question to ask. As an example, a Query does not give the results I expected but the problem may not lie with the Query itself but rather the underlying realationships between the tables it is based on.

After closing Access down and spending an hour or two in Excel I realised it would not do what I want either.

After reading Pat and The_Doc_Mans posts I am back in Access and starting from scratch. I don't have a whiteboard but a large piece of paper on the floor is working out fine.

The tables that I have are populated with real product data from my first months trading so I can play around with it. So I don't get totaly frustrated again (sorry for the mini rant yesterday) I have knocked up a couple of Querys using techniques I understand and made a form for each one so I can at least do some searching and filtering. It may not be much but at least I can see something for all the work I have put in.

I have looked at both Quickbooks and Sage (popular here in the UK) and dismissed them both on two counts. First is the price. The versions that would appear to do more or less what I want cost several hundred dollars and I simply can't aford that kind of money at this time. The second is (as you pointed out) the steep learning curve needed to get the most out of them.

I now know that Access can do what I want to achieve and I am going to make it do it!

Many thanks once again for inspiring me to continue.
 
Hang in there Sean - don't be afraid to post even what you may think is a silly question. Everyone has to start somewhere and there are some really good experts here willing to help if they can.

Col
 
Hi,

I was going to (years back) try to make an office stationary db to track contents of the stationary cupboard etc, possibly for several teams etc... dreams!!!...

Anyway, I'd be interested in getting the sort of data you need to hold to do a proper stock tracking db for the future. If you can post up the sorts of info you need to hold and invoice dispatches recieving over several trips that sort of thing then I can start to make one (Might even try for Asp version heheh).

I'd be grateful if you can as most companies already have a system and aren't likely to let me pry into the invoicing/accounting side of stock control.

I think I might even try the Access 2003 (and all its 'updates to users' against access 2k) :) :D

Vince
 
Isn't the Orders example db that ships with Access already half way there?
 
I am using the version of Access that shipped with OfficeXP and it doesn't come with the Orders database.

Over the past day or two I have (in my opinion) come on leaps and bounds.
I am taking a more structured approach now and am working through each task I need to do step by step. I realise this probably isn't the correct way to do it but I am creating a form and underlying query for each task. Although I will not end up (in this first stage anyway) with the fully automated, error checking system I want, I can at least see progress and will end up with tables populated with valuable data.

If any of you experts reading this could help me with one thing I would much appreciate it.

In both my Orders and Sales tables I am going to end up with multiple records for a particular ProductID for selling the same item to different people on probably different dates. How do I structure my Query (I presume a Query is the tool of choice) to bring records with the same ProductID together so I can create total sales figures for a particular item?

Sean
 
Access still ships with Northwind so you have a copy of that. Northwind is an order entry system which is exactly what you are trying to create. It does not maintain inventory though so you would need to add that logic to the order form.

Take a look at these example database. I collected links to the best samples from the MS download site. They are full of useful techniques.
Links to Samples
 
I am going to end up with multiple records for a particular ProductID for selling the same item to different people on probably different dates.

I'll address this in brief. You would need to keep track of this in a multi-layered table approach.

Each item you sell has an item description, so you don't need to repeat the description as long as it has a unique item ID. Each sales invoice has a unique invoice ID. What you need to express the information is a query on a junction table that includes something like this...

tblInvItem
long (fk) invoice number - pointer to record showing date, customer, etc.
long (fk) item number - pointer to record showing item description
long - or integer - quantity sold

Now, you can query this either of two ways... - Group by Invoice, order by item number - gives you a detailed list of what was sold to whom... OR group by item number, order by invoice, to see who's buying each item.

Once you have THIS query, you can do second-layer queries to join the invoice number and item number to the primary records for invoices and items. But the invoice line-item table is where you start.

The same principle works in the opposite direction, 'cause your orders from suppliers will also have a number, say PurchaseOrder. The item descriptions will be the same. Your junction table will include

tblPOItem
long (fk) PONum
long (fk) item ID
integer or long - quantity

You might also need to include a Yes/No for these to determine if the supplies have been delivered yet, or are merely on order awaiting delivery, but that is a petty detail.
 
Thanks for that Doc.

I have a lot to do and think about.

Will be back soon with more questions I expect.

Sean
 

Users who are viewing this thread

Back
Top Bottom