Scary, weird, form incident... I have found Open Office's database to be exceptionally reliable for many years. However, I did have an unpleasant incident with data loss in August 2012. A form behaved oddly, too. What to do if a form displays zeros, when the table does have more useful data in it.

An advanced topic- not "necessary", at all: MySQL- In February and March 2013, I made another big effort to understand the details of using Base as a front end (client) on a MySQL database server. This time, I think I've finally understood what is needed to do that. Allows multiuser and remote access, among other things. And I think your data is less vulnerable to loss.

Table of contents-

Main Page for FDB ("Free Data Base") Tutorials from Sheepdog Guides

( First three groups of tutorials grouped to help you do first things first )

Thank you!

... to all the people who have deemed these pages worthy of recommendation to others. I maintain several tutorials on the web, and this one gets the most editing because this one gets the most traffic. It is very gratifying to find the site recommended not just on sites written in English, but also on German, Russian, Spanish and Greek sites! If you would like other way$ of saying thank you, I have a page listing some charities I consider worthy.

Also....

I try to make my pages browser friendly. Re-size your browser window so it is as wide as you want it. The text will flow nicely. It is easier to read in a narrow window... and the rest of your screen will be free for your ooBase exercises! Hold down the control key ("ctrl") and press the plus sign, the minus sign, or zero to change the size of the text in Firefox and other good browsers. This and another good hint explained on my Power Browsing page!

First section:

Are you new to ooBase? If so, you are advised to start with the tutorials in this section. They give you a tour, with limited repetition and overlap. Jump around if you wish, but doing them in sequence may be more productive.
= = = = = =

Whirlwind Tour. This tutorial is not typical of what I write. But it does take you, rather rapidly, though "doing things". Don't despair if it goes too quickly... I've explained things more fully elsewhere. In this whirlwind tour, you create a little table, run a simple report. The finished database can be downloaded, saving you data entry time, and ensuring that no typos prevent your copy from working.

"The form is 'read-only', I can't edit". This is a common worry for new users. You can edit your data! (Try it and see!) But you "can't" edit the form. Read this short note to learn that you can change the form's design, after all.

Updating OpenOffice. Brief notes on how smoothly the mechanism built into Open Office 2.x worked for me when I upgraded a Windows machine to Open Office version 3.0.0.

Alternate way to create tables: You don't need to read this one. Creating tables with the Design View. If you are beyond the newbie stage, give Table Design a try? (Recommended to adventurous newbies, too!)

A simple form: Managing the address book data with a form, which is the right way to do it. (The "Using Forms (With Frills)" tutorial covers using forms, too, in more depth. It also covers some additional material along the way.)

Using Forms (With frills) Basic techniques you should master. I recommend this tutorial to you, not so much for the information on making forms, but for the general information covered along the way about how ooBase works. If you complete this tutorial, you should have learned how to present your table with the fields in the order you want, among other things. You will also be shown how to filter what records appear. All GOOD STUFF! (The "Simple Form" tutorial covers some of the central points contained in this tutorial, too, but less comprehensively, and without considering as many incidental topics.)

Please humor me? (Unrelated to Open Office)

Take a moment to visit my http://Flat-Earth-Academy.com? It aims to help kids (or adults who missed out in school!) interested in science know what the questions are, to attain a "basic framework" of knowledge, on which they can build a good understanding. No "sugar", not a log of flashy graphics or page layout... just some concentrated Good For You stuff. There must be SOME people left who aren't afraid to "work" their way to the expansion of their knowledge? Also mention it in any relevant forum you visit, please? (Opens in new tab or window, so you can get back here just by closing it.))

Referential Integrity, Multi-table Forms and Queries, Using Relationships These are important concepts... and the organization of my tutorials about them is imperfect, so I've created a "guide to the guides", which is what the link takes you to! One of them creates a database with two tables, and create queries and forms to extract information from the tables. This tutorial does not involve any report... the "result" is a form that assembles your data in one easy- to- use window.

Displaying fields from multiple tables in one query: Using Joins. This is an unusual tutorial. For a start, it contains an introduction to buying and selling stock market calls and puts. It looks at a "bigger" project than is typical in these tutorials. It is long, but, I hope, worth it! It is also unusual in that there's a link allowing you to download the finished database.

Database with Images, part 1... and some general skills: The ostensible goal of this tutorial is to show you how to build a database with pictures or diagrams in one of the fields. Even if you aren't interested in that, it might be worth skimming through the tutorial for some of the general points on form design which it contains. REVISED 12 Oct 2010... now works better! (Updated for ooBase 3.2.1 and ORB 1.2.1)

