Getting Started Guide

8

Chapter
Getting Started with Base
OpenOffice.org’s Database Component

CopyrightThis document is Copyright © 2005–2011 by its contributors as listed below. You may
distribute it and/or modify it under the terms of either the GNU General Public
License (http://www.gnu.org/licenses/gpl.html), version 3 or later, or the Creative
Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), version
3.0 or later.
All trademarks within this guide belong to their legitimate owners.

Contributors
Dan Lewis
Jean Hollis Weber

Iain Roberts
JiHui Choi

Magnus Adielsson

Feedback
Please direct any comments or suggestions about this document to:authors@documentation.openoffice.org

Acknowledgments
Dan Lewis personally thanks the other authors of this document. Without them, it
would not have the quality it does, nor would it contain as much information. Iain
Roberts and Magnus Adielsson offered many sound suggestions on content andformat. Jean Hollis Weber has suggested many changes which have made thisdocument much more understandable. Special thanks also go to those who havetranslated this document into other languages so that non-English speaking people
have access to this information.

Publication date and software version
Published 10 November 2011. Based on OpenOffice.org 3.3.

Note for Mac users
Some keystrokes and menu items are different on a Mac from those used in Windows
and Linux. The table below gives some common substitutions for the instructions inthis chapter. For a more detailed list, see the application Help.
Windows/LinuxMac equivalent

EffectTools > Options
menu selection

OpenOffice.org >Preferences

Access setup options

Right-click

Control+click

Open context menu

Ctrl (Control)z (Command)

Used with other keys

F5

Shift+z+F5

Open the Navigator

F11

z+T

Open Styles & Formatting window

You can download
an editable version of this document fromhttp://wiki.services.openoffice.org/wiki/Documentation/

Contents
Copyright....................................................................................................................... 2
Note for Mac users........................................................................................................ 2
Introduction................................................................................................................... 4
Planning a database....................................................................................................... 5
Creating a new database............................................................................................... 6
Creating database tables............................................................................................... 7
Using the Wizard to create a table............................................................................ 7
Creating a table by copying an existing table.......................................................... 10
Creating tables in Design View................................................................................ 11Creating tables for the list box................................................................................ 14
Adding data to the list table..................................................................................... 15
Defining relationships.................................................................................................. 15
Creating a database form............................................................................................ 17
Using the Wizard to create a form........................................................................... 17
Modifying a form...................................................................................................... 21
Creating forms and subforms in Design View..........................................................31
Accessing other data sources...................................................................................... 32
Accessing a spreadsheet as a data source............................................................... 32
Registering *.odb databases.................................................................................... 32
Using data sources in OpenOffice.org......................................................................... 33
Viewing data sources............................................................................................... 33
Editing data sources................................................................................................ 33
Launching Base to work on data sources................................................................ 34
Using data sources in Writer and Calc.................................................................... 34
Entering data in a form................................................................................................ 37
Creating queries.......................................................................................................... 39
Using the Wizard to create a query......................................................................... 39
Using the Design View to create a query................................................................. 41
Creating reports........................................................................................................... 47
Creating a static report............................................................................................ 47
Creating a dynamic report....................................................................................... 50
Modifying a report................................................................................................... 52
More ways to create reports.................................................................................... 54

Getting Started with Base

3

Introduction
A data source, or database, is a collection of pieces of information that can beaccessed or managed by OpenOffice.org (OOo) . For example, a list of names andaddresses is a data source that could be used for producing a mail merge letter . A
shop stock list could be a data source managed through OOo.

Note

OpenOffice.org uses the terms “Data Source” and “Database” to refer tothe same thing, which could be a database such as MySQL or dBase or a
spreadsheet or text document holding data.

This chapter covers creating a database, showing what is contained in a database andhow the different parts are used by OOo. It also covers using the Base component of
OOo to register other data sources. A data source can be a database, spreadsheet, ortext document.

Note

OOo Base uses the HSQL database engine. All of the files created by thisengine are kept in one zipped file. The database forms are included in thiszipped file.

A database consists of a number of fields that contain the individual pieces of data.
Each table of the database is a group of fields. When creating a table, you also
determine the characteristics of each field in the table. Forms are for data entry into
the fields of one or more tables associated with the form. They can also be used forviewing fields from one or more tables associated with the form. A query creates a
new table from the existing tables based upon how you create the query. A reportorganizes the information of the fields of a query in a document according to yourrequirements.

CautionThe database in OOo requires Java Runtime Environment (JRE). If you do
not have it on your computer, you can download it from www.java.com
and install it following the instructions on the site. It should be Java 5.0
or higher. In OOo, use Tools > Options > OpenOffice.org > Java toregister Java.
Windows' version of JRE can not be used, while there are other versions
that can.

Base creates relational databases. This makes it fairly easy to create a database inwhich the fields of the database have relationships with each other.
For example: Consider a database for a library. It will contain a field for the names of
the authors and another field for the names of the books. There is an obvious
relationship between the authors and the books they have written. The library may
contain more than one book by the same author. This is what is known as a one-tomany relationship: one author and more than one book. Most if not all the
relationships in such a database are one-to-many relationships.
Consider an employment database for the same library. One of the fields contains thenames of the employees while others contain the social security numbers, and otherpersonal data. The relationship between the names and social security numbers is
one-to-one: only one social security number for each name.
If you are acquainted with mathematical sets, a relational database can easily be
explained in terms of sets: elements, subsets, unions, and intersections. The fields of4

Getting Started with Basea database are the elements. The tables are subsets. Relationships are defined interms of unions and intersections of the subsets (tables).
To explain how to use a database, we will create one for automobile expenses. In theprocess, we will be explaining how a database works.

Planning a database
The first step in creating a database is to ask yourself many questions. Write themdown, and leave some space between the questions to later write the answers. At
least some of the answers should seem obvious after you take some time to think.
You may have to go through this process a few times before everything becomes clear
in your mind and on paper. Using a text document for these questions and answers
makes it easier to move the questions around, add additional questions, or change
the answers.
Here are some of the questions and answers I developed before I created a databasefor automobile expenses. I had an idea of what I wanted before I started, but as I
began asking questions and listing the answers, I discovered that I needed additional
tables and fields.
What are the fields going to be? My expenses divided into three broad areas: fuelpurchases, maintenance, and vacations. The annual cost for the car’s license plateand driver’s license every four years did not fit into any of these. It will be a table ofits own: license fees.
What fields fit the fuel purchases area? Date purchased, odometer reading, fuel cost,
fuel quantity, and payment method fit. (Fuel economy can be calculated with a query.)What fields fit the maintenance area? Date of service, odometer reading, type ofservice, cost of service, and next scheduled service of this type (for example, for oilchanges list when the next oil change should be). But it would be nice if there was a
way to write notes. So, a field for notes was added to the list.
What fields fit the vacations area? Date, odometer reading, fuel (including all thefields of the fuel table), food (including meals and snacks), motel, total tolls, andmiscellaneous. Since these purchases are made by one of two bank cards or withcash, I want a field to state which payment type was used for each item.
What fields fit into the food category? Breakfast, lunch, supper, and snacks seem tofit. Do I list all the snacks individually or list the total cost for snacks for the day? I
chose to divide snacks into two fields: number of snacks and total cost of snacks. I
also need a payment type for each of these: breakfast, lunch, supper, and total cost of
snacks.
What are the fields that are common to more than one area? Date appears in all of
the areas as does odometer reading and payment type.
How will I use this information about these three fields? While on vacation, I want theexpenses for each day to be listed together. The date fields suggest a relationshipbetween the vacation table and the dates in each of these tables: fuel and food, Thismeans that the date fields in these tables will be linked as we create the database.
The type of payment includes two bank cards and cash. So, we will create a tablewith a field for the type of payment and use it in list boxes in the forms.

Planning a database

5

Tip

While we have listed fields we will create in the tables of the database,
there is one more field that may be needed in a table: the field for the
primary key. In some tables, the field for the primary key has alreadybeen listed. In other tables such as the payment type, an additional field
for the primary key must be created.

Creating a new database
To create a new database, choose File > New > Database from the menu bar, or
click the arrow next to the New icon on the Standard toolbar and select Databasefrom the drop-down menu. Both methods open the Database Wizard.
On the first page of the Database Wizard, select Create a new database and thenclick Next.
The second page has two questions. Make sure the choice for the first question isYes, register the database for me and the choice for the second question is Openthe database for editing. Click Finish.

Note

If the database is not registered, it will not be accessible to the other OOo
components such as Writer and Calc. If the database is registered, othercomponents can access it.

Save the new database with the name Automobile. This opens the Automobile –OpenOffice.org Base window. Figure 1 shows part of this window.

Figure 1: Creating database tables

Tip

6

Every time the Automobile database is opened, the Automobile –OpenOffice.org Base window opens. Changes can then be made to the
database. The title for this window is always <database name> –OpenOffice.org Base.

Getting Started with BaseCaution

