In company that I work for, I was given the opportunity to write an application, which would replace the old Excel workbook, which is used to plan the production queue. Because VBA was simple and Excel was easy to use, for few years this workbook was used by several people to plan/add changes/notes about current production status. Whole workbook has few feature's (additional information about products are stored in different sheets, etc), but is lacking many more.
I sketched how it looks like (I recreated it from memory, simplified the layout, so it can be readable):
This is only a sketch, but the original one is as ugly, impractical and limited as this one.
I was hoping to create simple forms based application, which could be used by at least a few people simultaneously (each one having his own copy, though all copies would use single MS Access database for storing information).
What do I need to know about if I plan to accomplish this? What are the guidelines for creating multiuser applications?
I would also want to know if is there any way to recreate a similar layout using one of free/included .NET controls? Labels and alike are not the problem, but people need to move those colorful bars easily as well as add new ones in as easy as possible. I know that canvas-like controls exist in other languages and I was thinking about using one here. Is this a good choice or is there another, better one?
The DevExpress Winforms Scheduler isn't free - but looks like it would do pretty much everything you need. Using a component such as this (there are others) would most likely be less expensive for your organisation than creating one from scratch: plus I've found the DevExpress fellows to give top-notch support and help.
Although their samples are oriented mostly towards C# and VB.NET, this would work just fine from Managed C++.
As others have stated, avoid Access for data storage. If this is a single-user system you may want to consider simple XML, or if a relational database is required database engines such as MySQL or SQL Server would definitely be a better bet.
If you are already going to re-write/reimplement what you have, I'd stay away from access.
You're probably best off (in time and money) to buy a control from one of the big name vendors.
As someone who has some fairly large amount of code stuck in Access my recommendation is if at all possible run to either ms sql or preferably mysql. Don't worry too much moving the db to one of these is not real hard. Then you have a wide variety of tools to choose from. After you move the data then determine what the right tool is. The open source world has a lot of good report writing graphical tools I happen to like Birt which can run against most db's.. Access is a real dead end, good for quick hacks but horrible to live with...
My memory tells me Access had an 'Upsizing wizard' option to port the db into SQL. This would allow you to use SQL server instead of a single Ms Access file.
see http://support.microsoft.com/default.aspx?scid=kb;en-us;Q237980
The problem with using an Acess db is that the file is locked when you open it. This means multiusers would have a big problem if more than one person wants to write/read it. XML is also not an good option because its just a single file and would also have problems with multiple users. XML is also SLOW and takes up a lot of memory. If your data will grow this wouldn't be a good option.
An actual SQL database does not suffer this problem and will allows multiple users.
As for controls for your UI. I am not aware of any standard controls that would do what you want. You probably would do best to make your own custom control.
Looking at your sketch, it looks alot like a GANTT chart (ie Ms Project)
I agree - use just about anything other than MS access. Might sound cheap and easy but there are many other cheap and easy ways of doing things (that won't cause you to lose sleep at night).
If you're looking for ways of representing this, you could have a look at this SilverLight Gantt chart.