Best forum:: For many years, "the place to go" was oooforum.org. For a few years now, I have tended to use http://forum.openoffice.org. (If you want to know more, there's my a note about problems with accessing oooforum.org from November 2012.
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.
( First three groups of tutorials grouped to help you do first things first )
( Other tutorials, for when you've got started )
( Et cetera )
Just before we continue to the main part of this page....
... 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.
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!
Page contents © TK Boyd, Sheepdog Software, 2/06-12/12.
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.))
(Opens in new tab or window)
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.)
This comes to me as a free service from Revolvermaps.com. If you know how to insert HTML into your own web pages, it is easily added.
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.
Moving data between Open Office Applications: Easier than you might fear! This is one of the peripheral topics.
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.
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.
= = = = =
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.
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.
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.
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.
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.
Moving data from spreadsheet to database: A "bad" tutorial- doesn't explain, you won't understand... but it may give you a "click this" answer, if that's all you want. Paves the way for....
Simple mailing list- creating mailing labels: Another "bad" tutorial- doesn't explain, you won't understand... but it may give you a "click this" answer, if that's all you want.
How to clone an Open Office database: Cloning your data tables, forms, queries, reports, and registering the clone.
Sharing Data: How to give copies of a database to others; how to use on a different computer.
Looking up things in the manual: There's a manual? Where to get it!
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.
Using DDE to keep documents in step. DDE is a mature technology for sharing data between documents, and Open Office has it "as standard".
Draw maps with countries colored in according to data about them. There's a really easy way to get really impressive results!
Export data to CSV Files: The way to do it for any Open Office application. (CSV files explained elsewhere.)
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!
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.
Data "types": Critical to table design. (There's a quick introduction to data types in the "First section", too.)
CSV data files: A short, general explanation of "Comma Separated Values" files, aka "Comma Delimited" files... useful for moving data between applications. The specifics of using them in Open Office (generally) are explained elsewhere... specifics of importing data, of exporting it, and of moving data between Open Office applications.
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.
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.
A "real world" example: Description of some rather "messy" work done to satisfy some real world needs.
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.
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".
"Design mode on/off" button and Form Navigator window: Two important tools for the designer. Don't confuse the form navigator with the more general navigator which you can launch with your F5 key.
"Form Controls" and "More Controls" toolbars: How to access to them.
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 hardware Arduino 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."
And (adapted) from (an earlier version of) what used to be at.......http://www.openoffice.org/product/base.html.....(that page may be slow to load.)
"With BASE, you can....
"Using BASE, not only can you browse your data, but also...
"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.
I dislike 'fancy' websites more concerned with a flashy appearance than for good content. For a pretty picture, I can go to an art gallery. Not everyone has fast broadband.
I present this material in a format aimed at to helping you USE it. There are two aspects to that: The way it is split up, and the way it is posted. Details at my page about how the material is split up and how it is posted.
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.)
Search the ooBase tutorials. Results will open in new page.
Click here to visit editor's Sheepdog Software (tm) freeware, shareware pages.
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.
. . . . . . . P a g e . . . E n d s . . . . .