As you create a database, you should save your work regularly. This means
more than just saving what you have just created. You must save the whole
database as well.
For example, when you create your first table, you must save it before you
can close it. When the table is first saved, it is also made part of thedatabase.

Creating database tables
In a database, a table stores information for a group of things we call fields. For
example, a table might hold an address book, a stock list, a phone book or a price list.
A database can have from one to several tables.
To work with tables, click the Tables icon in the Database list, or press Alt+a. The
three tasks that you can perform on a table are in the Tasks list (see Figure 1).

Using the Wizard to create a table
Wizards are designed to do the basic work. Sometimes this is not sufficient for what
we want; in those cases we can use a wizard as a starting point and then build upon
what it produces.
The Table Wizard in Base contains two categories of suggested tables: business andpersonal. Each category contains sample tables from which to choose. Each table has
a list of available fields. We can delete some of these fields and add other fields.
A field in a table is one bit of information. For example, a price list table might have
one field for item name, one for the description, and a third for the price.
Since none of the fields we need for our Automobile database are contained in any of
the sample wizard tables, we will create a simple table using the wizard that has
nothing to do with our database. This section is an exercise in explaining how the
Wizard works.
The Wizard permits the fields of the table to come from more than one suggested
table. We will create a table with fields from three different suggested tables in the
Wizard.

CautionEvery table requires a Primary key field. (What this field does will be
explained later.) We will use this field to number our entries and wantthat number to automatically increase as we add each entry .

Click Use Wizard to Create Table. This opens the Table Wizard (Figure 2).
Step 1: Select fields.
We will use the CD-Collection Sample table in the Personal category to select thefields we need.
1) Category: Select Personal. The Sample Tables drop down list changes to a listof personal sample tables.
2) Sample tables: Select CD-Collection. The Available fields box changes to a listof available fields for this table.

Creating database tables

73) Selected fields: Using the > button, move the following fields from the
Available fields window to the Selected fields window in this order:
CollectionID, AlbumTitle, Artist, DatePurchased, Format, Notes, andNumberofTracks.
4) Selected Fields from another sample table. Click Business as the Category.
Select Employees from the dropdown list of sample tables. Use the > button tomove the Photo field from the Available fields window to the Selected fields
window. It will be at the bottom of the list directly below the NumberofTracks
field.
5) If you make a mistake in selecting fields, click on the field name in the
Selected fields list and use the < button to move it from the Selected fields listback to the Available fields list.
6) If you make a mistake in the order of the selected fields, click on the fieldname that is in the wrong order and use the Up or Down arrow on the rightside of the Selected fields list to move the field name to the correct position.
7) Click Next.

Figure 2: Selecting fields for the table
Step 2: Set field types and formats.
In this step you give the fields their properties. When you click a field, theinformation on the right changes. (See Figure 3.) You can then make changes to meetyour needs. Click each field, one at a time, and make the changes listed below.

Note

8

If any of these fields requires an entry, set Entry required to Yes. An entry
with that field blank will then not be allowed . In general, only set Entry
required to Yes if something must always be put in that field. By default,
Entry required is set to No.

Getting Started with BaseFigure 3: Changing field types• CollectionID: Change AutoValue from No to Yes.
• AlbumTitle:–
Entry required: Leave Entry required as No, unless all of your music is inalbums.

–Length: Unless you have an album title that exceeds 100 characters
counting the spaces, do not change the length.

Note

In Base the maximum length of each field must be specified on creation . It
is not easy to change this later, so if in doubt specify a greater length.
Base uses VCHAR as the field format for text fields. This format only uses
the actual number of characters in a field up to the limit set. So, a fieldcontaining 20 characters will only use space for 20 characters even if thelimit is set at 100. Two album titles containing 25 and 32 charactersrespectively will use space for 25 and 32 characters and not 100
characters.

• Artist: Use the Default setting. And since music has artists, set Entry Required
to Yes.

• Date Purchased: Field type: default date setting. Entry required should be No.
(You may not know the date.)• Format: Only change the Entry Required setting: from No to Yes.
• Notes: No changes are required.
• NumberofTracks: Change the Field Type to Tiny Integer [TINYINT]. Your
allowable number of tracks will be 999. Small Integer [SMALLINT] would
allow 99999 tracks if you needed more than 999 tracks.

• Photo: Use the default settings.
When you have finished, click Next.

Note

Each field has a Field Type, which must be specified. Types include text,
integer, date, and decimal . If the field is going to have general informationin it (for example, a name or a description), use text . If the field will always
contain a number (for example, a price), the type should be decimal oranother numerical field. The wizard picks the right field type, so to get an
idea of how this works, see what the wizard has chosen for different fields.

Creating database tables

9Step 3: Set primary key.
1)
2)
3)
4)
5)

Create a primary key should be checked.
Select option Use an existing field as a primary key.
In the Fieldname drop down list, select CollectionID.
Check Auto value if it is not already checked.
Click Next.
A primary key uniquely identifies an item (or record) in the table . For
example, you might know two people called “Randy Herring” or threepeople living at the same address and the database needs to distinguishbetween them.

Note

The simplest method is to assign a unique number to each one: number the
first person 1, the second 2, and so on. Each entry has one number andevery number is different, so it is easy to say “record ID 172”. This is theoption chosen here: CollectionID is just a number assigned automaticallyby Base to each record of this table.

Step 4: Create the table.
1) If desired, rename the table at this point. If you rename it, make the namemeaningful to you. For this example, make no changes.
2) Leave the option Insert data immediately checked.
3) Click Finish to complete the table wizard. Close the window created by thetable wizard. You are now back to the main window of the database with thelisting of the tables, queries, forms, and reports. Notice that a table named“CD-Collection” is now listed in the Tables portion of the window.

Creating a table by copying an existing table
If you have a large collection of music, you might want to create a table for each typeof music you have. Rather than creating each table from the wizard, you can makecopies of the original table, naming each according to the type of music contained init.
1) Click on the Tables icon in the Database pane to see the existing tables.
2) Right-click on the CD-Collection table icon. Choose Copy from the pop-up
menu.
3) Move the mouse pointer below this table, right-click, and select Paste. The
Copy table dialog opens.
4) Change the table name to Pop and click Next.
5) Click the >> button to move all the fields from the left box to the right box andclick Next.
6) Since all the fields already have the proper Field type, no changes should beneeded. However, this is the time and place to make any changes if they areneeded. (See Caution below for the reason why.) Click Create. The new tableis created.

10

Getting Started with BaseCautionOnce tables have been created using the wizard and data has beenentered, editing them should be very limited. Fields can be added ordeleted, but adding a field requires taking the time to enter the data forthat one field for every record having an entry for that field.
Deleting a field deletes all the data once contained in that field.
Changing the field type of a field can lead to data being lost either
partially or completely. When creating a new table, it pays to create thefields with the correct names, length, and format before you add any
data.
Deleting a table removes all of the data contained in every field of thetable. Unless you are sure, do not delete a table.

Creating tables in Design View
Design View is a more advanced method for creating a new table, in which you
directly enter information about each field in the table. We will use this method forthe tables of our database.

Note

While the Field type and formatting are different in Design View, theconcepts are the same as in the Wizard.

The first table to be created is Fuel. Its fields are FuelID, Date, FuelCost,
FuelQuantity, Odometer, and PaymentType.
1) Click Create Table in Design View.
2) FuelID field:a) Type FuelID as the first Field Name. Press the Tab key to move to theField Type column.
b) Select Integer [INTEGER] as the Field Type from the dropdown list. (Thedefault setting is Text [VARCHAR].)

Tip
c)
d)

A shortcut for selecting from the Field Type dropdown list: press the key
for the first letter of the choice. You can cycle through the choices for agiven letter by repeatedly pressing that key.

Change the Field Properties in the bottom section.
Change AutoValue from No to Yes.
Set FuelID as the Primary key.
Right-click on the green triangle to the left of FuelID (Figure 4) andchoose Primary Key from the menu. This places a key icon in front of
FuelID.

Creating database tables

11

Figure 4: Defining the primary key field

The primary key serves only one purpose: to uniquely identify the record.
Any name can be used for this field. We have used FuelID for
convenience, so we know to which table it belongs.

Note3) All other fields (Date, FuelCost, FuelQuantity, Odometer, and PaymentType):••

Type the next field name in the Field Name column.
Select the Field Type for each field.

–
–
–
•

12

For Date use Date[DATE]. (Press the D key to select it.)
PaymentType uses Text [VARCHAR], the default setting.
All other fields use Number [NUMERIC]. (Press the N key once toselect it.)

FuelCost, FuelQuantity, and Odometer need changes in the Field
Properties section (Figure 5).

–

FuelQuantity: Change Length to 6 and Decimal places to 3. (Manyfuel pumps measure fuel to thousands of a gallon in the USA where I
live.)––

Odometer: Change the Length to 10 and the Decimal places to 1.
FuelCost: Change the Length to 5 and Decimal places to 2. Click theFormat example button (Figure 5). This opens the Field Format
window (Figure 6). Use Currency as the Category and your currency
as the Format. My currency has two decimal places. Use what is
appropriate for yours.

