ACC: Visual/Access Basic Is Both a Compiler and an Interpreter

Last reviewed: June 8, 1997
Article ID: Q109382
The information in this article applies to:
  • Microsoft Access versions 1.0, 1.1, 2.0, 7.0, 97

SUMMARY

Novice: Requires knowledge of the user interface on single-user computers.

This article discusses whether the Visual Basic for Applications (or Access Basic in version 2.0) programming language is a compiled language or an interpreted language.

MORE INFORMATION

Traditional compiled languages, such as C, compile human-readable source code into machine-readable, and much faster, object code. These object programs then need to be linked into an executable file to be used. Syntax errors are not generally located until the code is completely compiled, although parsing compilers are an exception to this rule.

Traditional interpreted languages, such as QBasic, use interpreters that read each line of code and translate it into computer instructions as you write it. An advantage of this method is that an interpreter can test your code as you write it. In some cases this line-by-line interpretation can be slow.

Visual Basic incorporates elements of both compiled and interpreted languages. Visual Basic does interpret each line of code you as you write it, but Microsoft Access performs this interpretation in the background, and does not exhibit any performance degradation because of this interpretation.

In addition to this interpretation, Microsoft Access also compiles your code into a combination of compiled and interpreted code known as p-code, or pseudocode. This p-code runs much faster than interpreted code. The compilation takes place either when you first run the code, or when you click Compile All on the Run menu.

Microsoft Access 97 also provides another mechanism for keeping database applications compiled and secure. This feature is called Make MDE File, and it removes the text representation of your VBA code and stores just the binary compiled p-code.

If your database contains Visual Basic code, saving your database as an MDE file compiles all modules, removes all editable source code, and compacts the destination database. Your Visual Basic code continues to run, but it cannot be viewed or edited, and the size of your database is reduced due to the removal of the code. Additionally, memory usage is optimized, which improves performance.

Saving your database as an MDE file prevents the following actions:

  • Viewing, modifying, or creating forms, reports, or modules in Design view.
  • Adding, deleting, or changing references to object libraries or databases.
  • Changing code using the properties or methods of the Microsoft Access or VBA Object models because an MDE file contains no source code.
  • Changing your database's VBA project name using the Options dialog box.
  • Importing or exporting forms, reports, or modules. However, tables, queries, and macros can be imported from or exported to non-MDE databases. Any tables, queries, or macros in an MDE database can be imported into another database, but no forms, reports, or modules can be imported into another database.


Additional query words: security lock
Keywords : kbprg PgmOthr
Version : 1.0 1.1 2.0 7.0 97
Platform : WINDOWS
Hardware : X86
Issue type : kbinfo


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