Contents

# Access2Base

## What is Access2Base?

Access2Base is a LibreOffice BASIC library of macros for (business or personal) application developers and advanced users. It is one of the libraries stored in "Application macros and dialogs".

The functionalities provided by the implemented macros are all directly inspired by Microsoft Access. The macros are callable mainly from a LibreOffice Base application, but also from any LibreOffice document (Writer, Calc, ...) where access to data stored in a database makes sense.

Access2Base 意在提供比標準 UNO API (Application Programming Interface) 更簡潔、直覺與易學的 API。

The library is documented online on https://access2base.libreoffice.org/.

## 實作的巨集包括：

1. a simplified and extensible API for forms, dialogs and controls manipulations similar with the Microsoft Access object model,

2. an API for database access with the table, query, recordset and field objects,

3. a number of actions with a syntax identical to their corresponding Microsoft Access macros/actions,

4. the DLookup, DSum, ... database functions,

5. 支援 Forms!myForm!myControl 之類的縮寫表示法

in addition

6. a consistent errors and exceptions handler,

7. facilities for programming form, dialog and control events and

8. the support of both embedded forms and standalone (Writer) forms.

## 對照比較 Access2Base 與 Microsoft Access VBA

       REM Open a form ...
                 OpenForm("myForm")
       REM Move a form to new left-top coordinates ...
                 Dim ofForm As Object  ' In VBA =>  Dim ofForm As Form
                 Set ofForm = Forms("myForm")
                 ofForm.Move(100, 200)
       REM Get the value of a control ...
                 Dim ocControl As Object
                 ocControl = ofForm.Controls("myControl")
                 MsgBox ocControl.Value
       REM Hide a control ...
                 ocControl.Visible = False
       REM ... or alternatively ...
                 setValue("Forms!myForm!myControl.Visible", False)  '  Shortcut notation
                 ' In VBA =>  Forms!myForm!myControl.Visible = False

Please support us!