Getting Started with BaseFigure 5: Changing field properties

Figure 6: Field Format options
4) To access additional formatting options, click the button to the right of theFormat example field.
5) Description can be anything, or can be left blank.
6) To save and close the table, choose File > Save. Name the table Fuel. Close
the Fuel table.
Follow the same steps to create the Vacations table. The fields and their field types
are listed in Figure 7. Make sure you make the Date field the primary key before
closing. (Right-click the gray box to the left of Date and select Primary key from themenu.) Save the table and name it Vacations. Close the Vacations table.

Creating database tables

13

Figure 7: Fields in Vacations table

Creating tables for the list box
When the same information can be used in several fields, design a table for each typeof information. Each table will contain two fields: the information field and ID, in thatorder.

Caution

You must create these tables with the information field listed first andthe ID field listed last. Failure to do so will produce the wrong results.
For my Payment table, I use Name and ID as my fields, with Dan, Kevin,and Cash being the Name entries. The corresponding ID entries are 0, 1,
2. When the Name field is listed first in the table, one of the three names
will appear in the payment field of the Fuel table. If the ID field is listed
first, 0, 1, or 2 appear in the payment field instead.

1) Follow the directions in “Creating tables in Design View” on page 11. In thetable, the two fields can be Type and PaymentID. In the Field Properties, set
AutoValue to Yes for the PaymentID field. Set the PaymentID field as theprimary key. (See Figure 8.)2) Save the table using the name Payment Type.

Figure 8: Table in Design View

Note

14

If you have several tables to create with the same fields, design one tableand produce the other tables by cutting and pasting. (See “Creating a tableby copying an existing table” on page 10.)

Getting Started with Base

Adding data to the list table
List tables do not require a form. Instead, add their data directly to the table. In thisexample, use the names of the two people with a bank card and Cash for cash
purchases.
1) In the main database window, click on the Tables icon (Figure 1). In the list oftables, right-click on Payment Type and select Open from the pop-up menu.
a) Enter Dan in the Type column in the first row. Press the Tab key to moveto the second row. Notice that the PaymentID value for this row changes
from <AutoField> to 0.
b) Enter Kevin in the second row. The PaymentID changes to 1.
c) Enter Cash in the third row. The PaymentID changes to 2.
2) Save and close the table window.

Tip

You can also use the Enter key to move from entry field to entry field, or
use the down arrow key to move from row to row.

Defining relationships
Now that the tables have been created, what are the relationships between ourtables? This is the time to define them based upon the questions we asked andanswered in the beginning.
When on vacation, we want to enter all of our expenses all at one time each day. Mostof these expenses are in the Vacations table, but the fuel we buy is not. So, we will
relate these two tables using the Date fields. Since the Fuel table may have morethan one entry per date, this relationship between the Vacations and Fuel tables is
one to many. (It is designated 1:n.)
The Vacations table also contains several fields for the type of payment used. For
each field listing the payment type, there is only one entry from the Payment Typetable. This is a one to one relationship: one field in one table to one entry from theother table. (It is designated 1:1.) Other tables also contain fields for the type of
payment. The relationship between the fields of those tables and the Payment Typetable are also 1:1.
Since the Payment Type table only provides a static list, we will not be defining a
relationship between the Payment Type table and the fields of the other tables which
use the entries of the Payment Type table. That will be done when the forms are
created.
The Fuel and Maintenance tables do not really have a relationship even though theyshare similar fields: Date and Odometer.

Tip

As you create your own databases, you need to also determine wheretables are related and how.

1) To begin defining relationships, choose Tools > Relationships. The
Automobile – OpenOffice.org Base: Relation Design window opens and the Add
Tables dialog pops up. (You can also open it by clicking the Add Tables icon on
the Relation Design window.)2) On the Add Tables dialog, use either of these ways to add a table to theRelation Design window:
Defining relationships

15

•

Double-click the name of the table. In our case, do this for both Vacations
and Fuel.

•Or, click the name of the table and then click Add for each table.

3) Click Close to close the Add Tables dialog when you have added the tables youwant.
4) You can define the relationship between the Vacations and Fuel tables in two
ways:

•

Click and drag the Date field in the Fuel table to the Date field in the
Vacations table. When you release the mouse button, a connecting line
forms between the two date fields.

Figure 9: Designation for a 1:n relationship•Or, click the New Relation icon. This opens the Relations window (Figure
Figure 10). Our two tables are listed in the Tables involved section.

–

In the Fields involved section, click the dropdown list under the Fuellabel.

––

Select Date from the Fuel table list.

–

Select Date from the Vacations table list. It should now look like
Figure 10.

–

Click OK.

Click in the cell to the right of this dropdown list. This opens a
dropdown list for the Vacations table.

Figure 10: Selected fields in a relationship5) Modifying the Update options and Delete options section of the Relation
window.
a) Right-click the line connecting the Date fields in the two table lists to open
a menu.
b) Select Edit to open the Relations dialog (Figure 11).
c) Select Update cascade.
d) Select Delete cascade.

16

Getting Started with BaseClick OK to close the Relations dialog and choose File > Save to save theRelation Design window.
While these options are not strictly necessary, they do help. Having themselected permits you to update a table that has a relationship defined withanother table. It also permits you to delete a field from the table.
e)Figure 11: Update options and Delete options section

Creating a database form
Databases are used to store data. But, how is the data put into the database? Forms
are used to do this. In the language of databases, a form is a front end for data entry
and editing.

Figure 12: Fields of a simple form

Figure 13: Simple form with additions

A simple form consists of the fields from a table (Figure 12). More complex forms cancontain much more, including additional text, graphics, selection boxes, and manyother elements. Figure 13 is made from the same table with a text label (FuelPurchases), a list box placed in PaymentType, and a graphic background.

Using the Wizard to create a form
We will use the Form Wizard to create a Vacations form, which will contain a form
and a subform.
In the main database window (Figure 1), click the Forms icon in the left column. In
the Tasks list, double-click Use Wizard to Create Form to open the Form Wizard(Figure 14). Simple forms require only some of these steps, while more complex
forms may use all of them.

Creating a database form

17

Step 1: Select fields.
1) Under Tables or queries, select Table: Vacations. Available fields lists the fields
for the Vacations table.
2) Click the right double arrow to move all of these fields to the Fields in the form
list. Click Next.

Figure 14: Form Wizard steps
Step 2: Set up a subform.
Since we have already created a relationship between the Fuel and Vacations tables,
we will use that relationship. If no relationship had been defined, this would be donein step 4.
1) Click the box labeled Add Subform.
2) Click Subform based upon existing relation.
3) Fuel is listed as a relation we want to add. So, click Fuel to highlight it, as in
Figure 15. Click Next.

Figure 15: Adding a subform

18

Getting Started with BaseStep 3: Add subform fields.
This step is exactly the same as step 1. The only difference is that not all of the fields
will be used in the subform.
1) Fuel is preselected under Tables or queries.
2) Use the >> button to move all the fields to the right.
3) Click the FuelID field to highlight it.
4) Use the < button to move the FuelID to the left (Figure 16). Click Next.

Figure 16: Selecting fields of a subform
Step 4: Get joined fields.
This step is for tables or queries for which no relationship has been defined. Because
we have already defined the relationship, the wizard skips this step.

Note

It is possible to create a relationship between two tables that is based
upon more than one pair of fields. How to do that and why is discussed
in the Base Guide.

When selecting a pair of fields from two tables to use as a relationship,
they have to have the same field type. That is why we used the Date fieldfrom both tables: both their field types are Date[DATE].

CautionWhether a single pair of fields from two tables are chosen as therelationship or two or more pairs are chosen, certain requirements must
be met for the form to work.

• No field from the subform can be the Primary key for its table.
(FuelID cannot be used.)• Each pair of joined fields must have the same file type.
• One of the fields from the main form must be the Primary key for
its table. (Date would have to be used.)

Creating a database form

19

Step 5: Arrange controls.
Each control in a form consists of two parts: label and field. This step in creating theform determines where a control’s label and field are placed in relationship with eachother. The four choices from left to right are Columnar left, Columnar - Labels on top,
As Data Sheet, and In Blocks - Labels Above.
1) Arrangement of the main form: Click the second icon (Columnar - Labels on
top). The labels will be placed above their field.
2) Arrangement of the subform: Click the third icon (As Data Sheet). (The labels
are column headings and the field entries are in spreadsheet format.) Click
Next.

Step 6: Set data entry.
Unless you have a need for any of these entries to be checked, accept the default
settings. Click Next.
Step 7: Apply styles.
1) Select the color you want in the Apply Styles list. (I chose the beige which isOrange 4 in the Color table.)2) Select the Field border you want. (I prefer the 3-D look. You might want toexperiment with the different possible settings.)3) Click Next.
Step 8: Set name.
1) Enter the name for the form. In this case, it is Fuel.
2) Click Modify the form.
3) Click Finish. The form opens in Edit mode.

20

