ACC2: Combo Box's AfterUpdate Event Fails

Last reviewed: May 14, 1997
Article ID: Q125593
The information in this article applies to:
  • Microsoft Access version 2.0

SYMPTOMS

Moderate: Requires basic macro, coding, and interoperability skills.

If you choose a combo box's drop-down arrow, close the drop-down box without selecting an item, and then type an entry in the text portion of the combo box, the combo box's AfterUpdate event fails to update the information in the combo box.

CAUSE

The combo box's Column property is not updated if you enter a value in the combo box manually after choosing the drop-down arrow.

RESOLUTION

To work around this problem, requery the combo box as the first action in your event procedure or event macro. For example, given a combo box named MyCombo, you could requery the combo box with the following Access Basic statement:

   Me!MyCombo.requery

STATUS

Microsoft has confirmed this to be a problem in Microsoft Access version 2.0. This problem no longer occurs in Microsoft Access version 7.0.

MORE INFORMATION

A combo box's Column property is not updated if you type an entry in the combo box manually after choosing the combo box's drop-down arrow. If you are copying the value of the combo box's Column property to another control with the AfterUpdate event, you must requery the combo box as outlined in the "Resolution" section earlier in this article in order update the value of the Column property before you copy the value to another control.

Steps to Reproduce Problem

CAUTION: Following the steps in this example will modify the sample database NWIND.MDB. You may want to back up the NWIND.MDB file, or perform these steps on a copy of the NWIND database.

  1. Open the sample database NWIND.MDB.

  2. Open the Customer List query in Design view. Add the Contact Name field to the query's third column. Save and then close the query.

  3. Open the Orders form in Design view. Change the Bill To combo box's properties as follows:

          ColumnCount: 3
          ColumnWidths: 2;0;2
          ListWidth: 4 in
          AfterUpdate: [Event Procedure]
    

  4. Choose the Build button to the right of the AfterUpdate property. Enter the following code in the form module that opens:

          Sub_Customer_ID_AfterUpdate ()
    
             MsgBox Me![Customer ID].Column(2)
          End Sub
    
       Close the module.
    
    

  5. View the form in Form view.

  6. In the Bill To box, select Frankenversand. Note that a message box with the text "Peter Franken" appears. Choose OK.

  7. In the Bill To box, type "Godos" (without the quotation marks) and then press ENTER. Note that a message box with the text "Peter Franken" appears. The message box should display "Jose Pedro Freyre." Choose OK.

To correct this problem, add the following line to the combo box's AfterUpdate event procedure. Add this line before the MsgBox statement:

   Me![Customer ID].Requery

Note that you can substitute the Recalc method for the Requery method. The Recalc method may provide better performance if you are not performing many floating-point operations. If you are performing many floating-point operations, the Requery method may provide better performance.

REFERENCES

For more information about combo box properties, search for "combo box: properties," and then "Combo Box Control Properties" using the Microsoft Access Help menu.

For more information about the Requery method search for "Requery," and then "Requery Method" using the Microsoft Access Help menu.


Keywords : FmsCmbo kbusage
Version : 2.0
Platform : WINDOWS
Hardware : X86
Issue type : kbbug
Resolution Type : kbworkaround


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: May 14, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.