vb or not

I think I closed my previous quesition too soon.  I'm just starting to learn vb6 partly because I'm looking to build my own billing program for my small business.  I have ~70 customers the database will contain names, address, phone numbers, hopefully an auto bill field so standard charges can be done monthly, a series of codes for billing a variety of different parts & services.  It would need to save one years worth of previouis charges.  And I would need to be able to search on the above criteria.  Essentially I need to send out invoices, and statements, and keep a record of what I've done.  Does this sound like a VB project???  I'm not under any time constraints, I already have a program for this but it's not specific to my business and lacks flexibility.
Who is Participating?

Improve company productivity with a Business Account.Sign Up

rspahitzConnect With a Mentor Commented:
I'd agree that VB is a good choice for such a project, however, the larning curve will be two-fold.  First, you'll need to become reasonably competent in VB; secondly you'll need to become quite compentent in dabatase design.

Weak database design is probably one of the major failures in many companies, because they either fail to take into account one or more features (causing the need for a redesign or, worse, a patch to overcome the weak design) or they simply didn't organize it very well, meaning that the access of the data becomes difficult.

In your case, "names, address, phone numbers, hopefully an auto bill" means that you'll need a customer name table, which sounds simple enough, but what do you do if they are small businesses with multiple addresses?  How about if there are several contacts in that company?  And with phone numbers, you really need a separate table: primary phone number, alternate phone number, cell phone number, pager number, fax number, personal phone number, etc.

After that, you'll need a table to track inventory or services, which then get billed on purchase, attached to a PO, which has line items and could have back-orders.

A lot depends on the specifics, but definitely take lots of time to evaluate all of the database pieces before you begin the VB side.  Also, if you use VB alone, building the (ADO) database is possible but awkward.  To do it more easily, use Access to build the DB...which may be enough since it supports queries and reports.  If you need extended power, then move up to VB to access the records on demand and manipulate the data.

Will the database (or any part) be distributed to customers?  If so, you may want to split it into a separate "distribution" database, or to password protect it and build a VB shell to access only what the customer can see (such as the inventory.)  Of course, then why not just drop that stuff onto a website?
 Sounds like a perfect VB project to me. The data could be stored in a variety of formats. Personally, I often like to just write it to a sequential file, then load all the data in when you load the program. However, you can also use Access file format. If you want the reports to look really good, you might consider using Crystal Reports. That has a control that you can add to your VB project to allow it to write to the report forms.

Yep the perfect opportunity for VB to flex its muscles..

Personally I would use either Access or SQL etc to hold your Database, very simple to use and provide excellent opportunities to do numerious task with your data simply and effectivly, such as searching and manipulating data.

This is a guess but I'm assuming your relativly new to VB, if that is the case then the first thing I'd do is familierise myself with the technolgies you will use, such as the basics of VB the database management system you'll use (ie SQL or Access). There are so many site around that will help you its hard not to find them.

As your new to VB id stay away from Crystal Reports, for me there a pain in the ass.(although to be fair we I work from the working version is quite old)
Vb has its own reporting tools that are very simple to use and provide the basic functionality you will need to create invioces etc..

Well good luck and if there is any specific coding questions you need help with I'm sure both myself and the rest of the experts will be able to help..

Madmarlin.. ;?)
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Use VB with ADO and you're good to go.  I'm currently working on a project that will take my company's billing system off mainframe and replace it using VB.net.

VB 6 would do well too, but the CIO wants us to move to the next level of development tools, whcih is .Net.

There's really no other programming tool that is easier to create robust Windows applications than VB.

What database are you using?
Although I have been programming VB for 15+ years now, I would say (because you are relativily new to VB) that this is a perfect MS-Access project
Depending on how you want to store the data this could be an excellent project for VB or for the database engine.  

What program are you using now?  Is the datafile accessible from VB?  Do you know what the program you are using now is written in?  It may be possible to modify or enhance it.

rspar1Author Commented:
Wow, good input!
Yes I'm very new to VB.

Currently I'm using a shareware program called Medlin, that started as a dos program, and I've bought the windows upgrades.

It's main draw back is also it's plus, everything I bill has to be on a 4 digit code that I specify. Problem with that is every time I have something a little unusual I have to make a new code for it (my code list is enormous).  And if I delete the code later it also deletes the description in the history for that customer.

The phone numbers are in a comment box which is fine by me I don't search on them.  I don't have any inventory.  And my reports, and invoices print on plain paper which I like $<.

I wasn't sure what I was going to use for the database, I thought a plain text file was possible, but probably not the best choice speed wise.  Medlin loads everything into memory and recall is instantaneous.

This should tell you how new I am, Access is part of Office??  The closest thing to programming I've ever done is Dbase III, and I've have to get in the way back machine to remember that.  I have patience, time, and stubbornness on my side.

I take it that if I use Access to store my data in, I can manipulate it with a VB program?
rspar1Author Commented:
Somewhere I think I have Office 95 (dinosaur I know) would Access be in that?
Access is part my MS Office Professional.  

VB can manipulate an Access database but Access is a full feature DBMS which allows you to build forms, reports, queries, and code.  Access uses a derivative of VB called VBA (Visual Basic for Applications).  

In some ways it is better especially for Access data than VB.

If you can get a copy of Access to test dirve, it has several very good sample databases already built to use as examples and to help you learn.  One of them in fact incorporates a billing capability.

I assume you will be using this as a single user.  Access is built (especially Access 2000) for small groups and not really for many users simultaneously.  Your application sounds like only one user at a time so Access will be more than sufficient.

As a $ saver you might initially look for a copy of Access 97 at a garage sale or computer swap meet.  It is available as a standalone product outside of the Office suite.

I think you have an excellent project and you should have a lot of fun learning VB and Access.  One warning, the project may be rather large and a little more complicated than you might think at first glance.  

With some thought you should be able to break it into small pieces that can be built and used without having to complete the entire project.

Good luck
rspar1Author Commented:
Thanks, there's a monthly radio/computer swap meet in the TRW parking near me, I'll check it out for Access 97.  I'm starting to get a sense of the size of the project but thats ok.  Once I get far enough along to see partially working parts I'll be ok.

I wish I could get into the  program I use now and just add a tweak to it.
rspar1Author Commented:
Hey I can make a command button, and do basic math using data stored in several variables.

Hopefully I'll have something working by Christmas, that may be optimistic.
  As I mentioned in the first comment, if the data is simple enough, you can just store it in a sqential file (or series of them). Then the program can load all the data into memory when it is run. Besides simplicity, this makes for a small program size. Since I write shareware and distribute it on the Web, this can be important to me. Of course, this only works if you have a limited number of data entries, but it sounds like you do from your description.
   Of course, if you create your reports with Crystal Reports, linking to an Access database helps simplify the report input.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.