Getting Started with BaseModifying a form
We will be moving the controls to different places in the form and changing thebackground to a picture. We will also modify the label for the PaymentType field aswell as change the field to a list box.
First, we must decide what we want to change. The discussion will follow this ten
step outline of our planned changes.
1) Provide a dropdown capability for the Date field in the main form, andlengthen the field to show the day of the week, month, day, and year.
2) Shorten the length of the payment fields (all fields containing the word
Payment).
3) Move the controls into groups: food, fuel subform, and miscellaneous.
4) Change the wording of some of the labels. Some single words should be twowords. Some abbreviations should be used if possible (Misc. formiscellaneous).
5) Change the lengths of several fields and labels. Only Lunch, Supper, Motel,
and Tolls have acceptable lengths. But for a better appearance, changes will bemade to these as well.
6) Replace all the fields whose label ends in Payment with a list box containing
the entries from the Payment Type table.
7) Lengthen the Note field vertically, add a scroll bar, and move it.
8) Make changes in the Date and PaymentType columns of the subform that are
similar to the changes in the main form.
9) Add headings for each group in the main form.
10) Change the background to a picture, then modify some of the labels so thatthey can be read clearly. Change the font color of the headings.
Here are some methods that we will be using in these steps. The controls in the main
form consists of a label and its field. Sometimes we want to work with the entire
control, other times we want to work with only the label or the field, and there aretimes when we want to work with a group of controls.

• Clicking a label or field selects the entire control. A border appears around thecontrol with eight green handles. You can then drag and drop it where you
want.

Figure 17: A selected control• Control+click a label or field selects only the label or the field. You can press
the Tab key to change the selection from the field to the label or the label tothe field.

Figure 18: Selecting a field of a control

Creating a database form

21

• Moving a group of controls is almost as easy as moving one of them.
1)
2)
3)

Click the field of the top left control to be moved, to select it.
Move the cursor to just above and to the left of the selected control.
Drag the cursor to the bottom right of the group of controls and release
the mouse button.
As you drag the cursor, a dashed box appears showing what is containedin your selection. Make sure it is big enough to include the entire length of
all the controls.
When you release the mouse button, a border with its green handles
appears around the controls you selected.

Figure 19: Selecting multiple controls
Move the cursor over one of the fields. It changes to a drag icon. Drag thegroup of controls to where you want them.

Tip

When either changing size or moving a control, two properties of the Form
Design toolbar should be selected: Snap to Grid, and Guides when Moving.
Your controls will line up better, and an outline of what you are moving
moves as the cursor moves.
You should also have both rulers active (View > Ruler).

Step 1: Change the Date field.
1) Control+click the Date field to select it.
2) Move the cursor over the middle green handle on the right side. It shouldchange to a double-headed arrow.
3) Hold the left mouse button down as you drag the cursor to the right until thelength is 6 cm. The vertical dashed line is lined up with the 6. Release themouse button.
4) Click the Control icon in the Form Controls toolbar. The Properties: Date Field
window opens. Each line contains a property of the field.

Figure 20: Form Controls toolbar•

Scroll down to the Date format property. This is a dropdown list withStandard (short) as the default setting. Click it to open the list. Select theStandard (long) entry.

•

Scroll down to the Dropdown property. Its default setting is No. It is also a
dropdown list. Click to open the list. Select Yes.

Tip

22

To see what the Date field will look like, click the Form Mode On/Of
icon (the second icon from the left in Figure 20). You can do this any time
you want to see the form with the changes you have made.

Getting Started with BaseStep 2: Shorten the width of some fields.
All of the fields with a label containing the word payment are too wide. They needshortening before the controls are moved.
1) Control+click the BPayment field.

Figure 21: Selecting a field
2) Move the cursor over the middle green handle on the right. The cursor
becomes a double-headed arrow.
3) Drag the cursor to the left until the field is 2.5 cm wide (1 inch).

Tip

If you have the Snap to Grid and Guides when moving icons selected in
the Design Format toolbar, you will see how wide the field is as you
shorten it.

4) Repeat these steps to shorten these fields: Lpayment, SPayment, SnPayment,
Mpayment, and MiscPayment.
Step 3: Move the controls to group them by category.
We want to move the controls so that they look like Figure 22.

Figure 22: Positioning of controls
1) Click the first control you want to move. A border appears around the control
with eight green handles.
2) Move the cursor over the label or field of the control. It change shape to a dragicon.
3) Drag and drop the control to where you want it.

Caution

Do not use Control+click when moving a field. It moves either the fieldor the label but not both. To move both, use a mouse click and drag tothe desired spot.

4) Use the same steps to move the rest of the controls to where they belong.

Creating a database form

23

Step 4: Change the label wording.
Field names need to be single words. However, the labels for the fields in a form canbe more than one word. So, we will change them by editing the text in the label.

Note

The table wizard in Base contains suggested fields which are single
words, often consisting of two separate words. Table names in the wizard
have been that way also. However, you can use multiple words as thename of a field, label, or table. We will do so when we create a list box foreach of the payment type controls.

1) Control+click the SnackNo label. Do one of the following:••

Right-click the SnackNo label and select Control from the pop-up menu.

••

In the Label selection, edit the label to Snack No.

Or, click the Control icon in the Form Control toolbar (Figure 20).
2) The dialog that opens is labeled Properties: Label Field. It contains all of theproperties of the selected label.
Close the Properties dialog.
3) Use the same procedure to change these labels as well: BPayment to Payment,
LPayment to Payment, SPayment to Payment, Miscellaneous to Misc.,
SnackCost to Snack Cost, MPayment to Payment, MiscPayment to Misc.
Payment, and MiscNotes to Misc. Notes.

Tip

You can modify all of the listings in the Properties window. For example, if
you change the Alignment from Left to Center, the word or words in thelabel are centered within the label. When you have some time, you mightwant to experiment with different settings just to see the results you get.

Step 5: Change the widths of the labels and fields.
We want the following controls to be 2 cm wide (0.8 inches): Breakfast, Lunch,
Supper, Odometer, Snack No., Tolls, Snack Cost, Motel, and Misc. All of the payment
fields were changed in step 2, but Misc. Payment needs to be changed to 3 cm (1.2
inches).
1) Right-click Breakfast and choose Position and Size. On the Position and Sizedialog, change Width to 2 cm.
2) Repeat for the other listed controls, using 3 cm for Misc.Payment.
When changing the position or size of an entire control, use the Position
and Size dialog or the drag and drop method.

Caution24

When working with either the label or the field (but not both at the sametime), you can use the Properties dialog to make these changes when
you want to be exact. However, you need to be careful not toaccidentally select the entire control for use with the Properties dialog
or you will apply the exact same values to both the label and field. For
example, if you enter the values for a new position, both the field andthe label moves to the same position and the field is positioned on top of
the label. Then you have to move each of them to where you want them.

Getting Started with Base

Note

To open the Properties window, right-click a control and select Control
from the pop-up menu. Or, you can click the Control icon in the Form
Controls toolbar. Just be careful, and use Control+Z to undo any
mistakes you may make. Detailed instructions on how to use theProperties window will be in the Base Guide.

Step 6: Replace fields with other fields.
We want to replace the PaymentType field with a List Box. Then we can choose thetype of payment from the Payment Type table rather than having to manually enter
the type. In my case, each of my payment types begins with a different letter. If I
enter the first letter of the payment type, the rest of the word automatically appears.
I can then go to the next field.
1) Control+click the Payment field for Breakfast. The green handles appear
around the field but not around the Label.

Figure 23: Selecting a field of a control
2) Right-click within the green handles and select Replace with > List Box.
3) Click the Control icon in the Form Controls toolbar to open the Properties: List
Box dialog.
4) On the General tab, scroll down to the Dropdown selection. Change the No to
Yes.

Figure 24: Dropdown list open to reveal choices5) Click the Data tab.

•Type of list contents is a dropdown list. Change it to Sql.

Creating a database form

25

Figure 25: Type of list contents dropdown list•

Type the following exactly as it is in the List contents box:
SELECT "Type", "Type" FROM "Payment Type"

Figure 26: List content for payment type fields

Note

26

What you wrote is called an SQL command. The words SELECT and FROM
are written in capital letters because they are commands. When thecommand SELECT is used, it requires a field name within quotation marks
and then the field’s alias, also within quotation marks. In this case, thefield and its alias are the same. The FROM command requires the name of
the table which contains the field. Single-word table names do not require
quotation marks, but multiple-word table names do.

•

Repeat these steps for the payment fields for Lunch, Supper, Motel,
Snacks, and Misc. The main form should look like Figure 27 as far as
where the controls are located. It also shows what the Note control shouldlook like. Those changes are explained in the next step.

•

Close the Properties window.

Getting Started with BaseFigure 27: Position of controls in main form
Step 7: Change the Misc. Notes field.
We want the Misc. Notes control, which has a field type of Memo, to have a vertical
scrollbar for additional text space if desired.
1) Control+click the Misc. Notes field. The green handles should surround thefield but not its label.
2) Click the Control icon to open the Properties window (Figure 28).
3) Scroll down to the Scrollbars setting. Change the selection from None to
Vertical in this dropdown list.

