Visual Basic Code of the Week (COTW)
Issue #18
All content and source code is Copyright (c) 1997-98 by C&D Programming Corp. None of the source can be reprinted in any manner without express written permission of C&D Programming Corp.

Requirements for this Issue

The source code in this issue is designed for Visual Basic 4 and 5. With some modifications it should be able to run in VB3 as well.

In this Issue

This issue shows how to load a combo box with some information from a database table. It is useful for those combo boxes in your application such as Payment methods or Shipping methods where there are several methods, but they need to be configurable. Since they need to be configurable you store them in a database table. Using the combo box this way is more flexible than using the DBComboBox since it does not have to be bound to a data control.


Public Sub DBLoadCombo(sDB As String, sSQL As String, cmb As ComboBox, sDisplayField As String, sIDField As String)


Other Comments

Some people probably are not familiar with the ItemData feature. The Visual Basic Help file describes it as such:

"The ItemData property is an array of long integer values with the same number of items as a control's List property. You can use the numbers associated with each item to identify the items. For example, you can use an employee's identification number to identify each employee name in a ListBox control. When you fill the ListBox, also fill the corresponding elements in the ItemData array with the employee numbers. The ItemData property is often used as an index for an array of data structures associated with items in a ListBox control."

The only limitation to the ItemData property is that the data type is a Long. It some way it would be nice if it were a Variant, but it would not be as efficient.

You will probably want to set the Style property of the combo box to "2 - Dropdown List."

Return Value

None unless an error occurs. If an error occurs it will be raised to the caller.

Sample Usage

The below example uses the DBLoadCombo routine to fill the cmbPaymentMethods combo box with all the available payment methods.

       sDBName = "C:\COTW\COTW.MDB"
       DBLoadCombo(sDBName, "SELECT * FROM TABLE", cmbPaymentMethods, "Description", "ID")

The resulting combo box will contain something like this:

List Array:
American Express

ItemData Array:

Source Code

To see the source code for this issue you must be a subscriber to Code of the Week. If you are a subscriber the source code is available at the following address:

What to look for in coming issues

In the last issue we mentioned a Visual Basic class for adding fields, indexes, queries and other database objects from VB. We are still working on this class. As soon as we complete it, it will appear in Code of the Week. If you have any other database operations you are interested in getting information about, please let us know at our feedback page at

This document is available on the web

Paid subscribers can view this issue in HTML format. There is no additional source or information in the HTML formatted document. It just looks a little better. Just point your browser to


That concludes this issue of COTW. We hope you find the source code useful in your development.

The below describes the ways you can supply us some feedback about COTW. We would like to see our members help mold COTW into the best Visual Basic source code resource available. But to do that we need your feedback about what you like and what you do not like about COTW.

Future Issues

We are currently planning for the next several issues of Code of the Week. If you have any suggestions of source code that you would like to see covered, please jump

How to tell us what you think

If you have any suggestions for topics you would like to see covered or questions about this issue, please email them to or use online feedback form at

If you have any source code you would like to submit for possible inclusion in COTW, please fill out our online submission form at

Contact Information

C&D Programming Corp.
PO Box 20128
Floral Park, NY 11002-0128
Phone or Fax: (212) 504-7945

Subscription Update

Thank you for trying Code of the Week for Visual Basic.

Your free trial expires after you receive your fourth issue. If you want to continue to receive Code of the Week you can get 52 issues of COTW for only $19.95. This is a full year of Visual Basic source code and information to help with all your development. So don't wait, subscribe now! The quickest way to subscribe is to jump to our online order form at