My reason for creating the forms in VB is
to have a good user interface for the faculty and staff who would using the
database.
So, in exactly what way was the interface different due to using ms-access?
So, why exactly do you get a good interface by using VB? It is very silly to
simply make a statement like "to have a good user interface...", and then
give NO CONCRETE examples as to what you mean?
In fact, the WORST applications I have ever seen are those with a VB front
end to a ms-access databases. Why is this so?
Well, one reason is that VB forms lack consistency. Now of course this lack
of consistency is going to be the fault of the developer. However, ms-access
forms tend to look more similar from form to form. Further, things like the
navigation buttons are always in the same position. Thus, you tend to see a
LOT MORE consistency in terms of the UI for ms-access forms. Since VB does
not force any kind of consistency, then you tend to get really weird and
un-consistent interfaces in VB forms. I seen some Vb appcltions where from
one form to the next, the navigation, and even how you select, or even edit
a record is complete different. You don't see that very often in ms-access.
Of course for the main form, navigation buttons will be RARELY be used in
ms-access also. Only a VERY very poor access developer would consider
opening a form bound to a large table WITHOUT a where clause. Since that
where clause will restrict the record in the form to "one" record, then the
navigation bar will be disabled by any sane developer.
So far, the interfaces will be only for entering, saving and
printing data. But because the total area of each interface, I'm rethinking
my approach.
The data entry problem is rarely the issue. The real issue is searching, and
how you find that record to edit? Here is some thoughts on how searching
should be done. While the following screen shots is ms-access, it applies to
any development platform.
http://www.attcanada.net/~kallal.msn/Search/index.html
Some people think that searching of names is to be allowed in the form via
ctrl-f, or even worse is some think you can use a combo box. Well, gee, we
really do need a society to prevent cruelty to our users!
Note how the above does make much use of continues forms. Since you don't
have continues forms, then you must revert to using some data grid control
(a LOT MORE work!). Continuous forms is only of many spectacular UI things
that we have in access that you don't have in VB. The same goes for
multi-column list boxes. If you look at the following screen, on the left
side is listbox, and on the right side is continues form. Again, both of
these features don't exist in VB. (so, you have to plug in some grids, and
start writing fingers off with tons of code...yuk!). Further, even the large
combo box to select how the search is going to occur (at the top of the
screen) is multi-column (again, lacking in VB), and further, that combo box
is filled automatically in ms-access, ad NO code is needed.
Here is the shot:
http://www.attcanada.net/~kallal.msn/test/gs1.gif
Right now, I think that my approach is fairly reasonable, considering that
this it my first time attempting a project on the scale that it will be used
on.
I am not sure what you mean by reasonable. If you mean that you want to
spend 3 x times the development cost using VB in place of ms-access for no
apparent reason, then perhaps that is reasonable. Most data centric applies
in ms-access CONSERVATIVELY can be completed in 1/3 the time that it takes
in VB (many developers even state that the ratio is even higher). So, your 3
months of work will become 9 months in VB. If you are looking for more work,
then don't use ms-access!
Since one is so much more productive in ms-access, we actually wind up with
a better UI because we can spend more of the software budget in that area.
For example, take a look at the following screen shots for my report
screens. If you look close, you will see that I use the native listbox, and
combo box for ms-access. These un-bound forms then launch reports (using the
fabulous sql "where" clause that they have). The end result is a far better
UI, and MUCH MUCH LESS code then the equivalent VB solution. It is this less
coding time that allows you to add more features like these report screens
to your appcltions.
Here is those report screen shots:
http://www.attcanada.net/~kallal.msn/ridesrpt/ridesrpt.html
You also need to further explain why you think VB is better for the UI. You
don't have the concept of sub-forms in VB (a huge loss). The problem is that
forms in VB are very simple. The learning curve to master ms-access forms is
FAR MORE difficult then the simple VB forms. In ms-access, you have least
double the number of events (thins like before update, after update , on
insert, on current...this list is huge). If you don't take the extra time to
learn how ms-access forms work, then you DO NOT get the increased production
over VB that I was talking about.
Even simple things like cancelling a form load in access is complete
different then VB. In ms-access we have both on-open event, and also a
on-load event. These two events have very distinct and different uses in
access. The on-open has a cancel event which means the form loading CAN BE
CANDLED (coding this in VB is real pain). Once the form loads, then we can
use the on-load event for code/variable initialize etc. Having two nice
events in place of the VB one event is a typical example the zillions of
places in access where we save lots of coding. I could write on for hundreds
of pages about features that save time. If ms-access could NOT save time,
then why ever use the product?
Here is a good article of mine on sub-forms, something I dearly miss in VB.
http://www.attcanada.net/~kallal.msn/Articles/fog0000000005.html
Futher, the coding language in access is VB6 anyway. As always, what tool
you use is going to depend on what you are tying to accomplish. However, for
simple data entry type forms and searching/editing of data, I can't imagine
why one would use VB6?
VB6 has some advantages in some areas, make no mistake about it.
Not knowing more about your applications, I can really say for sure that it
is better to use ms-access. However, for general data entry type appcltions,
there is little reasons to use VB. ms-access is FOR data centric
applications. Data centric products like FoxPro, or ms-access would NEVER
exist if VB was just a good for the task. Why were database products EVER
INVENTED if this was not the case?
As for making something user friendly? Well, that is entirely up to the
developer, and has little to do with using access, or VB. You can easily
make a mess in both of them! You can make a very good UI in both of them
also!