Figure 28: Scrollbar selections in the Properties window
4) Close the Properties window.
5) Lengthen the Misc. Notes field by moving the cursor over the middle green
handle at the bottom of the field and dragging down until the length is 6 cm
(2.4 inches).

Creating a database form

27

Step 8: Change labels and fields in the subform.
The subform is located at the bottom of the form. We want to widen the Date column,change the field in the PaymentType column to a list box, and change the label for the
PaymentType column to two words.
To widen the Date column, move the mouse pointer over the dividing line between
the Date and FuelCost columns. When the pointer changes shape, click and drag tomove the divider to the right.
To change the PaymentType column:
1) Right-click the label PaymentType and choose Replace with > List box fromthe menu.
2) Again right-click the label PaymentType to open the menu. Select Column toopen the Properties dialog (Figure 29).
3) In the Label box, change PaymentType to Payment Type.
4) Click the Data tab.
5) From the Type of list contents dropdown list, select Sql.
6) Type the following exactly as it is written:
SELECT "Type", "Type" FROM "Payment Type"
7) Close the Properties dialog.

Figure 29: Properties window for control in a subform
Step 9: Add headings to groups.
This step is easier to do if you have end-of-paragraph markers visible. Choose View >Nonprinting Characters to turn them on.
1) Make sure the cursor in in the upper left corner. If it is not, click in that corner
to move it there.
2) Press the Enter key to move the cursor down to the space between the Date
field and the Breakfast field.
3) Change the Apply Styles dropdown list from Default to Heading 2.
28

Getting Started with BaseFigure 30: Apply Styles list
4)
5)
6)
7)
8)

Use the spacebar to move the cursor to where you want the heading to start.
Type the heading Meals.
Use the spacebar to move the cursor to the center of snack area.
Type the heading Snacks.
Use the Enter key to move the cursor between the Supper control and thesubform.
9) Use the spacebar to move the cursor to the center of the subform.
10) Type the heading Fuel Data.

Note

If you know how to use styles, you can open the Styles and Formatting
window using F11. Right-clicking the Heading 2 paragraph style allows
you to modify the appearance of all three headings. See Chapter 6 of theWriter Guide for details.

Step 10: Change the background of a form.
The background for a form can be a color, or a graphic (picture). You can use any of
the colors in the Color Table at Tools > Options > OpenOffice.org > Colors. If you
know how to create custom colors, you can use them. You can also use a picture(graphic file) as the background.
If you choose a dark background, you many need to change many of the labels andheadings so they can be seen.
1) Select the labels of the top row of controls.
a) Control+click the Date label.
b) Control+shift+click the rest of the labels of the top row. The border will
gradually grow to the right as you do this until all the labels are enclosed
in it.

Figure 31: Selecting multiple labels at one time
Click the Control icon in the Design Form toolbar to open the Properties
dialog.
d) Change the Background color selection from Default to Light cyan. (This isa dropdown list.) Close the Properties dialog.
2) Select the other labels in the same way and then change their backgroundcolor.
3) To change the font color for the headings:a) Open Styles and Formatting using the F11 key. Make sure the Paragraphicon is selected at the left end of the icons in Figure 32.
b) Right-click the Heading 2 style to open a pop-up window and selectModify from this menu.
c) In the Paragraph Style Heading 2 dialog, click the Font Efects tab.
Change Font color from Automatic to Light Cyan.
c)

Creating a database form

29

Figure 32: Styles and Formating windowd)

Tip

Click OK to close the dialog.
Learning how to use styles can be very helpful at times. By using styles,
we changed the font color for all three headings at one time. There areother methods of changing the font color, but they require repeating thesame steps for each heading.

4) To add a graphic to the background:a) Right-click on the background and select Page from the pop-up menu.
b) On the Page Style dialog, click the Background tab, change the As
dropdown list from Color to Graphic.
c) Click Browse to find and select the graphic file you want to use, and click
Open. In the Type section of the Background tab, select Area.
d) Click OK to close the dialog. The form should look like Figure 33.

Figure 33: Finished form
Step 11: Change the tab order.
30

Getting Started with BaseThe Tab key moves the cursor from field to field. This is much easier to do than toclick each field to enter data into it. It also permits us to group our expenses into
areas before we begin entering data. For example, all of our meal receipts can begrouped together as can our snacks and also our fuel purchases.
1) Control+click the Date field.
2) Click the Form Design icon in the Form Controls toolbar to open the Form
Design toolbar (Figure 34), or choose View > Toolbars > Form Design toopen this toolbar.
3) Click the Activation Order icon (circled).

Figure 34: Form Design toolbar with Activation Order icon circled
4) Rearrange the order of the fields in the Tab Order window.
a) Find the txtMPayment listing near the bottom of the list and click it.
b) Click the Move Up button until txtPayment is just below fmtMotel.
c) Use the same two steps to put the fields in the same order as in Figure 35.
Click OK.

Figure 35: Tab order for the main form
5) Save and close the form.
6) Save the database.

Creating forms and subforms in Design View
This method requires using the Form Controls and Form Design toolbars extensively.
These techniques are beyond the scope of this document. Instructions for creating
forms using Design view will be described in the Database Guide.

Creating a database form

31

Accessing other data sources
OpenOffice.org allows data sources to be accessed and then linked into OOo
documents. For example, a mail merge links an external document containing a list ofnames and addresses into a letter, with one copy of the letter being generated foreach entry.
To access a data source that is not a *.odb file:1) File > New > Database opens the Database Wizard window.
2) Select Connect to an existing database. Click the arrow next to the
Database type field and select the database type from the drop-down list. Click
Next.
3) Click Browse and select the database. Click Next.
4) Accept the default settings: Register the database for me, and Open the
database for editing. Click Finish. Name and save the database in the locationof your choice.

Accessing a spreadsheet as a data source
Accessing a spreadsheet is similar to accessing other databases:
1) Choose File > New > Database.
2) Select Connect to an existing database. Select Spreadsheet as the Database
type.
3) Click Browse to locate the spreadsheet you want to access. If the spreadsheet
is password protected, check the Password required box. Click Next.
4) If the spreadsheet requires a user’s name, enter it. If a password is also
required, check its box. Click Next.
Using this method of accessing a spreadsheet, you cannot change
anything in the spreadsheet. You can only view the contents of the
spreadsheet, run queries, and create reports based upon the data
already entered into the spreadsheet.

Note

All changes in a spreadsheet must be made in the spreadsheet itself,using Calc. After modifying the spreadsheet and saving it, you will see
the changes in the database. If you create and save an additional sheet
in your spreadsheet, the database will have a new table the next time
you access it.

Registering *.odb databases
Databases created by OOo2.x or later are in the *.odb (OpenDocument Base) format.
Other programs can also produce databases in this format. Registered a *.odb
database is simple:
1)
2)
3)
4)
5)

32

Choose Tools > Options > OpenOffice.org Base > Databases.
Under Registered databases, click New.
Browse to where the database is located.
Make sure the registered name is correct.
Click OK.

Getting Started with BaseUsing data sources in OpenOffice.org
Having registered the data source, whether a spreadsheet, text document, external
database or other accepted data source, you can use it in other OpenOffice.org
components including Writer and Calc.

Viewing data sources
Open a document in Writer or Calc. To view the data sources available, press F4 orselect View > Data Sources from the pull-down menu. This brings up a list ofregistered databases, which will include Bibliography and any other databaseregistered, such as the Automobile database created earlier in this chapter.
To view each database, click on the + to the left of the database’s name (see Figure36). This brings up Tables and Queries . Click on the + next to Tables to view theindividual tables created. Now click on a table to see all the records held in it.

Figure 36: Databases

Editing data sources
Some data sources can be edited in the View Data Sources dialog. A spreadsheet cannot. A record can be edited, added, or deleted.
The data is displayed on the right side of the screen. Click in a field to edit the value.
Beneath the records are five tiny buttons. The first four move backwards or forwards
through the records, or to the beginning or end . The fifth button, with a small star,inserts a new record.
Insert new record
Figure 37: View Data Sources navigation buttons
To delete a record, right-click on the gray box to the left of a row to highlight theentire row, and select Delete Rows to remove the selected row.

Figure 38: Deleting a row in the Data View window

Using data sources in OpenOffice.org

33

Launching Base to work on data sources
You can launch OOo Base at any time from the View Data Source pane. Just rightclick on a database or the Tables or Queries icons and select Edit Database File.
Once in Base, you can edit, add, and delete tables, queries, forms, and reports.

Using data sources in Writer and Calc
Data can be placed into Writer and Calc documents from the tables in the data source
window. In Writer, values from individual fields can be inserted. Or, a complete table
can be created in the Writer document. One common way to use a data source is toperform a mail merge.

Tip

Choosing Tools > Mail Merge Wizard or clicking on the Mail Merge
icon on the View Data Source pane launches the Mail Merge wizard
which steps you through creating a mail merge document. See Chapter
11 in the Writer Guide.

