Microsoft KB Archive/218621

= HOW TO: Have List Box Respond to Entire String You Type in Access 2000 =

Article ID: 218621

Article Last Modified on 10/11/2006

-

APPLIES TO


 * Microsoft Access 2000 Standard Edition

-



This article was previously published under Q218621



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

This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).

IN THIS TASK
SUMMARY
 * Method 1: Use a Combo Box
 * Method 2: Use an Unbound Text Box with a Visual Basic for Applications Procedure



SUMMARY
When you type characters in a list box, the list box selects the first item in the list that corresponds to the last keystroke that you type.

For instance, if you type "f", the list box selects the first item in the list that begins with "f". If you type "fa", the list box selects the first item in the list that begins with "a", even though you may expect it to select the first item that begins with "fa". This article describes two ways to have the list respond to the entire string of characters that you type.

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. back to the top

Method 1: Use a Combo Box
Use a combo box instead of a list box. Using a combo box automatically selects the first item in the list based upon all characters that you type.

back to the top

Method 2: Use an Unbound Text Box with a Visual Basic for Applications Procedure
Use an unbound text box to type in, and use a procedure on the Change event of the text box to set the value of the list box to the first item that matches the current text in the text box. To do so, follow these steps.

CAUTION: If you follow the steps in this example, you modify the sample database Northwind.mdb. You may want to back up the Northwind.mdb file and follow these steps on a copy of the database.

NOTE: The sample code in this article uses Microsoft Data Access Objects. For this code to run properly, you must reference the Microsoft DAO 3.6 Object Library. To do so, click References on the Tools menu in the Visual Basic Editor, and make sure that the Microsoft DAO 3.6 Object Library check box is selected.

 Open the sample database Northwind.mdb.  Create a new form called frmTestList with the following properties:   Form: frmTestList -  Caption: frmTestList

ListBox -  Name: lstCompanyList RowSource: SELECT CustomerID, CompanyName FROM Customers ORDER BY CompanyName Column Count: 2 Column Widths: 0";1" Bound Column: 1

TextBox ---  Name: txtCompanyName Caption: Company Name OnChange: [Event Procedure]   Add the following code to the Change event of the text box: Private Sub ctrlCompName_Change Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Set db = CurrentDb strSQL = "SELECT CustomerID, CompanyName " & _ "FROM Customers WHERE CompanyName LIKE '" & _ Me!txtCompanyName.Text & "*'" Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)

If rs.RecordCount > 0 Then rs.MoveFirst Me!lstCompanyList = rs!CustomerID End If

rs.Close Set rs = Nothing Set db = Nothing End Sub  Save the form and open it in Form view. In the text box, slowly type blo and note the selection in the list box as you type each character.

Note that you see the following names highlighted according to the number of characters that you type: <pre class="fixed_text">  Entry      Selected Item -     ---   b          Berglunds snabbkop bl        Blauer See Delikatessen blo       Blondel pere et fils

back to the top

Additional query words: inf

Keywords: kbhowto kbhowtomaster kbprogramming KB218621

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.