Database with Images, part 2: This extends part 1, showing you how to build a database which doesn't hold its images internally, but merely stores the path to the image, which remains a file external to the database. REVISED 12 Oct 2010... now works better! (Updated for ooBase 3.2.1 and ORB 1.2.1)

The globe on the right helps me see if doing these pages is worth the time it takes. It is interactive; play with it, if you wish. (You need to use your browser's "back" button to get back here after doing so.) The only information the system records is when visitors access the site, and where their ISP connected them to the internet. (In my case, that is 60 miles from where I live, at the moment.)

Third section:

Consider these after you are comfortable with many of the things in previous sections. These are either peripheral topics, or difficult, requiring some ooBase experience.

A "simple" report: Selected records, sorted: A straightforward requirement. Isn't difficult... when you know how. Which you will, after reading this somewhat unusual (for the tutorials on this site) tutorial. (In this one, I do less reader hand-holding than usual.) We will put together a tiny database (Two fields, six records.) Select a few records from it with a query. And present them, sorted (by the report) in a human friendly format. A few odds and ends of making your report "professional" included at the end of the tutorial. Written 9/14.

Functions (add, count, minimum, etc) and grouping: Not my most polished tutorial! And I paint myself into a corner or two. But if you are wondering how to use functions in queries, this may help you. And if we both can master all of it, some very useful things become possible: Extracting from a database, for instance, the average score of 12 year olds who are in 7th grade when they attempt a timed mathematics test. (The database would hold scores from many children. The query would provide a table "slicing and dicing" the data to our needs.) The techinques involved open the way to finding, of a group of records, the total (sum), the average, the count, highest individual record, lowest, standard deviation. And that's just the functions! The tutorial also touches on grouping records. The tutorial comes with a downloadable database with sample data, and pre-typed queries, forms, reports to get you started.

Two tables; one form: Use a form... one form... to look at records in two tables, and edit, add, delete records in the tables. A basic skill. You should not work directly with tables.

Cascading selectors... with datasheets: A form with a datasheet listing first names. You select one. When you have done that, a second datasheet on the form displays everyone with that first name in your "People" table.

Cascading selectors: Second Level. Using a ListBox, and generally being more clever. Does the job first without a macro, and WILL improve on that at the cost of a LITTLE macro.

Macros:

I won't promise that nothing involving a macro will appear anywhere else, but I will try to keep most things involving macros here.

I sweated blood to become familiar with doing macros, and overcoming some (old) limitations "at the (previous) frontier" of ooBase. About two weeks after I'd finished, I became aware of a new version of ooBase. Limited tests suggest that it overcomes the limitations ! ! This is an "Hurrah!", not a moan. (Well, a bit of a moan.... for the fact that I timed my adventure badly.)

With ooBase 3.1 you can store macros within a given database's .odb file. You can store macros in the database they are for. You will also be able to have images in reports. (Give upgrading serious consideration, if you are still using something from before 3.1. I've done several OpenOffice upgrades over the years, under Windows, without regrets.. but take the usual precautions.) (For images in reports, you also need the Oracle Report Builder, previously known as the Sun Report Builder, or SRB. I did my tests with version 1.1. So far I can get a form to display images held in the database and images which only have the path to them stored in the database. So far, I can only get reports to print out images of the former sort. Another Good Thing in OO3.1 + SRB 1.1 is that a "Keep Ratio" option has been introduced for displaying images.

= = = = =

Macro programmers: start with these...

OOP and Events: A an important tutorial covering fundamental elements and principles involved in any macro work with Open Office module. Some of the material here will help you understand practices that I follow when working with macros which are not "laid down" by the general requirements of Open Office. Not an easy read, but I commend it to you.

First steps with Macros: An important tutorial if you want to work with macros in any Open Office module, or understand material in any of my other macros tutorials. A simple "Hello World" button is created to illustrate sundry points. Many things explained in words of one syllable. A beginner's tutorial, or a review for intermediate macro programmers.

Miscellaneous thoughts on macro use: Not one of my better tutorials, but if you want to master using macros, working your way through this will give you additional knowledge. Among other things, in it we look at working with a checkbox on an ooWriter document. Again: Explained in words of one syllable.

Macro programming: the second level...

Running some buttons with ooBasic: In this tutorial, you are given less help, you have to have some grasp of what you are doing.... which you can attain by working through the tutorials above, if need be.

User defined functions: Creating new "words" for Open Office work, especially ooCalc. In this tutorial, we create a function which works out the "with tax" price of something when we know the "before tax" price and tax rate. Once we've done the things explained in the tutorial, we are able to merely put things like =tkbWithTax(200,3) in a worksheet, and get 206.

Working with files: A macro which will delete one file, and copy another. Note: This "work" is on closed documents sitting on your disc, not with "stuff" inside a file. (One of the files can be open at the time the macro is called, but we only copy the current disc copy of that. Even unsaved changes to the file are not copied.)

Document properties: This looks at... without finding all of the answers... examining the properties of the document your macro is stored in. Along the way, we look at some of the documentation available to Open Office programmers.. the API and ooBase.

Macro programming: the third level...

Accessing functions and procedures inside external DLLs. A Windows .DLL is provided for your use while taking your first steps. An example is developed using an ooCalc worksheet, but I believe the principles are general. A function in the DLL is called; it returns a string, which we then display in a cell of the worksheet. A subroutine in the DLL puts "Hello World" on the screen in a message box, when something happens in the ooCalc worksheet to invoke the subroutine.

Macros with ooBase...

The following assume you have some knowledge of working with macros, which you can gain by working through the tutorials above!

Exporting CSV with the click of a button: This is not just for people who want to export CSV. If you want to use macros with ooBase, read this essay. It takes you through the basic skills, using exporting a file to CSV as an example. It starts almost from scratch, but if you having used macros in Open Office before, or are a beginner, you would do well to review at least the first two tutorials in this, the "Macros" section. They talk about "simple" macros in Open Office. Everything they entail will be needed for working with macros in ooBase.... and more!

Where are the macros? This short essay discusses where macros are stored, and has details about a related ooBase issue.

"How To" instructions:

The pages in this section contain little snippets of "how to" information. They are less "tutorial" than those in the previous sections.
= = = = =

Something you CAN'T do: ... at least not with Open Office: Access a MySQL server on the web hosting company "1and1.com"s servers... but I tell you how you can use data from such databases in your web pages, via PHP.

Using dates in records to select records: If your database has dates in it, stored in the "date" data-type, a few "interesting" ramifications arise. This "how to" shows you how to build queries for extracting records based on dates in them.

Concatenate fields: Turn strings from two or more fields into one string. Make "Jane" and "Smith" - > "Jane Smith", for instance. Or even "Smith, Jane"!

Radio buttons for forms: Radio buttons are a good way to help users enter only valid data. Also gives an example of stepwise development... a tool to get you where you want to be sooner rather than later. Less haste, more speed.

Fix Linux Form Wizard problems: There seems to have been an issue with the Forms Wizard with the ooBase installed by Ubuntu at one point. Problem may still exist. Easily fixed, but the "fix" may bring other issues... I'm not Ubuntu expert enough to know about that... but I haven't seen other problems in limited tests.

Make an Auto-incrementing field: Using AutoValue to create fields which are filled in for you by the computer. Useful for primary keys, serial numbers, etc.

Change Auto-increment Start: Do you have a field with AutoValue set true? Want to change the number that will be used for the next record? This "How to" tells you how... and it is easy to do!

Discourses:

The following pages are less "keystroke- by- keystroke", less in the "how- to" vein. They are more like lectures. They are probably not as easy or as fun to read, but do give them a try? The are listed from "easy/ important" to "less easy / less critical" topics. While the one about data types isn't particularly easy, it is particularly important! Of course, I can't be sure which are important to your needs. I hope they are all useful!

= = = = =

Cross populating forms with data from more than one table: If your dtabase has more than one table, it is a Very Bad Idea to enter any data twice, i.e. "duplicated" (You hope! That's one of the problems) in two places. This incomplete essay talks a bit about this, and about how you can put data from more than one table into a single form, to bring together the things you want.

Relationships and Joins: As soon as your databases have more than one table... which shouldn't take long... you really, really ought to start setting "relationships" in the database. And before long, you will need "joins". They are not the same thing, but the differences constantly blur in my mind, and I hope to help you fight that problem.

Run SQL command directly? Analyze SQL?: ooBase is (for a database!) novice-friendly. However, there comes a time when its "help" gets in the way. Then you run your SQL directly. Who cares. When. How to do it. (This page is merely about using SQL commands within Base. I have written elsewhere about using MySQL servers.

Apache / MySQL / PHP: Ready for a challenge? (A huge challenge.) Want to use ooBase with a free multi-user database? (ooBase on its own isn't multi-user.) Want to access databases across a LAN or across the web, again using ooBase at the client machine? Want users with varied and narrowly defined privileges? This essay tries to help.... but it isn't a quick read! (Along the way, it also talks about the fun you could have creating dynamic web pages by means of PHP.)

"Just" a MySQL database server, with Open Office as "client", or "front end": This would be a challenge too... though not quite the challenge of the previous adventure. MySQL is a free multi-user, multi-platform database server. you can access a MySQL server across the internet. (ooBase on its own isn't multi-user or amenable to remote access.) The set of pages explaining a great deal about getting a MySQL server going were created in February and March 2013, and go farther than some of my earlier efforts with the topic. Master what is in them, and you will have made a good start towards being ready for the BIG challenge of embarking upon an Apache/ MySQL/ PHP installation, the item I mentioned before this one.

Case Studies:

Examples of databases filling specific needs. Also case studies of elements of database design. Don't look at the subjects of these case studies and say "Telephone numbers list? I don't need to do a telephone list." They all illustrate general points, and all may give you "That's a good idea!" thoughts.

If it felicitously happens that you do need to set up a telephone numbers list, well and good, However, I attempted to achieve a more general usefulness as I wrote the case studies. In each, you read about decisions I took in solving a particular problem. You read about tools that I've used. You should take away ideas which are useful in many databases... for instance the database you are trying to create today!

= = = = =

Primary Key design: Tricks of the trade. A discussion of the primary key I designed for the "Books" table of a database I actually use. (It is about a collection of books.) Many generally applicable points.

Family History: A database of ancestors: A work in progress, but significant elements of a database to "pour" what you know... and how you know it... about people from the past. Marriages, children, important dates, etc.

Linked Lists, DNA, Family History: This essay is a little different from most in the site. It talks (at length!) about a problem, and makes some progress with analyzing how to solve it. But a full, Open Office Base solution is not yet available. I hope someone can send a solution! Until then, the essay remains a valuable exercise in looking at data, and how it might be coded. The data would fill a matrix but sparsely. The data might best be stored in a linked list. Can such a structure be held in an RDBMS? The whole thing arose along the way to designing a database for matching DNA for the purposes of family history research.

Department of Motor Vehicles- in Paradise: This database is a foundation for other tutorials. The database can be downloaded. It has four tables, with relationships established. It is the basis of a data management system for a hypothetical Caribbean island's traffic police.

Form with two sub-forms: A modest little thing. In the context of a small database with information on plants as an example, a form with two sub-forms is created.

Annual giving to charity: A database for keeping track of donations to worthy causes. No "rocket science"; a fairly basic system.

Stock Market Investing: Notes on a database which tracks essential data for a stock market investor. Also, I hope, of interest to novice private investors, for general points on records you need to keep.

Project Participation: A database tracking the people working on a group of projects. Useful as an illustration of having "lines" of info for multiple entities, and other things. You can download the database, if you wish. Not "complete" yet... but the description of the tables, useful in its own right, is.

Naming of Parts:

Some "Illustrations" to support many of the other pages on this website. They are readable on their own, and linked to frequently, especially in introductory tutorials.

(So, Hagop Merjian, I do remember something from English classes 40 years ago. For those of you unfamiliar with Henry Reed's "Naming of Parts", it is worth a visit. Written about a soldier's experience in WWII, although I have to admit I mis-remembered it as being from Wilfred Owen and WWI. Probably could apply to almost any soldier's life with just a few changes.)

But you, gentle reader, are probably not a soldier, so I will not here digress into piling swivels, which in your case you have not got, or anything else that you have not got.

v v v v v v - - - . . . Parts topics . . . - - - v v v v v v

ooBase main project manager window: Discusses the main window from which you normally manage any ooBase project. Some users of ooBase databases set up by others may be more familiar with a Switchboard front end, but most users will normally work through the window described here, which I usually refer to as "the ooBase main project manager window".

Further comments:

Firstly....

Ramblings

The database shipped with OpenOffice, version 2 (and higher) does typical database tasks well, and is as easy to use as anything of comparable power. It accepts SQL. See the articles above for help mastering ooBase.

Forget any experiences with Adabas, which came with the commercial version of OpenOffice 1. The OpenOffice version 2 database, ooBase, is unrelated, and has been carried forward into version 3.

Remember: the whole OpenOffice suite, being open source, is free, including ooBase. (You will also see ooBase referred to as "Base".)

The OpenOffice suite is available not only for Windows, but also for Macs and Linux. I have been using it on Ubuntu. In fact I am doing more and more on Ubuntu... what a wonderful feeling it is to be getting away from being in the thrall of Microsoft. If the day comes when I decide to turn off all of my Windows boxes, there will be things I miss, but for wordprocessing, spreadsheets, databases (and some other apps), when I turn to my Linux box, I won't even know it isn't Windows... I'll still be using the applications I was using on Windows. (Firefox has my browsing activities in the same happy circumstances.)

Speaking of the wonderful world of open source programs, have you tried the open software and open hardwareArduino microcontroller? A lot of fun, if you like tinkering with electronics. And if you are only into software, there's the multi-platform Pascal called FPC, which I promote at the same page as my Arduino material. FPC comes in versions for Window, Linux, and Macs.

With OpenOffice 2, you get a free, capable, useful database program. It derives from an existing product, HSQL. To quote from www.hsqldb.org:

"Our group was formed in 2001.... We have.... released six new versions of the database (RDMS) since April 2001... The project enjoys a top 50 ranking among all SourceForge projects (100,000) with over 1,000,000 downloads.

"(HSQL is) completely free to use and distribute under our licenses, (which are) based on the standard BSD license."

Create powerful queries to show your data in new ways, including summaries and multi-table views

Produce reports in a wide variety of formats, using the Report Wizard or Oracle's Report Builder, previously known as the Sun Report Builder, or SRB

"BASE includes a full version of the HSQL database engine, storing data in XML files. It can also access dBASE files natively for simple database work.

"For more advanced requirements, BASE supports many popular databases database natively (Adabas D, ADO, Microsoft Access, MySQL), or any database through industry-standard ODBC and JDBC drivers. It also supports any LDAP compliant address book, as well as common formats such as Microsoft Outlook, Microsoft
Windows, and Mozilla."

(N.B.: In the case of at least Access, that support includes access to tables within the database, but excludes any capability to run Access macros, forms, reports. But that's a glass more than half full, if you think about it.

Please remember the material is copyright. (TK Boyd, 2006 and later) The procedures in the page just cited are suggested only for convenient personal use of the material, however, also....

Feel free to use this information in computer courses, etc, but a credit of the source, quoting the URL, would be appreciated. If you simply copy the pages to other web pages you will do your readers a disservice: Your copies won't stay current. Far better to link to the original pages, and then your readers will see up-to-date versions. For those who care- thank you. I have posted a page with more information on what copyright waivers I extend, and suggestions for those who wish to put this material on CDs, etc. (There is at least one prison using the material for inmate education. Situations do exist where good internet connections are not possible!)

Translations are welcomed. Tell me about yours, so I can post links to it. (More information at the page about copyright waivers.)

Other resources:

When I started this in early 2006, I was new to OpenOffice, but not new to computers, or to writing tutorials on the web.

There are other OpenOffice tutorials out there that I would commend to you.

(I'm assuming that you didn't find what you wanted on my page about manuals for ooBase... you should probably start there, if you haven't seen it already.)

For ooBase, try the following.... (If you

Of course, you should read OpenOffice's own Getting Started With ooBase (PDF document). that may be slightly dated... the page was headed "Getting Started with OpenOffice.org 2.x" when I checked it in August 2011, and Base has been in version 3 for a long time. Maybe the "2.x" refers to the version of the guide?

Andrew Pitonyak has a site with help on ooBase, and other Open Office topics, and other topics!

The following will give you links to a bunch of good OpenOffice material, much more than ooBase...Open Office's own Documentation Project articles. (That page may be slow to load.) And the material is available in many languages. Personally, I find the material hard to navigate, perhaps suffering from "committee-itis"... but their is Good Stuff there, if you dig. Maybe you won't even feel as frustrated as I was; my aversion probably just a matter of "style".

For the manual for OpenOffice's programming language, and the API to OpenOffice, go to....

Please don't ask for a link from here to your site unless a) your site already has a link to this site, and b) the Wayback Machine will show me that your site has been up for more than two years.

And if you liked what you found here, or want different things, here are some more pages from the editor of these tutorials....

The homepage of Sheepdogsoftware.co.uk., my biggest site. (Apologies if the "?FrmFdb" I added to that link causes your browser problems. Please let me know, if so? It is there to help me learn my visitors' preferences.)

Ad from page's editor: Yes.. I do enjoy compiling these things for you... I hope they are helpful. However this work doesn't pay my bills!!! If you find this stuff useful, (and you run an MS-DOS or Windows PC) please visit my freeware and shareware page, download something, and circulate it for me? Links on your page to this page would also be appreciated!

Page tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at validator.w3.orgMostly passes. There were two "unknown attributes" in Google+ button code, and one in the Revolvermaps code. Sigh.

One last bit of advice: Be sure you know all you need to about spyware.