Writer documents
To insert a field from a table opened in the data source window into a Writer
document, click on the field name (the gray square at the top of the field list) and,with the left mouse button held down, drag the field onto the document . In a Writer
document, it will appear as <FIELD> (where FIELD is the name of the field you
dragged).
For example, to enter the cost of meals and who paid for them on a certain date of avacation:
1) Open the list of data sources (F4) and select the Vacations table in the
Automobile database.
2) Use this sentence: “On (date), our breakfast cost (amount) paid by (name), ourlunch cost (amount) paid by (name), and our supper cost (amount) paid by(name).” But only type “On , our breakfast cost paid by , our lunch cost paidby , and our supper cost paid by .”3) To replace (date), click the field name Date in the data source window anddrag it to the right of the word On. The result: On <Date>. If you have Field
shadings turned on (View > Field shading), <Date> has a gray background.
Otherwise it does not.
4) To replace first (amount), click the Breakfast field name and drag it to the rightof our breakfast cost. Make sure you have the proper spacing between the fieldnames and the words before and after them. Result: breakfast cost
<Breakfast>.
5) To replace the first (name), click the BPayment field name and drag it to theright of paid by. Result: paid by <BPayment>.
6) In the same way, fill in the rest of the fields in the sentence.

34•

Use <Lunch> and <LPayment> for the second set of (amount) and (name)in the sentence.

•

Use <Supper> and <SPayment> for the third set of (amount) and (name)in the sentence.

Getting Started with Base7) Final result: On <Date>, our breakfast cost <Breakfast> paid by<BPayment>, our lunch cost <Lunch> paid by <LPayment>, and our supper
cost <Supper> paid by <SPayment>.
8) Add data to the fields of the sentence:•

Click the gray box to the left of the row of data you want to add. That row
should be highlighted like the second row of Figure 39.

•

Click the Data to Fields icon (circled). This should fill the fields with thedata from the row you chose.

•

Click another row and then click this icon again. The data in the sentencechanges to this selected row of data.

•

Save the document if you want to use it as an example later.

Figure 39: Selected row in data source window
Adding data in table format is a little easier and takes perhaps fewer steps. Some ofthe steps will be quite similar.
1) Navigate to the place you want to place the table and click the location.
2) Control+Click the gray box to the left of each row of the data source that you
want to be a row in your table when the rows are not consecutive. To selectconsecutive rows, click the gray box to the left of the top desired row and
Shift+click the bottom desired row.
3) Click the Data to text icon to open the Insert Database Columns dialog (Figure40). (The Data to text icon is to the left of the Data to Fields icon in Figure 39.)

Figure 40: Insert Database Columns dialog
4) Move the fields you want in your table from the Database Columns list to theTable column(s) list.

Using data sources in OpenOffice.org

35• To place the fields in the order you select, click the field and use the single

arrow to move the fields in the order you desire. You can also limit the fields
you use to less than all of the fields available.

• If you want to use all of the fields, use the double arrow pointing to theright to move all of them at one time. The order of the fields in the table you
create will be the same as in the data source table.

• To remove a single field from the Table Column(s) list, click the field anduse the single arrow pointing to the left.

5) To start over, click the double arrow pointing to the left.
6) Select the settings for your table. Use the default settings as in Figure 40.
7) Click OK. Save the document.

Calc spreadsheets
There are two ways to enter data in a Calc spreadsheet. One enters the data into the
spreadsheet cells. The other creates records in the spreadsheet just like they aredone in creating a form in a database. While you can directly access the data in the
spreadsheet cells, you can only see the data in the records created in the
spreadsheet.
Entering data directly to the spreadsheet cells uses the Data to Text icon as we did tomake a table in a Writer document. But differences exist in these two situations.
The steps are straightforward.
1) Click the cell of the spreadsheet which you want to be the top left of your data
including the column names.
2) Use F4 to open the database source window and select the table whose data
you want to use.
3) Select the rows of data you want to add to the spreadsheet:•

Click the gray box to the left of the row you want to select if only selecting
one row. That row is highlighted.

•

To select multiple rows, hold down the Control key while clicking the graybox of the rows you need. Those rows are highlighted.

•

To select all the rows, click the gray box in the upper left corner. All rows
are highlighted.

4) Click the Data to text icon to insert the data into the spreadsheet cells.
5) Save the spreadsheet.
Adding records to a spreadsheet is fairly easy. You need to have the Data Source
window open, your spreadsheet open, and the table you want to use selected.
1) Click the gray box above the field name for the table's ID field.
2) Drop and drag the gray box for the table's ID field to where you want therecord to appear in the spreadsheet.
3) Repeat until you have moved all of the fields you need to where you wantthem.
4) Name and save the spreadsheet.
5) Click a row of the table in the Data Source window.
6) Drag the data in the ID field in the selected row onto the ID field in the
spreadsheet. The Save icon should activate.

36

Getting Started with Base

7)

Click the Edit File button to make the spreadsheet read only. Click Save when
asked if you want to save the file.

8) The Data Source window goes blank, the fields in the spreadsheet are
populated with data from the row you selected, and the Form Navigation
toolbar appears at the bottom of the spreadsheet.

Figure 41: Navigation arrows of a form
9) Click the arrows on the Form Navigation toolbar to view the different recordsof the table. (The arrows are circled in red.) The number in the box changes
when you change the record number by clicking an arrow. The data in thefields changes correspondingly to the data for that particular record number.

Entering data in a form
Records are used to organize the data we enter into a form. They also organize thedata we enter into a subform.
Each type of field allows a different method to enter the data. In many if not all cases,
more than one method can be used.
The first step to entering data in a form is to open it from the main database window(Figure 1).
1) Click the Forms icon in the Database list.
2) Find the form’s name in the Forms list (Vacations).
3) Double-click the form’s name.
The quickest way to enter a date in the Date field is to click the arrow that opens the
dropdown calendar. Then click the day the you want. Then press the Tab key to go to
the Odometer field.

Figure 42: Calendar dropdown
The Odometer, Tolls, and Motel fields are numerical fields. Enter values directly into
them, or use the up and down arrows. When the value is entered, use the Tab key to
go to the next field.

• Clicking the up arrow increases the value, and the down arrow decreases thevalue one unit.

• These two arrows only change the numerals to the left of the decimal place.

Entering data in a form37• Numerals to the right of the decimal place must be changed by deleting themand typing the desired ones.

The Motel’s Payment field is a dropdown list. If as in my case, all of the elements of
the list start with different letters, typing the first letter selects the desired entry.

• If two or more elements of the list have the same first letter, repeated typing of
the first letter will cycle through the elements with this same first letter.

• When the selection is correct, use the Tab key to go to the Misc. field.
The rest of the fields of the main form are either numerical fields or dropdown lists
until we reach the Misc. Notes field. It is a text field. Type anything you desire in thisfield just as you would any simple text editor.

Note

Since the Tab key is used to move between fields, it can not be used in atext field. All spacing must be done by the spacebar. Finally, the Enter
key only acts as a line break to move the cursor to the next line. While
the Enter key will move from non-text fields to non-text fields, it will not
do so from a text field. Use the Tab key instead.
If we did not have a subform for fuel data, pressing the Tab key in thelast field would save all of the fields, clear them, and make the form
ready to accept data on the second record.

Since we have a subform form, using the Tab key places the cursor in the first Date
field of the subform with the date automatically entered to match the Date field of themain form.
The FuelCost, FuelQuantity, and Odometer fields are numerical fields. The Payment
field is a dropdown list. Enter the data just as you did in the main form, and use the
Tab key to go to the next field.
When you use the Tab key to leave the Payment field, it goes to the Date field of thenext line and automatically enters the date. Now you can enter your second set offuel data for this day.
To move to another record when the form has a subform, click any of the fields of themain form. In this case, click the Date field of the main form. Then use the directional
arrows at the bottom. There are four of them from left to right: First Record,
Previous Record, Next Record, and Last Record (Figure 41). To the right of thesearrows is the New Record icon.
To create a new record while in another record in the main form, click either the
Next Record icon or the New Record icon.

Tip

The number in the Record box is the number of the record whose data isshown in the form.
If you know the number of the record you want, you can enter it into therecord box and then press Enter to take you to that record.

Figure 43 is a record with data inserted in its fields.

38

Getting Started with BaseFigure 43: Sample record of the Vacation form and subform

Creating queries
Queries are used to get specific information from a database. Query results are
special tables within the database.
To demonstrate the use of queries, we will use two different methods:• Using our CD-Collection table, we will create a list of albums by a particularartist. We will do this using the Wizard.

• The information we might want from the Fuel table includes what our fueleconomy is. We will do this using the Design View. (Queries that requirecalculations are best created with the Design view.)

Using the Wizard to create a query
Queries created by the wizard provide a list or lists of information based upon what
one wants to know. It is possible to obtain a single answer or multiple answers,
depending upon the circumstances.
In the main database window (Figure 1), click the Queries icon in the Databases
section, then in the Tasks section, click Use Wizard to Create Query. The Query
Wizard window opens (Figure 44). The information we want is what albums are by acertain musical group or individual (the album’s author). We can include when eachalbum was bought.

