You are previewing F. Scott Barker's Microsoft® Access 2000 Power Programming.
O'Reilly logo
F. Scott Barker's Microsoft® Access 2000 Power Programming

Book Description

Access 2000 Power Programming gives many practical techniques for the corporate and independent developer. New features of Access 2000 are covered thoroughly and useful examples which will be implemented by programmers in their everyday applications. New topics include a chapter devoted to Data Pages, Microsoft's way of bringing the Web interface into everyday office solutions. Also, a new chapter clarifies the confusion over ADP/MDB and DAO/ADO, including when and where to use each. The book covers a number of new additions to VBA which developers will need good exposure to in order to take advantage of them.

Table of Contents

  1. Copyright
  2. About the Author
  3. Acknowledgments
  4. Tell Us What You Think!
  5. INTRODUCTION
  6. THE ROOT OF POWER PROGRAMMING
    1. MACROS ARE FOR WEENIES; CODE IS COOL!
      1. UNDERSTANDING WHERE MACROS END AND CODE BEGINS
      2. LOOKING AT MACRO-TO-CODE CHANGES
      3. CONVERTING EXISTING MACROS TO VBA CODE
      4. SUMMARY
    2. CODING IN ACCESS 2000 WITH VBA
      1. GETTING STARTED WITH PROGRAMMING
      2. GETTING STARTED WITH VBA
      3. PROGRAMMING WITH OBJECTS
      4. USING PROPERTIES AND METHODS
      5. USING COLLECTIONS
      6. CUSTOMIZING A FORM
      7. CODING CLASS MODULES
      8. SUMMARY
    3. MAKING THE CHOICE: MDB OR ADP, DAO OR ADO
      1. USING MICROSOFT DATABASE VERSUS ACCESS DATABASE PROJECT
      2. USING DATA ACCESS OBJECTS VERSUS ACTIVEX DATA OBJECTS
      3. SUMMARY
    4. LOOKING AT THE ACCESS COLLECTIONS
      1. CREATING CUSTOM COLLECTIONS
      2. COMPARING CUSTOM COLLECTIONS TO ARRAYS
      3. ACCESSING THE ACCESS OBJECT MODEL
      4. PROGRAMMING MULTIPLE COPIES OF THE SAME FORM
      5. SUMMARY
    5. WORKING WITH DATA ACCESS OBJECTS
      1. UNDERSTANDING DATA ACCESS OBJECTS
      2. CREATING A DATABASE WITH DAO
      3. INCREASING SPEED WITH TRANSACTIONS
      4. USING CUSTOM PROPERTIES
      5. SUMMARY
    6. INTRODUCING ACTIVEX DATA OBJECTS
      1. LOOKING AT THE OBJECT MODELS
      2. REFERENCING THE TYPE LIBRARIES
      3. OPENING A CONNECTION TO A DATABASE
      4. CREATING A RECORDSET WITH ADO
      5. WORKING WITH QUERIES USING ADO
      6. WORKING WITH TABLES USING ADO
      7. SUMMARY
    7. HANDLING YOUR ERRORS IN ACCESS WITH VBA
      1. ACCESS ERROR MESSAGING
      2. DIFFERENT WAYS OF USING ERROR HANDLING
      3. EXAMINING ACCESS'S RUNTIME ERROR HANDLING
      4. WORKING WITH THE ERR AND ERROR OBJECTS
      5. WORKING WITH THE ERRORS COLLECTION
      6. CREATING USER-DEFINED ERRORS
      7. TRACKING ERRORS BY USING A CUSTOM ERROR LOG
      8. CREATING A CENTRALIZED ERROR-HANDLING ROUTINE
      9. A LAST LOOK AT ERROR-HANDLING ISSUES
      10. SUMMARY
  7. MANIPULATING AND PRESENTING DATA
    1. USING QUERIES TO GET THE MOST OUT OF YOUR DATA
      1. UNDERSTANDING WHERE QUERIES ARE USED IN ACCESS
      2. USING SELECT QUERIES: POWER IN THE QUERY DESIGN GRID
      3. WORKING WITH ACTION QUERIES: FOUNDATIONS FOR POWER
      4. USING ADVANCED QUERY OPERATIONS
      5. ADDING MORE POWER WITH VBA
      6. WORKING WITH QUERIES TO FEED REPORTS AND FORMS
      7. SOLVING PROBLEMS WITH QUERIES
      8. EXAMINING THE ARCHITECTURE OF THE QUERY RESOLUTION PROCESS
      9. DISCOVERING JET OPTIMIZATION METHODS
      10. UNDERSTANDING OPTIMIZATION TECHNIQUES
      11. USING UNCONVENTIONAL OPTIMIZATION TECHNIQUES
      12. USING THE ANALYZER WIZARDS
      13. SUMMARY
    2. CREATING POWERFUL FORMS
      1. INCREASING THE PERFORMANCE OF YOUR FORMS
      2. USING ACCESS 2000'S NEW FORM FEATURES
      3. TAKING ADVANTAGE OF OTHER FORM FEATURES
      4. REUSING FORMS TO PERFORM STANDARD TASKS WITH THE OPENARGS AND TAG PROPERTIES
      5. INCREASING TABBED FORM PERFORMANCE
      6. SUMMARY
    3. EXPANDING THE POWER OF YOUR FORMS WITH CONTROLS
      1. SETTING UP A FIELD'S LOOKUP PROPERTIES FOR USE ON FORMS
      2. TAPPING INTO THE POWER OF COMBO BOXES
      3. WORKING WITH THE NATIVE ACCESS TAB CONTROL
      4. MORPHING ACCESS CONTROLS
      5. PROGRAMMING FOR POWER WITH MULTISELECT LISTBOX CONTROLS
      6. USING THE SUBFORM/SUBREPORT WIZARD FOR RELIEF
      7. GIVING SPREADSHEET-TYPE CURSOR MOVEMENTS TO CONTROLS
      8. MANIPULATING CONTROLS THROUGH CODE
      9. SUMMARY
    4. CREATING POWERFUL REPORTS
      1. USING THE SAME REPORT FOR SUMMARY, DETAIL, AND SUMMARY/DETAIL REPORTS
      2. USING QUERY BY FORM TO CREATE DYNAMIC GROUPINGS FOR THE SAME REPORT
      3. THE ELUSIVE FEATURE: CREATING SNAKING REPORTS
      4. USING DYNAMIC COLUMNS TO CREATE A REPORT OFF A CROSSTAB QUERY
      5. CHOOSING MULTIPLE TOPICS TO PRINT BY USING THE MULTISELECT LIST BOX
      6. CREATING A WIZARD-LIKE INTERFACE FOR SELECTING GROUP-BY ITEMS
      7. FORMATTING REPORTS DYNAMICALLY
      8. SUMMARY
    5. WORKING WITH DATA PAGES
      1. WHY DATA ACCESS PAGES?
      2. SAVING TIME WITH THE DATA ACCESS PAGE WIZARDS
      3. CREATING AND ENHANCING SIMPLE DATA ACCESS PAGES
      4. GROUPING DATA ACCESS PAGES: REPORTS FOR THE WEB
      5. FINDING ADDITIONAL RESOURCES
      6. SUMMARY
  8. EXTENDING ACCESS WITH INTEROPERABILITY
    1. DRIVING OFFICE APPLICATIONS WITH AUTOMATION AND DDE
      1. UNDERSTANDING AUTOMATION
      2. EXAMINING THE OFFICE PRODUCTS' OBJECT MODELS
      3. USING AUTOMATION
      4. RUNNING OTHER APPLICATIONS FROM ACCESS WITH AUTOMATION
      5. USING AUTOMATION TO DRIVE ACCESS FROM MICROSOFT PROJECT
      6. USING AUTOMATION TO DRIVE OUTLOOK FROM ACCESS
      7. DRIVING OTHER APPLICATIONS WITH DDE
      8. SUMMARY
    2. PROGRAMMING FOR POWER WITH ACTIVEX CONTROLS
      1. UNDERSTANDING THE ACTIVEX WINDOWS COMMON CONTROLS
      2. TAKING A CLOSER LOOK AT THE IMAGELIST CONTROL
      3. EMULATING THE WINDOWS 95 EXPLORER WITH THE LISTVIEW CONTROL
      4. DISPLAYING A TASK'S PROGRESS WITH THE PROGRESSBAR CONTROL
      5. SIZING TEXT BOXES AT RUNTIME WITH THE SLIDER CONTROL
      6. TELLING IT LIKE IT IS WITH THE MICROSOFT RICH TEXTBOX CONTROL
      7. CREATING STATUS BARS FOR INDIVIDUAL FORMS WITH THE STATUSBAR CONTROL
      8. Setting Status Bar Properties at Runtime
      9. DOCKING TOOLBARS ON FORMS USING THE TOOLBAR CONTROL
      10. VIEWING DATA FILE MANAGER STYLE WITH THE TREEVIEW CONTROL
      11. SUMMARY
    3. USING API CALLS TO EXTEND THE POWER OF ACCESS
      1. UNDERSTANDING DYNAMIC LINK LIBRARIES
      2. EXAMINING THE SYNTAX FOR API CALLS
      3. FINDING API DECLARATIONS
      4. VIEWING THE POSSIBLE API CALLS
      5. CONSIDERING SOME ISSUES WHEN USING API CALLS
      6. LOOKING AT SOME EXAMPLES OF API CALLS
      7. DISPLAYING PERTINENT FOLDERS FROM WITHIN YOUR APPLICATION
      8. USING THE OPEN FILE DIALOG API CALL
      9. SUMMARY
    4. EXTENDING YOUR VBA LIBRARY POWER WITH CLASS MODULES AND COLLECTIONS
      1. LOOKING AT THE FIRST SCENARIO
      2. MANAGING MULTIPLE INSTANCES OF THE SAME FORM
      3. SUMMARY
    5. CREATING YOUR OWN WIZARDS AND ADD-INS
      1. UNDERSTANDING ACCESS WIZARDS, BUILDERS, AND ADD-INS
      2. LOOKING AT THE WIZARDS AND ADD-IN REGISTRY ENTRIES
      3. CREATING YOUR OWN ADD-INS
      4. USING ACCESS CODE LIBRARIES
      5. SUMMARY
    6. MANIPULATING THE REGISTRY WITH VBA
      1. LOOKING AT THE HISTORY OF THE WINDOW'S REGISTRY
      2. USING VBA'S REGISTRY COMMANDS
      3. PERFORMING TASKS WITH THE REGISTRY API CALLS
      4. SUMMARY
    7. USING ACCESS WITH THE INTERNET
      1. LOOKING AT ACCESS'S HYPERLINK FEATURES
      2. LOOKING AT ACCESS'S HYPERLINK OPTIONS
      3. IMPORTING AND EXPORTING ACCESS OBJECTS TO HTML DOCUMENTS THE EASY WAY
      4. PUBLISHING TO OTHER WEB FILE FORMATS
      5. SUMMARY
  9. ADDING THE PROFESSIONAL LOOK AND DISTRIBUTING APPLICATIONS
    1. PROGRAMMING OFFICE COMMAND BARS AND THE OFFICE ASSISTANT
      1. USING COMMAND BARS
      2. WORKING WITH COMMAND BARS THROUGH VBA
      3. WORKING WITH THE OFFICE ASSISTANT
      4. LOOKING AT THE FILESEARCH OBJECT
      5. SUMMARY
    2. SECURING YOUR APPLICATION
      1. UNDERSTANDING THE PURPOSE OF SECURING YOUR APPLICATION
      2. UNDERSTANDING SECURITY IN ACCESS 2000
      3. LOOKING AT THE SECURITY USER INTERFACE
      4. USING TOOLS TO MAKE LIFE WITH ACCESS SECURITY EASIER
      5. AVOIDING COMMON PITFALLS FOUND IN ACCESS SECURITY
      6. MANAGING SECURITY THROUGH CODE
      7. USING THE SECURED SAMPLE DATABASE: CHAP21S.MDB
      8. SUMMARY
  10. MANAGING DATABASES
    1. HANDLING MULTIUSER SITUATIONS
      1. LOOKING AT MULTIUSER TERMINOLOGY
      2. UNDERSTANDING ACCESS MULTIUSER HANDLING
      3. ONE OR TWO DATABASE CONTAINERS: KNOWING WHERE TO PUT THE PIECES
      4. LOOKING AT THE BUILT-IN LOCKING MODES
      5. WORKING IN VBA WITH UNBOUND FORMS
      6. CODING FOR MULTIUSER ERROR HANDLING
      7. GETTING A LIST OF LOGGED-IN USERS WITH ADO
      8. SUMMARY
    2. WELCOME TO THE WORLD OF DATABASE REPLICATION
      1. UNDERSTANDING DATABASE REPLICATION CONCEPTS
      2. UNDERSTANDING THE JET REPLICATION TOOLS
      3. CONVERTING A DATABASE TO A REPLICA
      4. SYNCHRONIZING REPLICAS
      5. UNDERSTANDING REPLICA SET TOPOLOGIES
      6. AUTOMATING STAR AND HUB SYNCHRONIZATION
      7. DISTRIBUTING REPLICABLE APPLICATIONS
      8. REPLICATING BACK-END AND FRONT-END APPLICATIONS
      9. DEALING WITH REPLICATION CONFLICTS
      10. UNDERSTANDING REPLICATION SYNCHRONIZERS
      11. UPGRADING REPLICA SETS FROM ACCESS 97 TO ACCESS 2000
      12. SECURING REPLICATED APPLICATIONS
      13. USING MDE FILES WITH REPLICATED DATABASES
      14. CREATING SUCCESSFUL REPLICATION APPLICATIONS
      15. SUMMARY
    3. MOVING WORKGROUP APPLICATIONS TO CLIENT/SERVER
      1. UNDERSTANDING CLIENT/SERVER
      2. FACTORING FOR MIGRATION TO CLIENT/SERVER
      3. PLANNING FOR CLIENT/SERVER
      4. KNOWING WHAT TO WATCH FOR IN APPLICATION DEVELOPMENT
      5. CONVERTING EXISTING APPLICATIONS
      6. DISTRIBUTING A CLIENT/SERVER SOLUTION
      7. KEEPING CERTAIN ISSUES IN MIND WITH ACCESS AND SQL SERVER
      8. SUMMARY
    4. DEVELOPING SQL SERVER PROJECTS USING ADPS
      1. PROJECT FILE ARCHITECTURE
      2. WORKING WITH PROJECTS
      3. BUILDING A CLIENT/SERVER APPLICATION
      4. WORKING WITH VIEWS
      5. WORKING WITH STORED PROCEDURES
      6. SUMMARY
  11. ADDING FINISHING TOUCHES
    1. STARTUP CHECKING SYSTEM ROUTINES USING DAO
      1. PERFORMING STARTUP SYSTEM CHECKS
      2. USING CUSTOM DATABASE PROPERTIES
      3. NOTIFYING AND LOGGING USERS OUT OF AN APPLICATION
      4. TESTING THE CONNECTIONS OF LINKED TABLES AT STARTUP
      5. LINKING AND UNLINKING TABLES THROUGH VBA
      6. TESTING AND REPAIRING CORRUPTED JET BACK-END DATABASES
      7. CHECKING AND NOTIFYING USERS OF A NEW VERSION
      8. SUMMARY
    2. STARTUP CHECKING SYSTEM ROUTINES USING ADO
      1. PERFORMING STARTUP SYSTEM CHECKS
      2. SETTING AND RETRIEVING SYSTEM SETTINGS WITH ADO
      3. TESTING THE CONNECTIONS OF LINKED TABLES AT STARTUP
      4. LINKING TABLES THROUGH VBA AND ADO
      5. TESTING AND REPAIRING CORRUPTED JET BACK-END DATABASES
      6. REPLICATING CODE TABLES USING ADO
      7. SUMMARY
    3. CREATING MAINTENANCE ROUTINES
      1. CREATING AN EXPORT DIALOG TO EXPORT AN APPLICATION'S TABLES
      2. COMPACTING AND REPAIRING THE BACK END ON DEMAND
      3. CREATING A GENERIC CODE TABLE EDITOR
      4. REPLICATING TABLES FROM BACK END TO FRONT END FOR BETTER PERFORMANCE
      5. SUMMARY
  12. APPENDIXES
    1. DEBUGGING CODE IN ACCESS 2000
      1. SETTING THE CORRECT MODULE OPTIONS FOR MAXIMUM DEBUGGING POWER
      2. TAKING ADVANTAGE OF THE IMMEDIATE WINDOW
      3. STOPPING PROGRAM EXECUTION
      4. DEBUGGING ONE STEP AT A TIME
      5. VIEWING THE ORDER OF PROCEDURE CALLS
      6. WATCHING EXPRESSIONS DURING PROGRAM EXECUTION
      7. CONTROLLING CODE WITH CONDITIONAL COMPILATION COMMANDS
      8. SUMMARY
    2. GETTING STARTED WITH ACTIVEX CONTROLS
      1. WORKING WITH ACTIVEX CONTROLS
      2. COUNTING THE DAYS WITH THE CALENDAR CONTROL
      3. USING A STANDARD INTERFACE WITH THE COMMON DIALOG ACTIVEX CONTROL
      4. SUMMARY
    3. ACCESS 2000 AND JET 4 ERRORS
    4. LESZYNSKI NAMING CONVENTIONS FOR MICROSOFT ACCESS®
      1. NAMING CONVENTIONS: A PRIMER
      2. ACCESS OBJECT TYPES
      3. STRUCTURING OBJECT NAMES
      4. CREATING DATABASE OBJECT BASE NAMES
      5. NAMING CONVENTIONS FOR DATABASE OBJECTS
      6. CREATING VBA OBJECT BASE NAMES
      7. NAMING CONVENTIONS FOR VBA OBJECTS
      8. CREATING YOUR OWN TAGS
      9. VBA CODING CONVENTIONS
      10. STANDARDIZED ABBREVIATIONS
      11. STANDARDIZED TERMINOLOGY
      12. ADDITIONAL INFORMATION ABOUT LNC
  13. Index