• ▼MSDN Library Visual Studio 6.0
    • ▶Welcome to the MSDN Library
    • ▶Visual Studio Documentation
    • ▶Visual Basic Documentation
    • ▶Visual C++ Documentation
    • ▶Visual FoxPro Documentation
    • ▶Visual InterDev Documentation
    • ▶Visual J++ Documentation
    • ▶Visual SourceSafe Documentation
    • ▶Tools and Technologies
    • ▶Microsoft Office Development
    • ▶Platform SDK
    • ▶SDK Documentation
    • ▶DDK Documentation
    • ▶Windows Resource Kits
    • ▶Specifications
    • ▶Knowledge Base
    • ▶Technical Articles
    • ▶Backgrounders
    • ▶Books
    • ▶Partial Books
    • ▶Periodicals
    • ▼Conference Papers
      • ▶PDC 97 Conference Papers
      • ▶PDC 96 Conference Papers
      • ▶Tech*Ed 97 Conference Papers
      • ▶Tech*Ed 96 Conference Papers
      • ▼Tech*Ed 95 Conference Papers
        • ▼Microsoft Access
          • ▶Advanced Data Access Objects (DAO) for Client Server
          • ▶Advanced Microsoft Access Basic Code
          • ▶Client-Server Application Development Using Microsoft Access
          • ▼Forty-Two Ways to Make DAO Faster--Programming to DAO Using Microsoft Access
            • Introduction
            • Overview
            • Sample Code
            • ▼50 Ways to Speed Up DAO Code
              • Replace Find with Seek
              • Use table-type Recordsets instead of dynaset or snapshot-types
              • Open attached tables directly by opening the database directly
              • Use snapshots instead of dynasets for remote data (but beware of memos!)
              • Supply the DB_FORWARDONLY option on ODBC snapshots
              • With ODBC dynasets, use CacheStart, CacheFill, and CacheSize functionality
              • Store queries instead of using dynamic SQL text - especially low memory machines
              • Parameterize queries instead of using dynamic SQL text (especially for ODBC)
              • Open databases exclusive and read-only if for fastest single-user network performance
              • With ODBC SQL statements, use pass-through where possible
              • Replace DAO code loops with the equivalent SQL statements - but not always
              • Always wrap transactions around your DAO code
              • Return to your location using bookmarks instead of using Find
              • In inner loops, use Field objects instead of myRS!fieldname (Q112724)
              • Store infrequently updated tables in the local MDB
              • Reduce your ODBC time-outs to get faster return to DAO
              • Cache tabledef and field property collection references if used many times
              • Speed finds by creating a temporary indexed table and seeking
              • Replace repeated execution of dynamic SQL with a temporary query
              • Use the DB_APPENDONLY flag if you're adding records to dynasets, esp ODBC
              • Marginal: replace variants with specific data types
              • Replace short memo fields with long text fields
              • For snapshots, select just the fields you need instead of all fields
              • Split .mdb files that have lots of tables to minimize DAO collection initialization time
              • Try InStr() instead of Like if you're not concerned with foreign accent chars
              • Replace use of .Filter with Seek (or a query)
              • Re-query recordsets instead of reopening them
              • Dim objects and Set them rather than using lengthy references
              • Replace text collection lookup with ordinals (but field object is better)
              • Take advantage of default collections and drop the extra name
              • Replace old ListTables (etc.) code with collection based code
              • 'Posting' queries are faster than explicit code
              • Refresh current field values with Move 0 instead of MoveNext/Previous
              • Abandon an Edit or AddNew with Move 0
              • Clone dynaset recordsets instead of opening new ones
              • Compile modules and queries before distributing your application
              • For ODBC data with OLE or Memo fields use dynasets instead of snapshots
              • On ODBC data use find-only on indexed fields, otherwise open a new cursor
              • Replace Variant string functions with '$' functions if using strings
              • Replace use of .Sort with specifying an index (or a query)
              • Replace floating point numbers with integral numbers
              • Add the DB_DENYWRITE flag if no one else will be writing
              • Avoid refreshing collections unless you absolutely have to
            • Conclusion
          • ▶Microsoft Access to Microsoft Office: Applied Integration Techniques
          • ▶Writing Wizards for Microsoft Access
          • ▶Using Microsoft Access Forms Like the Masters
          • ▶Upsizing Microsoft Access-based Applications
        • ▶Microsoft BackOffice
        • ▶Microsoft Exchange
        • ▶Microsoft Mail
        • ▶Microsoft Office
        • ▶Microsoft SQL Server
        • ▶Microsoft Visual Basic
        • ▶Microsoft Visual FoxPro
        • ▶Microsoft Windows NT
        • ▶Multimedia