Note

When working with a query, more than one table can be used. Since
different tables may contain the same field names, the format for naming
fields in a query is Table name.field name, with a period (.) between thetable name and the field name. For example, The Lunch field of the
Vacation table used in a query has the name Vacation.Lunch.

Creating queries

39

Step 1: Select the fields.
1) Select the CD-Collection table from the dropdown list of tables.
2) Select fields from the CD-Collection table in the Available fields list.
a) Click Artist, and use the > button to move it to the Fields in the Query list.
b) Move the AlbumTitle and DatePurchased fields in the same manner.
c) Click Next.

Tip

To change the order of the fields, select the field you want to move andclick the up or down arrow.

Figure 44: First page of the Query Wizard
Step 2: Select the sorting order.
Up to four fields can be used to sort the information of our query. A little simple logic
helps at this point. Which field is most important?
In our query, the artist is most important. The album title is less important, and thedate purchased is of least importance. Of course, if we were interested in what music
we bought on a given day, the date purchased would be the most important.

Figure 45: Sorting order page1) Click the first Sort by dropdown list.

•
•

40

Click CD-Collection.Artist to select it.
To list the artists in alphabetical order (a-z), select Ascending on the right.

Getting Started with Base2) Click the second Sort by dropdown list.

•

Click CD-Collection.ArtistTitle. and select Ascending.
3) Repeat this process for CD-Collection.DatePurchased.
4) Click Next.
Step 3: Select the search conditions.
The search conditions allow us to compare the name we entered with the names of
the artist in our database and decide whether to include a particular artist in ourquery or not.

•
•
•
•
•
•
•

is equal to: the same as
is not equal to: not the same as
is smaller than: comes before
is greater than: comes afteris equal or less than: the same as or comes before
is equal or greater than: the same as or comes after
like: similar to in some way

Note

These conditions apply to numbers, letters (using the alphabetical order),and dates.

1) Since we are only searching for one thing, we will use the default setting of
Match all of the following.
2) We are looking for a particular artist, so select CD-Collection. Artist in the
Fields list and is equal to as the Condition.
3) Type the name of the artist in the Value box. Click Next.
Step 4: Select type of query.
We want simple information, so the default setting: Detailed query is what we want.
Click Next at the bottom of the window.

Note

Since we have a simple query, the Grouping and Grouping conditions are
not needed. Steps 5 and 6 of the wizard are skipped in our query.

Step 7: Assign aliases if desired.
We want the default settings. Click Next.
Step 8: Overview.
Name the query (suggestion: Query_Artists). To the right of this are two choices.
Select Display Query. Click Finish.

Using the Design View to create a query
Creating a query using Design View is not as difficult as it may first seem. It may takemultiple steps, but each step is fairly simple.
What fuel economy is our vehicle getting (miles per gallon in the USA)? This question
requires creating two queries, with the first query used as part of the second query.
Creating queries

41

Step 1: Open the first query in Design View.
Click Create Query in Design View.
Step 2: Add tables.

Figure 46: Add Tables or Query window
1) Click Fuel to highlight it.
2) Click Add. Click Close.

Tip

Move the cursor over the bottom edge of the fuel table (Figure 47) anddrag the to make it longer and easier to see all of the fields in the table.

Figure 47: Fuel table in query
Step 3: Add fields to the table at the bottom.
1) Double-click the FuelID field in the Fuel table.
2) Double-click the Odometer field.
3) Double-click the FuelQuantity field.
The table at the bottom of the query window should now have three columns.

Figure 48: Query table

42

Getting Started with BaseStep 4: Set the criterion for the query.
We want the query’s FuelID to begin with the numeral 1.
1) Type >0 in the Criterion cell under FuelID in the query table.
2) Click the Run Query icon in the Query Design toolbar.

Figure 49: Query Design toolbar
Figure 50 contains the Fuel table with my entries and the query results based upon
the Fuel table: the query results are in the right table.

Figure 50: Fuel table and query of the fuel table
Step 5: Save and close the query.
Since this query contains the ending odometer reading for our calculations, name it
End-Reading when saving it. Then close the query.
Step 6: Create the query to calculate the fuel economy.
1) Click Create Query in Design View to open a new query.
2) Add the Fuel table to the query just as you did in step 2: Add tables But, do
not close the Add Tables window.
3) Add the End-Reading query to this query.
a) Click Queries to get the list of queries in the database.

Figure 51: Selecting queries to add to another queryb)c)

Click End-Reading.
Click Add, and then click Close.

Step 7: Add fields to the table at the bottom of the query.
We are going to calculate the fuel economy. To do this we need the FuelQuantity anddistance traveled. Since the FuelQuantity we want to use is at the ending odometerreading, we will use the End-Reading query to get it. We will also use the Odometerfield from the Fuel table and End-Reading query.
Creating queries

43Figure 52: Tables in this query
1) Double-click FuelQuantity in the End-Reading query.
2) Double-click Odometer in the End-Reading query.
3) Double-click Odometer in the Fuel table.

Figure 53: Added fields to the query
Step 8: Enter the FuelID diference field.
We want the difference between the FuelID value of the Fuel table and FuelID valueof the End-Reading query to equal one (1).
1) Type "End-Reading"."FuelID" - "Fuel"."FuelID" in the field to the right of
the Odometer field of the Fuel Table.
Type the numeral 1 (one) in the Criterion cell of this column.

Figure 54: Typing in calculation of fields
2) Calculate the distance traveled:

•
•

44

Type "End-Reading"."Odometer" – "Fuel"."Odometer" in the Field cell.
Type >0 in the Criterion cell.

Getting Started with BaseFigure 55: Field for distance traveled calculations
3) Calculate fuel economy:
Type ("End-Reading"."Odometer" – "Fuel"."Odometer")/"EndReading"."FuelQuantity" in the next column to the right of the word Field.

Figure 56: Fuel economy calculation field

Note

When entering fields for these calculations, you must follow this format:
table or query name followed by a period follow by the field name. For
hyphenated or multiple-word names (table or query), use double quotes
around the table or query name. The query will then add the rest of the
double quotes as in Figure 56.
Use the arithmetical symbol between the two. More than one
calculation can be done by using parentheses to group the arithmeticaloperations.

Step 9: Run the query and make some modification.
After we run the query to make sure it works correctly, we will hide all of the fields
that we do not need.
1) Click the Run Query icon in the Design Query toolbar (Figure 49). The results
are in Figure 57.

Figure 57: Result of running the fuel economy query
Notice that not all of the last column label is visible because some of the labels
are long. We can fix this problem by using an alias for many of the fields. The
labels are replaced by their aliases.
2) Add Aliases:
Type in the aliases as they are listed in Figure 58.

Creating queries

45

Figure 58: Query table with aliases added
3) Run the query again. The results are in Figure 59.

Figure 59: Query run with aliases
We really do not need the column showing the difference between the FuelID
fields from the table and query, so we will hide it. While it will not be visible, itwill still be used in the calculations.
4) Hide a field that does not need to be seen.
Remove the check in the box of the Visible cell as in Figure 60.

Figure 60: Making a field invisible in a query run5) Rerun the query (Figure 61).

Figure 61: Query run with aliases
Step 10: Close, save, and name the query.
My suggestion for a name is Fuel Economy.
There are obviously other calculations that can be made in this query such as cost
per distance traveled and how much of the cost belongs to each of the payments
types.

Note46

To fully use queries requires a knowledge of set operations (unions,intersections, and, or, complements, and any combinations of these).
Having a copy of the Hsqldb User Guide, available fromhttp://hsqldb.org/, is also extremely useful.

Getting Started with BaseCreating reports
Reports provide information found in the database in a useful way. In this they are
similar to queries. Reports are generated from the database’s tables or queries. They
can contain all of the fields of the table or query or just a selected group of fields.
Reports can be static or dynamic. Static reports contain the data in the selected fields
at the time the report was created. Dynamic reports can be updated to show thelatest data.
For example, a report on expenses for a vacation in the past should probably be astatic report because it is based upon specific data that does not change. However, areport on the fuel data should probably be a dynamic report, because this report
depends upon data that does change.

CautionDynamic reports update only the data that is changed or added to atable or query. They do not show any modifications made to the table or
query itself. For example, after creating the report below, open the fueleconomy query created in the previous section. For the "EndReading".”Odometer – Fuel”.”Odometer” column, change the number 1
to the number 3. The report will be identical before and after you makethe change.

All reports are based upon a single table or query. So you need first to decide what
fields you want to use in the report. If you want to use fields from different tables,
you must first combine these fields in a single query. Then you can create a report on
this query.
For example, a report on vacation expenses includes both fuel costs and meal costs.
These values are contained in fields of two different tables: Vacations and Fuel. So
this report requires creating a query.

Creating a static report
We will create a report on vacation expenses. Certain questions need to be asked
before creating the report.

•
•
•
•
•

