VB6 has the following features that make it the ideal tool for me:
2. Users of the product won't have to purchase multiple copies of MS
Access.
There is the royally free runtime and deployment system for ms-access that
creates a windows "MSI" install package. This packed ms-access application
includes the runtime, and thus the end user does not need to purchase
ms-access. There are some issues of installing this system, but it simply
installs as any other windows application. Your users do not have to know it
is ms-access.
3. I can thread the app and use control arrays.
Can't say I every needed to thread an application. (vb support in this area
is not that great anyway).
And, yes..ms-access does lack control arrays, but there are many
workarounds.
If you are looking to "work" withal group a controls, you can:
1) use a option group frame
This often helps, as a "set" of similar controls can behave
together - this only works for the "same" type of control (eg: a bunch of
check boxes, or radio buttons, and you only want to select ONE of the
buttons).
2) Simply use a naming scheme
This means you name the controls like
strCalDate1
strCalDate2
strCalDate3
Then, to work will the controls, you would go:
for i = 1 to 3
msgbox "value of contol " & i & " is = " & me("strCalDate" & i)
next i
So, you can use a "loop" and expression to reference a control on a
form.
3) Use the tag property of a control.
dim vCon as Variant
for each vCon in me.Contorls
if vCon.Tag = "Group1" Then
.......
With the above, you don't have to use a naming scheme, but you simply enter
a "group" name that you make up into the controls "tag" property. You then
loop through all controls and look for the same tag property. Some even
suggest at form startup you load the whole thing into a collection, and that
also works well.
4) Use a continues sub form
Very *often* a set of controls that repeats can be substituted with
a continues sub-form.
So, while you don't have control arrays, there are a good number of
workarounds. Note that the ONE main drawback of the above suggestions that
can't assign a common click event to the whole group (with a continues form,
this is not a issue, but the other 3 suggestions allow you to "work" with a
group of controls...but they DO NOT share common events as a control array
would). However, to get controls to share a common event, often you can just
type in the function name right into the properties sheet (and, if you
highlight 10 controls, and type in the event name (has to be a function),
then all 10 controls will get that event (so, once again, there are some
workarounds to get controls to share the same event.).
Also, to me, the largest problem with VB is that you don't have a great
report writer like ms-access..and that you will miss the most....