XL7: How to Return DAO Query Results Directly to a List Box

Last reviewed: September 2, 1997
Article ID: Q149254

The information in this article applies to:
  • Microsoft Excel for Windows 95, version 7.0
  • Microsoft Office Professional for Windows 95, version 7.0
  • Microsoft Access versions 7.0

SUMMARY

The following Microsoft Excel Visual Basic for Applications example returns the results of a Data Access Object (DAO) query on an external database directly to a list box.

MORE INFORMATION

Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support engineers can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

The following Visual Basic for Applications macro uses DAO to perform a query on Northwind.mdb, a sample Microsoft Access database supplied with Microsoft Office Professional for Windows 95, version 7.0.

  1. In Microsoft Excel, create a new dialog sheet. To do this, on the Insert menu, point to Macro, and then click Dialog.

  2. To add a list box to the dialog sheet, on the Forms toolbar, click the List Box button, and then drag on the sheet until the control is the size and shape you want.

  3. To insert a new Visual Basic module sheet, point to Macro on the Insert menu, and then click Module.

  4. In the module, on the Tools menu, click References.

  5. In the References dialog box, select the Microsoft DAO 3.0 Object Library check box.

  6. On the new module sheet, enter the following macro:

          Sub DatatoListbox()
    
          Dim db As Database
          Dim rs As Recordset
          Dim varrecords As Variant
    
          'Open the Microsoft Access database.
          'Note: By default, Northwind.mdb is installed in the
          '\msoffice\access\samples directory. If you installed Microsoft
          'Access to a different location, you will have to modify the path
          'in the following line of code to point to the location of
          'Northwind.mdb.
    
          Set db = OpenDatabase("C:\msoffice\access\samples\northwind.mdb")
    
          'Retrieve the data from the database.
          Set rs = db.OpenRecordset("Select productname from Products
       where(products.unitprice>=10.00)")
    
          'Move the pointer to the last record of the retrieved data.
          rs.MoveLast
    
       'Count the number of records that are being returned and assign that
       'number to a variable.
          x = rs.RecordCount
    
          'Move the record pointer to the first record. This is required in
          'order to return the number of records specified by the RecordCount
          'Property. If this is not done, the record pointer will remain on
          'the last record and only the last record will be returned.
          rs.MoveFirst
    
          'Return the records to an array variable.
          varrecords = rs.GetRows(x)
    
          'Fill the list box.
          DialogSheets(1).ListBoxes(1).List = Array(varrecords)
    
          'Display the dialog sheet.
          DialogSheets(1).Show
          End Sub
    
    

REFERENCES

For additional information, click Microsoft Excel Help Topics on the Help Menu, click the Index Tab and then search on the following keywords:

   OpenDatabase
   OpenRecordset
   MoveLast
   MoveFirst
   GetRows
   Recordcount

"Microsoft Excel Visual Basic Programmer's Guide," pages 235-253

"Developing Excel 95 Solutions with Visual Basic for Applications," by Eric Wells, Microsoft Press, 1995, Chapter 7, pages 397-532

"Microsoft Jet Database Engine Programmer's Guide," by Dan Haught and Jim Ferguson, Microsoft Press, 1995


Additional query words: 7.00
Keywords : PgmHowTo kbcode kbhowto kbprg
Version : 7.00
Platform : WINDOWS


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: September 2, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.