What information do we want in the report?
How do we want the information arranged?
What fields are required to provide this information?
Will a query have to be created because these fields are in different tables?
Are there any calculations required in the data before being added to thereport?

The expenses for our vacation are motel, tolls, miscellaneous, breakfast, lunch,supper, snacks, and fuel. One possible report would simply list the totals of each ofthese expense groups. Another possible report would list the expense totals for eachday of the vacation. A third possible report would list the totals for each expensegroup for each type of payment. (This would let us know where the money came fromto pay the expenses.) The best way to create reports like these is to create thequeries needed to gather the needed data, insert the query data into a spreadsheet,and use the necessary Calc functions on this data.
We will create two reports, one listing the expenses each day other than fuel and thesecond listing the fuel costs each day.

Creating reports

47

The fields we need for the first report from the Vacations table are: Date, Motel, Toll,
Breakfast, Lunch, Supper, SnackCost, and Miscellaneous. This report will not require
an additional query.
The second report involves the Fuel table. Since this table includes fuel purchases attimes other than during the vacation, we need to create a query that contains only
the fuel purchased during the vacation.

Vacations table report
To create a new report.
1) Click the Reports icon in the Database list in the Automobile – OpenOffice.org
Base window (Figure 19).
2) In the Tasks list, click Use Wizard to Create Report. The Report Wizard
opens.
Step 1: Field selection
1) Select Table: Vacations in the Tables or Queries dropdown list.
2) Use the > to move these fields from the Available fields list to the Fields inreport list: Date, Motel, Tolls, Miscellaneous, Breakfast, Lunch, Supper, andSnackCost. Click Next.

Figure 62: Adding fields to a report
Step 2: Labeling fields
Change any field labels you wish. We will shorten Miscellaneous to Misc. Click Next.
Step 3: Grouping
Since we are grouping by the date, use the > button to move the Date field to theGrouping list. Click Next.

Figure 63: Selecting fields for grouping data
48

Getting Started with BaseStep 4: Sort options
We do not want to do any additional sorting. Click Next.
Step 5: Choose layout
We will be using the default settings for the layout. Click Next.
Step 6: Create report

•
•
•

Note

Label the report: Vacation Expenses.
Select Static report.
Click Finish.
If you feel adventurous, try selecting some of the other layout choices.
After selecting a choice, drag the Report Wizard window out of the way
so that you can see what you have selected. (Move the cursor over the
Title Bar of the window, and then drag and drop.)

Vacation fuel report
1) Create a query containing only fuel bought on the days of the vacation.
a) Open a query in Design View.
b) Follow the steps for adding tables in “Add tables” on page 42 to add theFuel table.
c) In the Fuel table, double-click Date and FuelCost to enter them in thetable at the bottom of the query.
d) In the Criterion cell of the Date field, type the following:
BETWEEN #5/25/2007# AND #5/26/2007#

Figure 64: Setting the criterion for a query
2) Save, name, and close the query. (Suggestion: Vacation Fuel Purchases.)

Tip

When using dates in a query, enter them in numerical form MM/DD/YYYY
or DD/MM/YYYY depending upon your language's default setting for dates(my default setting is MM/DD/YYYY).
Each date must have a # before and after it. Hence, May 25, 2007 is
written #05/25/2007# or #25/5/2007# depending upon your language’s
default setting for dates.

3) Open a new report.

••

Right-click the Vacation Fuel Purchases query.
Select Report Wizard from the pop-up menu.

Creating reports

49

Note

When a new report is opened in this way, the query used to open it isautomatically selected in the Tables or queries dropdown list in theReport Wizard.

4) Create the report.
Use >> to move both fields from the Available fields list to the Fields in reportlist. Click Next.
5) Label fields.
Add a space to FuelCost to make it Fuel Cost (two words). Click Next.
6) Group fields.
Click Date to highlight it. Use > to move the Date field to the Groupings list.
Click Next.
7) Choose layout.
We will be making no changes in the layout. Click Next.
8) Create report (final settings).

••

Use the suggested name, which is the same as the query.
Select Static report. Click Finish.

Creating a dynamic report
Now we will create a report with some statistics on our fuel consumption. To do this,we have to modify two queries: End-Reading and Fuel Economy. We will be adding
the FuelCost field to the End-Reading query. Then we will add the FuelCost field fromthe End-Reading query to the Fuel Economy query.

Tip

When opening a query to edit it, it might appear as in Figure 65. If you
move your cursor over the black line (circled), it becomes a double
headed arrow. Drag it to a lower position.

Figure 65: Appearance of query when opened for editing
1) Add the FuelCost field to the End-Reading query:a) Right-click the End-Reading query and select Edit from the pop-up menu.
50

Getting Started with Baseb)c)In the Fuel table list, double-click to add FuelCost to the bottom table(Figure 66).
Save and close the query.

Figure 66: Adding an additional field to the query
2) Add the FuelCost field from the End-Reading query to the Fuel Economy
query:•

Right-click the Fuel Economy query and select Edit from the pop-up
menu.

•

Double-click the FuelCost field in the End-Reading query list to add it to
the query table at the bottom.

3) Add a calculation field to the right of the FuelCost field.

•

Type the following in a Field cell in the table at the bottom:"End-Reading"."FuelCost"/("End-Reading"."Odometer" –"Fuel"."Odometer")•Type the following in its Alias cell: cost per mile.

Note

If you use the metric system, cost per km is the appropriate alias.

4) Save and close the query.
5) Open a new report.
Right-click the Fuel Economy query and select Report Wizard.
6) Select fields.
Move all the fields from the Available fields to the Fields in report list. Use the>> to do so. Click Next.
7) Label fields.
Change FuelCost to Fuel Cost by placing a space between the words. Click
Next.
8) Group fields.
Use > to move the Date field to the Groupings list. Click Next.
9) Sort options: the wizard skipped this one.
10) Choose layout: accept the default. Click Next.
11) Create the report.

•
•
•
•

Change the report name to Fuel Statistics.
The default setting is Dynamic report, so no change is necessary.
Select Modify report layout.
Click Finish.

Creating reports

51

Modifying a report
At the end of the last section, we left the Fuel Statistics report open in the edit mode
(Figure 67). We will be working on that report. These same steps can be used withany report that you open for editing.

Figure 67: A report in edit mode
The Author is the name you listed in Tools > Options > OpenOffice.org > User
Data. The date is not correct. The columns need to be moved to the left to give a
better appearance. None of the numbers are correct, but their only purpose is toshow the number of decimal places.
Step 1: Change the date.
1) Click to the right of the date (4/26/20) so that the cursor is next to the field.
Use the Backspace key to erase the date.
2) Insert > Fields > Date. This places today’s date where the original date was.
3) Change the date formatting:a) Double-click the date field you just inserted. The Edit Fields: Document
window opens.

Figure 68: Modifying a date fieldb)

Since this is a dynamic report, change the Select field from Date (fixed) to
Date.

c)

Change the Format to what you desire. (I use the Friday, December 31,
1999 choice.) Click OK.

Step 2: Change the column widths.
The column widths can be changed by moving the cursor over the right border of
each column so that it becomes a double-headed arrow. Then drag and drop it towhere you want it. This has to be done for each column in each table in the report.

52

Getting Started with BaseThis can also be done with the last column on the right even though there is no blackborder. It should now look something like Figure 69.

Figure 69: Realigned columns in a report
Step 3: Change the number formatting in the cells.
The fuel quantity should have three decimal places. The Begin, End, and Distanceshould have one decimal place. Fuel Cost should be currency and have two decimal
places, and Cost per mile should have three decimal places.
1) Right-click the cell below Quantity and select Number format. (The cell iscircled in Figure 69.)
2) In the Options section (Figure 70),a) Change the number of Decimal places to 3.
b) Click the green checkmark. Click OK.

Figure 70: Option section of the Number Formating window
3) Change the Cost per mile field.
a) Right-click in the cell below Fuel Cost.
b) Select Number Format.
c) In the Category list, select Currency. Click OK.
4) Change the Fuel Cost field.
a) Right-click in the cell below Cost per mile.
b) Select Number Format.
c) In the Category list, select Currency.
d) In the Option section:••

Set the number of decimal places to 3.
Click the green checkmark.

e) Click OK.
Step 4: Save and close the report.
Double-click the report. It should now look like Figure 71.
Creating reports

53

Figure 71: Final reportMore ways to create reports
An extension is available to assist in report creation. Sun Report Builder createsstylish, complex database reports. You can define group and page headers, group andpage footers, and calculation fields. It is available fromhttp://extensions.services.openoffice.org/.
To install this extension, follow these steps:
1) Choose Tools > Extension Manager from the menu bar. In the Extension
Manager dialog, click Get more extensions online....
2) The OOo extensions page opens in your browser. Find and select the extension
you want and follow the prompts to install it. During installation, you will be
asked to accept a license agreement.
3) When the installation is complete, the extension is listed in the Extension
Manager dialog.
For more about extensions, see Chapter 14 (Customizing OpenOffice.org).

54

Getting Started with Base