Subject: Approach Users Mailing List FAQ, Part 1/2
Date: 10 Sep 1997 09:49:36 GMT
Summary: Answers to Frequently Asked Questions
 provided on the Approach Users Mailing List and the
 comp.databases newsgroup about the Lotus Approach database,
 as well as other material that may be helpful to a wide
 range of Approach users.

Archive-name: databases/approach-mailing-list-faq/part1
Posting-Frequency: monthly
Last-modified: 1997/08/10

                APPROACH USERS MAILING LIST FAQ, Part 1
                ---------------------------------------

                           10 August, 1997


------------------------------

Subject: 1. Welcome

This FAQ contains a summary of answers to Frequently Asked Questions on the
Approach Users Mailing List, as well as other material that may be helpful
to a wide range of Approach users.

If an article does not specify a version of Approach, then it probably
relates to v2.1 or v3.0* - which doesn't mean it won't work but there may be
better ways of doing it in v96 or v97.

Not all of the mailing list discussion makes it into the FAQ because some of
it will probably be of use only to the person who asked the question, and
would therefore simply be wasting space in a FAQ. However that information
is not lost. I maintain a database of all the posts to the mailing list, so
if others ask similar questions at a later date I will answer with the
information I have on record, and add it to the FAQ - if the question does
in fact become 'frequently asked'.


------------------------------

Subject: 2. Table of Contents


Contents
--------

     1. Welcome
     2. Table of Contents
     3. Notices
        \ Additions and Changes to the Archive of Scripts
        \ How to get the latest edition of the FAQ
        \ How to receive a newsletter containing FAQ updates
        \ How to get the Archive of Scripts
        \ How to access a searchable archive of Approach posts
        \ Contributions, comments, corrections, or feedback
     4. Our collective wisdom so far...
        \ The latest version (including betas)
        \ Versions of Approach
        \ How does Approach compare to other DB's?
        \ Lotus Web Site and technotes
        \ Books
        \ Other information sources about Approach
        \ Other information sources about LotusScript
        \ Getting started with joined databases!
        \ Help me design my database! (joins, repeating panels,
              what data in which database etc...)
        \ Designing and problem solving techniques
        \ Stand-alone databases using Approach?
        \ Can Approach handle big databases?
    NEW \ Repairing corrupt index (.adx) files
UPDATED \ Deleting and recreating index files (.adx)
        \ General Protection Faults (GPF's)
        \ Optimizing the speed of a database
        \ Running Approach on a network
        \ dBase IV limitations
        \ Limitations of Approach

            ... continued in Part 2. Section 7.

     5. How the Approach Users Mailing List works
UPDATED \ The topic
UPDATED \ Off topic and personal messages
        \ The List Owner
UPDATED \ LISTPROC: The Mailing List Server
        \ Changing Your Subscription Address
        \ Question and Answer Posts
        \ NO, IT IS NOT OK TO ATTACH FILES
        \ comp.databases
        \ Lotus
        \ Mail errors after posting to the list
        \ Mail storms
     6. Official Stuff
        \ Acknowledgments
        \ Disclaimer
        \ Copyright
        \ Editor

    ------ FAQ Part 2 ------

     7. Our collective wisdom so far... (Part 2)
        \ Out of Memory error message
        \ Conversion of old .apr's to Approach 96
        \ Stored Finds in Approach 96/97
        \ Field Formatting (including not / rounding numbers)
        \ Displaying Negative Values In Red
        \ Automatically finding a 'drop down' list entry
        \ Summary fields
        \ Demystifying Summary Functions
        \ Leading zeros
        \ Trailing zeros
        \ Free Approach 3.02 Upgrade
        \ "Record is locked- retry -cancel" error
UPDATED \ Moving or copying databases (.apr/.vew .dbf .dbt files)
        \ "Macro error: Import table has changed" error
        \ Internal Error: Cannot load string 0
        \ "Could not load infobox dynalink" error
        \ Printing formatting problems
        \ Printer problems (including GPFs, HP Printers)
        \ "Page Fault... at 0137:0049eb64" in Approach 96
        \ Approach 3.02 crashing in design mode and when switching
              views
    NEW \ Approach 97 incorrectly exporting numbers via macros
        \ Problems with repeating panels
        \ Working with Paradox database files
        \ Accessing Access files (*.mdb)
        \ Accessing .dbf's by Access / Paradox
UPDATED \ Using index files other than .adx (eg.mdx)
        \ Calculating elapsed time
        \ Calculating ages from birth dates
        \ Calculating number of weekdays
        \ Finding dates within a specified range
        \ 21st Century Dates
        \ Dates before 1929
        \ Date format with 4 digit year (e.g. 1997)
    NEW \ Export of Crosstabs to 1-2-3
        \ Importing Dates
        \ Dates in report titles
        \ Removing unwanted characters from phone numbers
        \ Saving records in their sort order
        \ Record numbering
        \ Sequentially numbering a set of records
        \ Header / Footer problems in v2.1
        \ Automatically opening files
        \ Automatically opening a particular form
        \ Automatic macro on opening/closing View file
        \ Deleting the body in summary reports
        \ Preserving found set when switching forms
        \ Keeping users out of design environment
        \ Database security
        \ Stopping people accidentally entering data
        \ Searches on multipage forms
        \ MS-Windows 95 printing blank pages (v2 & v3)
        \ Radio Buttons field label
        \ Finding the previous weeks records
        \ Finding records which do not contain *text*
        \ Finds on repeating panels fields
        \ Making empty fields disappear
        \ Running a Macro in a different .apr files
        \ Converting numbers to words 34 to thirty-four?
        \ Making keyboard entries into a formula or macro
UPDATED \ Sliding fields together on mailing labels
        \ Generating and reading barcodes
        \ IF limitations in v3.0*
        \ USA Zipcodes
     8. Official Stuff (again)
        \ Acknowledgments
        \ Disclaimer
        \ Copyright
        \ Editor


------------------------------

Subject: 3. Notices

Additions and Changes to the Archive of Scripts
------------------------------------------------

No new scripts have been added to the archive since 10 July, 1997.

To get the latest version of the archive, send an email to me at
b3104977@bohm.anu.edu.au and I'll send you a copy. To automatically receive
a copy every time it is  updated - as well as complete copies of the FAQ
each month, send the words:

SUBSCRIBE AUMLFAQ your name

to listproc@listproc.anu.edu.au

How to get the latest edition of the FAQ
----------------------------------------

This FAQ is approved by the *.answers moderators and is therefore also
available at from the following sources:

Email: send an email to mail-server@rtfm.mit.edu with the following in the
body of the message:

send usenet/comp.databases/Approach_Users_Mailing_List_FAQ,_Part_1_2
send usenet/comp.databases/Approach_Users_Mailing_List_FAQ,_Part_2_2

  * NOTE: The  updatedversion is available on about the 10th of
  * each month. It is distributed independently to the so they do
  * not directly coincide.

To automatically receive updated copies of the FAQ each month, send the words:

SUBSCRIBE AUMLFAQ your name

to listproc@listproc.anu.edu.au

FTP:

ftp://rtfm.mit.edu/pub/usenet/comp.databases/Approach_Users_Mailing_List_FAQ
,_Part_1_2
ftp://rtfm.mit.edu/pub/usenet/comp.databases/Approach_Users_Mailing_List_FAQ
,_Part_2_2

Usenet: comp.databases, comp.answers, news.answers

WWW:

http://www.cis.ohio-state.edu/hypertext/faq/usenet/databases/approach-mailin
g-list-faq/top.html

http://sunsite.doc.ic.ac.uk/usenet/usenet-by-hierarchy/comp/databases/Approa
ch_Users_Mailing_List_FAQ,_Part_1_2
http://sunsite.doc.ic.ac.uk/usenet/usenet-by-hierarchy/comp/databases/Approa
ch_Users_Mailing_List_FAQ,_Part_2_2

How to receive a newsletter containing FAQ updates
--------------------------------------------------

If you are a subscriber to the Approach Users Mailing List then DO NOTHING!
All the newsletters are posted to the list so soon as they are produced.

If you are NOT a subscriber to the Approach Users Mailing List, then send
the words SUBSCRIBE AUMLNEWS on the first line of an email to
listproc@listproc.anu.edu.au

How to get the Archive of Scripts
---------------------------------

To get the latest version of the archive, send an email to me at
b3104977@bohm.anu.edu.au and I'll send you a copy. To automatically receive
a copy every time it isupdated  - as well as completeupdated  copies of the
FAQ each month, send the words:

SUBSCRIBE AUMLFAQ your name

to listproc@listproc.anu.edu.au

How to access a searchable archive of Approach posts
----------------------------------------------------

A service called Reference.COM maintains an up to date searchable archive of
all posts to the Approach User Mailing List (and hundreds of other mailing
lists and newsgroups). you can access it by pointing your web browser at:
 http://www.reference.com/cgi-bin/pn/listarch?list=APPROACH@listproc.anu.edu.au

Contributions, comments, corrections, or feedback
-------------------------------------------------

If you have any comments, corrections, or feedback, please email me (John
Brown) at b3104977@bohm.anu.edu.au However, new FAQ articles and scripts
should be set to the mailing list first so that people have a chance to
comment on it before it goes into the FAQ.

------------------------------

Subject: 4. Our collective wisdom so far...

The latest version and upcoming developments
--------------------------------------------

Approach 97 for Windows 95 is the latest version of Approach. It was
released in February 1997. See the Lotus web site for more details:

http://www.lotus.com

Beta versions of versions underdevelopment are not freely obtainable. There
is a long application procedure to become a beta tester. Keep checking the
Lotus Web Site if you are interested. They usually announce when they are
looking for testers, or send them a note to be put on a list for next time.

How about Approach for OS/2 you ask? The following statement was recently
spotted on the Lotus web site:

"Lotus' commitment to deliver a complete suite of native applications for
the OS/2 platform remains an important part of the Lotus Business
Application Division strategy. These releases (WordPRO and Freelance
Graphics for OS/2) are only the beginning, as you'll see more products
delivered on OS/2 Warp in the months to come." Maybe, just maybe, this might
mean a native OS/2 version of Approach(?).

Versions of Approach
---------------------

All versions will simultaneously access the same database base (.dbt/.dbf or
paradox or other formats), but each version of Approach has to have its own
version of the view file. When opening an older version view file, Approach
will automatically update it to the new version. If you still require the
old version make sure you make a copy of it first.

  v2.1  = the first version released by Lotus. View files have .vew
           file extensions. Developed for MS-Windows 3.1 (16 bit)
  v3.00 = a substantial update. Completely new macros. View files have
           .apr file extension. Developed for MS-Windows 3.1 (16 bit). 
  v3.01}   Included in LotusSuite 4.0
        } = ## free ## bug fixes of version 3.00. If you are having
  v3.02}   any problems with v3.00 and 3.01 then get 3.02 before you
           bother to post. Everybody is going to tell you to get it
           anyway!
  v96   = Sometimes erroneously referred to as v4. A substantial
           update developed for MS-Windows 95** (32 bit). Introduction
           of LotusScript.
  v97   = Developed for MS-Windows 95** and NT 4.0 but apparently runs
          fine on NT 3.51 (32 bit) Included in LotusSuite 97

** Note: MS-Windows 95 will run MS-Windows 3.1 software including Approach
versions 2.1 and 3.0*

How does Approach compare to other DB's?
----------------------------------------

Articles about how Approach ranks against other databases, as well as handy
hints, and how to optimize your productivity with Approach and SmartSuite,
are available by searching back issues of PC World:

http://www.pcworld.com

Also check out similar articles at PC Computing:

http://www.pccomputing.com

Lotus Web Site and technotes
----------------------------

The Lotus homepage is:

http://www.lotus.com

For heaps of information on Lotus products including user discussions, file
libraries, top 10 downloads, product support (FAQs and hundreds of
'technotes'), and an opportunity to give product suggestions:

http://www.support.lotus.com/

Technotes are Lotus's answer about a whole range of problems people
encounter using Lotus products and answers to frequently asked questions.
They are also available via ftp. The url of the index is:

ftp://192.216.79.100/pub/desktop/Approach/technotes/text/00_index

Books
-----

The following books have been recommended in posts to the Approach Users
Mailing List:

   * The manual that come with Approach. Always a good place to start!

   * Mastering Lotus Approach by James Powell (Sybex / Lotus Books) (This is
the most highly recommended book)

   * Mastering Lotus Approach 96 for Windows 95 by James Powell (Sybex /
Lotus Books) (This is the most highly recommended book, however, some
subscribers have commented that IF YOU ALREADY OWN THE EARLIER VERSION (for
v3.0*, see above) then check it out carefully before you by this one. They
expressesd strong disappointment that it has only been minimally from the
earlier version, and major aspects of Approach 95 are not covered
adequately. It therefore may not be worth the expense.)

   * Mastering Approach 97 for Windows (Haven't heard anything accept that
its been released). 

   * Building Databases with Approach 3 by Elaine Marmel ("...seems to be an
extended, well documented, tutorial on building a database that is usable in
a business environment.")

   * Introduction to Databases" by James T. Townsend  (recommend for
business uses who are learning andupdated designing databases. It is about
databases in general rather than how to use Approach.)

   * Approach 3.0 for Dummies

   * Practical Approach version 3.0 by Siegel (MIS Press)

   * Using Lotus Approach 3 by Plotkin (Que)

Other information sources about Approach
----------------------------------------

   * A good way to learn about database structure and what Approach is
capable of is to study the example databases that come with Approach.

   * Lotus fax - back service (free) (+1) 800-346-3508 (These are also
available from the Lotus Web Page as Technotes)

   * PC World articles and tips from current and past issues:
(Site search available)

http://www.pcworld.com

   * Try searching: http://www.inquiry.com/ 

   * The Approach BBS: (+1) 415-335-2362

   * Do It With Lotus SmartSuite (newsletter)

http://www.idgnews.com

   * The Approach forum on CompuServe, (AOL? etc...)

   * Lotus Forums on Compuserve such as LotusA or LotusB

   * SmartSuite Tip of the Day mailing list run by PC World (under the name
"TipWorld") sends you a messages each day containing a top out using any of
the SmartSuite applications. They are often fairly basic, but helps to learn
neat little features you may not be aware of, as well as other snippets of
news/advertising.

http://www.tipworld.com

   * Lotus Business Partners Program (This is for people who develop desktop
applications, including Approach, for others for a living. For details see:

http://www.lotus.com/bpartbro/bpbroch.htm

"You'll receive a complete collection of Lotus software, including Notes,
Notes Mail, cc:Mail, SmartSuite, and Lotus Components _ as well as Business
Multimedia Products. These PartnerGold CDs include all the software you need
to run your business, as well as upgrades for as long as you're in the
program. You'll also receive the Lotus Toolkit Collection, a quarterly CD
with all the latest developer tools you need to start building applications.
Plus you get the Inside Edge CD, a collection of Notes and NotesSuite
applications for internal use only. And Knowledge Base is your source for
technical support information _ online, via the World Wide Web, or on CD.
You get all this plus initial technical support and access to the Partner
Forum, a worldwide discussion database monitored by technical analysts from
Lotus Support." The Business Partners homepage is:

http://www.lotus.com/partners/

Other information sources about LotusScript
-------------------------------------------

   * A lot of the sources of information about Approach shown above will
also include information about LotusScript

   * Don't forget to have a good look through the examples that come with
Approach in templates, saved smartmasters etc...

   * .scriptstuff is a web site with lots of LotusScript information. It
focuses on WordPRO, but is still a very good source of information.

http://www.crl.com./~dcrozier/

   * LotusScript for Dummies (ISBN: 1-56884-638-X) I D G Books

   * Approach comes with a small book called: "Using LotusScript in
Approach" The following is a quote from that book:

"ADDITIONAL LotusScript DOCUMENTATION
In addition to this manual and online help, you can refer to the following
materials for information on LotusScript:

     * The LotusScript Language Reference, a comprehensive summary of the
LotusScript language, presented in A-Z format. The LotusScript Language
Reference is available as Help in all Lotus products that support
LotusScript and is also available in print. To obtain this manual, use the
coupon enclosed in your APPROACH package.

     * The LotusScript Programmer's Guide, a general introduction to
LotusScript that describes it's basic building blocks and how to put them
together to create applications. To obtain this manual, use the coupon
enclosed in your Approach package."

They are free, but there is a Shipping and Handling Fee. If you don't have
to coupons try contacting Lotus directly. The offer apparently expires on
Dec. 31, 1996 for the free guides.

     * There is a LotusScript file at the Lotus site in the Word Pro
directory and identified as Word Pro LotusScript Help files. It contains
seven help files. I think its in addition to the help files found with
Approach 96 and WordPro. The file is 3.8 Meg, and is found at:

http://www2.support.lotus.com/ftp/pub/desktop/WordPro/win95/updates/132777.zip

Getting started with joined databases!
--------------------------------------

Understanding relational (or "Joined") databases is a big area, but is vital
to fully utilizing a program such as Approach. It can be a frustrating time
with many concepts to learn, as well as all the ins and outs of Approach.

DO NOT START by launching into some major project that you expect to be
fully functional tomorrow. Start small, using some test data, and test each
function before you go onto the next. Read all you can, and spend time
carefully planning what databases you need and how they should be joined.
Once you have the basic structure of your database set up you can begin
entering or importing you actual data.

But as I said, start by do some reading. Some books are recommended earlier
in the FAQ, but don't forget the Approach manual either. It briefly takes
you though the process of setting up joined databases. Looking at the
example databases that come with Approach will also help you understand how
the different data in different databases is linked together to provide many
facilities that are not possible in flat databases.

Help me design my database!
---------------------------
(joins, repeating panels, what data in which database etc...)

Apart from simple 'card file' type databases, every piece of major database
software you can think works with relational databases; Approach, Paradox,
Access etc... In order to use any of these packages efficiently, including
Approach, you first need to understand what a relational database is, and
how you would divide your data into one. If you don't understand this then
you are going to have difficulty using many features of Approach, or any
other database software.

Questions concerning database design are quite common on the Approach Users
Mailing List. However, strictly speaking most of these questions and answers
have little or nothing to do with Approach. What the people asking these
question lack not so much an understanding of how Approach works, but rather
an understanding of what a relational database is and how they work.

And as it turns out, I am not going to attempt to explain this! Instead,
what I suggest you do is this: Allocate some time and perhaps money, to do
some reading or perhaps a short course in relational databases. Some books
are suggested above. The Approach manual includes some information, but most
people seem to need a more in-depth look at it before they really grasp what
is happening. The better this ground work the easier and quicker you will be
able to build an efficient database. I won't take all that long, and the
benefits are huge.

Also have a careful took at the example databases supplied with Approach. Go
into design and check out the structure of the database; the design of the
various views; and how each aspect works. 

As you are doing these things keep some notes about how you might structure
your database. When you are ready begin establishing your database one bit
at a time with a small amount of test data. When it is fully functioning, or
at least developed enough to do all the major functions, import your data,
and begin using it!

Designing and problem solving techniques
----------------------------------------

Try this: Rather than working with you main database, try setting up and
testing out things or trying to solve problems on smaller practice
databases. This way you minimize the possibility of you loosing valuable
data, or disabling your main database when you really need to use it. For
example, if your having trouble with an import or export, set up a very
simple flat (i.e. no joins) database and view form. Enter some junk data
into a couple of records and try exporting it as a text file. If this works,
try importing it back in again. When you can do this, expand this test
database so that it has two databases that are joined, and the data from
both database is displayed on the one form. Then export some data. Add a
repeating panel. Export some more. Import some back in. At every stage do
only one thing at a time and test it. This way you will easily identify at
which point you are getting into trouble.

Once you have managed all of this on your test database you should be able
to solve the problems on you main database.

Stand-alone databases using Approach?
-------------------------------------

No, there is no way of creating fully stand alone' database using Approach.
There are currently no run time compilers for Approach that I am aware of.
There have been rumours that one is under development, but this has bever
been confirmed. Approach is designed to be a 'Front End'. The idea is you
can take an existing database (dBase, Access, Excel, Foxpro, Oracle,
Paradox, SQL, 123 ...) and create your own Front End, leaving the original
database intact for others. Or you can develop your own database from
scratch. You can also develop a View files with Macros that give it the
appearance of a full-blown application and distribute to other users, but
everyone who uses it needs their own copy of Approach. Purchasing site
licenses and using Lotus' concurrent licensing scheme will greatly reduce
the costs for businesses.

Using the Customizing Approach chapter in the user's manual you can be
completely customized so that your users can't trash the database that you
build for them. Pay particular attention to the Setting Preferences,
Defining Passwords for Files, Customizing SmartIcons, and Customizing Menus
sections. Also review procedures for defining basic field settings in the
various views you give the user. You can design your database using custom
pull-down menus and various buttons on forms so that all the native controls
in Approach can be turned off or
hidden from the user.

Approach 96 includes 'LotusScript' which gives you much the same
capabilities of Access Basic. But all is not lost for v2.* and v3.**! You
may be able to write the routines you need in some other language, such as
Visual Basic. These routines could be activated by a Windows macro (i.e.
Recorder).

Can Approach handle big databases?
----------------------------------

Well, it probably depends on what you call big, the design of your database,
and what hardware you have. A number of subscribers have reported having in
excess of 40,000, and as high as 90,000 records without any difficulties.
Nobody has ever reported reaching a maximum number of records limit in
Approach. In theory it should be able to handle the maximum number of
records you can put in a dbase IV database, which is 4294967296 (4 gig =
maximum 32 bit number).

In order to maintain the best ratio of speed and stability you may want to
consider deleting the .adx files (indexes) on a regular basis (say every
week or two). There are some possible complications with this so carefully
read "Deleting and recreating index files" first.

It has been suggested that the number of joins has a far greater impact on
the speed and stability of large databases rather than simply the number of
records. One subscriber stated that they found a database having "80,000
records and approximately 20 tables joined" to be unusably slow, and
suggested that a database of "100,000 records if there are more than 4 or 5
joins" to be a maximum usable size. Meanwhile somebody else replied saying
that they had "databases exceeding an average of 400,000 records up to 2.2
million records and joins exceeding 10 databases with Approach 96 having no
problems handling the data. We have been doing multi field queries in an
acceptable time frame and once the smart indexes are created, finds on
fields are just as fast on a (database) with 2.2 million records as a find
on a field with 400,000 records. Our standard hardware is a P5 166 with 64
meg of ram." On a P6-200 with 64MB RAM, doing a complex search on 4 fields
takes 15 sec.

General Protection Faults (GPF's)
-------------------------

If you are running v3.00 then upgrade to v3.02. It's free, and it will save
somebody posting to the list telling you to upgrade because v3.00 is full of
unwanted little surprises! See 'Free Approach 3.02 Upgrade'

If it might be something to do with printing them see 'Printer problems
(including GPFs, HP Printers)'

A lot of GPF's are cleared up by repairing or deleting .adx files BUT make
sure you see 'Repairing corrupt index (.adx) files' and 'Deleting and
recreating index files (.adx)' first, otherwise you may find you create a
few other problems as well...

If this doesn't work you could try reinstalling Approach, especially if the
fault has appeared just after installing some other new software which may
have overwritten some .DLL's in the windows/system directory.

It might also be worth testing Approach while there is absolutely nothing
else running, and if it works introduce other applications and utilities
that you normally use to see if the conflict is particular to one of them.

Repairing corrupt index (.adx) files
------------------------------------

(This procedure was submitted to the Approach Users Mailing list by Jerry
Sikes, Unisource Converting)

  1: Create a directory named "Safe"
  2: Open each critical database, one at a time, as a new application.
  3: Run a find that gives you only 1 record in the found set. (Use Hide if
necessary)
  4: Export the found set to the safe directory, using the same database
name. (Hint when Approach exports to this new directory, it creates a new
one record index)
  5: Close the new application without saving. (Optional...I do not normally
save these since Approach can recreate this at will)
  6: Repeat for all targeted tables.

The new safe copy indexes stores the Long  Field Name format that Approach
uses. If you need to "uncorrupt" a table, just copy the safe adx file back
to the working directory. Reopen your application and Approach will
immediately launch into a "Smart Index Creation" mode. It is important that
you maintain a good revision control method. If you add fields to your
working table, update the "safe copy" by exporting the 1 record again.

Remember to compress tables often as a corruption prevention method.

NOTE: If you are using an old safe copy of the .adx file for a database with
auto serial numbers, then you may need to manually reset the next serial
numbers to the correct values.

Deleting and recreating index files (.adx)
-----------------------------------

In order to maintain the best ratio of speed and stability, you should
consider either deleting the .adx files (indexes) on a regular basis (say
every week or two). There are some possible complications from doing this,
so please read this article completely and carefully before deleting any
.adx files. Alternatively, you can use the .adx repair procedure (see
'Repairing corrupt index (.adx) files') which preserves some of the
information in the .adx, but may be a more involved depending on the design
of your database.

One reason to delete an .adx file is if you suspect it has a fault in it.
Deleting the .adx file will get rid of the fault, and Approach will
automatically recreate a new error-free .adx for you, but there are some
possible adverse consequences, if your database application is not prepared
for them. 

It may be a good idea to do a full back up first; you can then simply delete
the .adx files in File Manager. Approach will automatically rebuild the
indexes when you reopen the database. For particularly large databases you
may find it is better to open the .dbf's one at a time. 

Because Approach uses dBase IV format (with roots in DOS conventions) as the
default for its database files, using dBase IV format in the creation of
those database files will maintain consistent file names and fieldnames
across other applications accessing those files.  The default dBase IV
format is a DOS filename written in all capital letters, with a maximum
filename length of 8 characters with a 3 character .dbf extension.  The
default dBase IV format is a fieldname written in all capital letters, with
a maximum fieldname length of 10 characters as a combination of 10 letters,
digits, and  underscores.  The first character must be a letter. Punctuation
marks, blank spaces, and other special characters are not permitted.  (See
Using dBase IV, manual for Borland dBase IV for DOS, page 26.) 

Approach will allow fieldnames up to 32 characters, including upper and
lower case letters, whole numbers, spaces, commas, periods, and arithmetic
signs.  Approach saves this expanded name in the .adx index file. (See Lotus
Approach Database for Windows Release 3.0 User's Guide, page B-2.) If the
index file is deleted, Approach can automatically recreate it, but the
original, extended length and format fieldnames will be lost and dBase IV
fieldnames will become the default. 

The .adx also contains what the next number will be in automatically
incrementing serial number field will be. So, if you delete an .adx file for
a .dbf that has a numeric field containing an auto - incrementing serial
number, then the serial number will be reset to 1. You will therefore need
to manually reassign the correct record count in the field definition options. 

The .adx also contains a index of the dBase records. This means that if
another application (say Paradox, or Access, or something) adds new records
to the dBase Approach isn't going to be able to 'see' them until it updates
the .adx file. This index is always recreated automatically by Approach if
the .adx is deleted. 

Conclusion:  If you only use dBase IV format fieldnames and if you do not
use any auto-incrementing serial numbers and if you do not manipulate the
.dbf file with another application, then you should not suffer any side
effects when deleting a .adx.  

Optimizing the speed of a database
----------------------------------

Having the latest version of Approach on a suitably fast system with plenty
of RAM (minimum of 8 meg for reasonable performance, preferably 16 meg or
more), fast disk access, a large permanent swap file (at least 20 meg), and
fast disk caching will of course increase the performance of any large
database, but you may also what to carefully consider your database design.
A badly designed database will perform poorly in any application.  For
instance, the more joins you have, and the more joined databases shown on
any one form, the slower your database will tend to be.  Databases work
slower with 'full record locking' than with 'optimistic record locking'.
Not compressing the database(s) in an application on a regular basis can
also lead to slower performance.

Minimize your use of color and graphics as these drastically effect the time
it takes to update the screen.

In order to maintain the best ratio of speed and stability you may want to
consider deleting the .adx files (indexes) on a regular basis (say every
week or two). There are some possible complications with this so carefully
read "Deleting and recreating index files" first. 

Delete excessive windows .tmp files. If this is a regular problem you may
want to include the following statement in your autoexec.bat file:  "del
c:\windows\temp\*.tmp" (specify the directory of your .tmp files) WARNING:
This will also delete temp files used by some applications such as Word and
WordPerfect to automatically restore documents after a crash. To get around
this try using "del c:\windows\temp\apr*.tmp instead, or simply remember to
manually delete excessive .tmp files from time to time. 

If you are using Approach on a LAN or WAN, also see 'Running Approach on a
network' 

Wherever possible, use "numeric" data type as compared to "text".  Suppose
you have a part number that is literally all numbers, containing no alphabet
characters, and the number string is 10 digits long.  This field could be
set up as a "text" field of 10 characters in length, or a "numeric" field of
12.3 (12 digits to the left of the decimal point and 3 to the right of the
decimal point) or 10.0 (10 digits to the left of the decimal point and none
to the right of the decimal point) characters in length.  All of these
options will index and sort fine, but by setting up the field as a "numeric"
field of 10.0 characters, the index .adx file will be smaller and Sorts and
Finds will be faster. 

Whenever possible, join database files on numeric fields.  If numeric field
joins are not possible, join database files on text fields with short
lengths.  Why?  Two reasons.  The total number of joins in an application is
limited by the total of the lengths of all of the joined fields.  The
maximum limit for the total of the lengths of all of the joined fields is
450 characters.  [Where did this number 450 come from?  Answer:   personal
communication from an Approach developer.]  Joining fields with shorter
lengths will allow more joined database files to be included in the
application.  The second reason is that fields that are joined are always
indexed.  The .adx index files get large and inefficient when the joined,
indexed, text field is long (over 10-20 characters).  This will slow down
searches and screen updates.  [I am not sure that these details are correct.]
 
Joined fields in different database files must match in terms of data type
(such as, numeric or text) and must match in terms of length (maximum number
of characters) for optimal and reliable performance.  If the length of the
joined fields is different, then the joins themselves can become unreliable
and can become cross-linked so that the Unjoin function on the join map does
not work. 

Conclusions:  Design Approach applications for speed by:  1)  joining as few
databases as possible in an application, 2) using 'optimistic record
locking', 3) compressing .dbf files regularly, 4) deleting apr*.tmp files,
5) joining on numeric fields, 6) index on fields with short fieldnames, 7)
joining on fields with the same data type and length. 

Stuart Tucker <Stutucker@aol.com> substantially contributed to the articles
"Optimizing the speed of a database" and "Deleting and recreating index
files (.adx)". 

Running Approach on a network
-----------------------------

There is no special network version of Approach. When you are doing the
installation you will be asked if it it is to go onto a desktop or a server.
Check the README.WRI that comes with Approach and the Manual for future
information.

However, as with all software (executables) you will notice a drop in
performance running Approach from the LAN server compared to the running it
on a desktop. The general consensus therefore seems to be that you should
run Approach on each desktop individually, but just store the data and the
.vew/.apr files on the server. With this configuration the speed of your
desktops is more critical than the speed of your server. So if you have a
choice, use an older slower computer as the server, and your fastest
computers as workstations. This configuration also means you won't be
loading your network up with large executables. However, unless you have
software distribution software, the"software" person to go nuts if there are
100 workstations to upgrade at some stage in the future... I guess you'll
just have to way up the pros and cons. Multiple users can open the APR file
and the data file. Approach will handle record locking to prevent people
overwriting data someone else updated.

Note: The file locking protocol (Approach, dBase4, or dBase3 ...) must be
the same on all the workstations to maintain the integrity of your files.
This is specified in approach.ini:

sdBaseFileSharingMethod=Approach

Restart Approach for these settings to take effect.

Also, a 'Internal Error: Cannot load string 0' is generated when more than
16 users try to access the same .apr at the same time in v3.0* (v95...?). In
order to get around this, duplicate the .apr, and divided your users across
the new .apr/s. All the .apr/s can use the same database files.

dBase IV limitations
--------------------

Approach can use a number of different database base structures, but uses
dBase IV by default. dBase IV has the following limitations that you might
need to be aware of:

   * maximum number of fields = 256
   * maximum size of a record = 4000 characters
        = all the fields added together
         Memo fields take 10 characters
   * maximum length of a text file = 256 characters
   * maximum number of records = 4294967296 (4 gig)

Limitations of Approach
-----------------------

(also see dBase IV limitations)

   * maximum number of 'views' per .apr = 100
       view = forms, worksheets, crosstabs, reports,...
   * maximum number of characters if a find box = 256
   * maximum of 5 pages per form (v 96)
                1 page  per form (v2.1 & v3.0*)
   * maximum of 30 imbedded IF's in v3.02
         (see 'IF limitations in v3.02')

------------------------------

Subject: 5. How the Approach Users Mailing List works

The Mailing List
----------------

This is a discussion area for anyone uses or provides user support for the
Lotus Approach relational database. Subscribers receive an occasional
newsletter summarizing recent additions to the FAQ as well as other relevant
information and notices. A copy of part 1 of the latest edition of the FAQ
is attached to the end of this message.

The Approach Users Mailing List is not moderated.  Any message sent to it is
automatically bounced back out to everyone on the list.

The Topic
---------

An on topic message is any message which concerns how to use Lotus Approach
software, including relevant books, web sites, helper utilities, and
information about new versions that is of broad interest to Approach Users.

For a trial period, requests for people to do paid work on an Approach
database are permissible, but replies to these should go directly to the
person concerned and not to the mailing list.

Off topic and personal messages
-------------------------------

Anything that is not on topic is considered off topic, including messages
intended for a particular person, replies to other off topic messages or
spams, and comments about the value of somebody else's response / option /
whatever. The list gives you privileged access to many people around the
world. Please be considerate, and don't load their email boxes with
unnecessary drivel.

People are encouraged to post thank you messages to the people concerned
rather than to the mailing list as they are not of general interest.

Similarly, expressions of interest in offers of paid work should be sent to
the person offering the work rather than to the mailing list.

The List Owner
--------------

I am a youth worker and student, and do this as a hobby, so be nice!

I personally respond to every off topic message in private email. If you see
an off topic message on the list, including a subscribe or unsubscribe
request, you can assume that I have taken care of it. If you post an off
topic message to the list you can expect to hear from me...!?

You can email me (John Brown) at b3104977@bohm.anu.edu.au

LISTPROC: The Mailing List Server
---------------------------------

<<<< == VERY IMPORTANT ==>>>>

Please read the remainder of this message very carefully, as this mailing
list has two different addresses for different purposes, and errors will
occur if you use the wrong one.

<<<<== SAVE THIS MESSAGE ==>>>>

You should keep a copy of this file on your computer so that you can refer
to it in the future. This is particularly handy if you want to know how to
unsubscribe one day.

If you have a personal message for someone, please send it to their address,
not the list server address.  Any mail sent to the APPROACH List Server
address will automatically be sent to everyone on the list.

The list has two addresses. One is the APPROACH List Server address, and the
other is the LISTPROC Command address:

The LISTPROC Command address is: listproc@listproc.anu.edu.au
    ================

It recognizes the following commands in the body of the message (NOT THE
SUBJECT LINE):

     SUBSCRIBE APPROACH your name   to subscribe
     UNSUBSCRIBE APPROACH           to unsubscribe
     HELP                           to receive the listproc help file
     HELP SET                       to receive further help
     SET APPROACH mail digest       to receive the mailing list as 
                                      daily digests rather than
                                      individual posts

ALL COMMANDS SHOULD BE SENT TO THE LISTPROC COMMAND ADDRESS. ENTER THE
COMMAND AS SHOWN BEGINNING WITH THE FIRST LINE OF YOUR MESSAGE. MULTIPLE
COMMANDS CAN BE SENT AT ONCE, ONE PER LINE WITH NO BLANK LINES BETWEEN THEM.

If your email software automatically adds a signature to your email, then
you should put the word EXIT on the line immediately after the last command
so that the list server knows to ignore the rest of the message.


The APPROACH List address is: APPROACH@listproc.anu.edu.au
    =====================

Do not send commands to this address! All posts sent to the APPROACH List
Server address will be immediately sent out to everybody on the list. Make
sure you are using the correct address, and that you have not made any
errors or omission in your message.

If you have any difficulties with the mailing list please email me at
b3104977@bohm.anu.edu.au with "APPROACH" in the subject line.

I hope you find the mailing list useful, and get lots of helpful information
from it.

Changing Your Subscription Address
----------------------------------

If you want to change the email address you are subscribed from, simply
unsubscribe from you existing account, then subscribe from the one. If for
some reason you cannot access your old account to unsubscribe please email
me at b3104977@bohm.anu.edu.au and I will remove your old subscription for you.

Question and Answer Posts
-------------------------

I suggest you use the following format:

     a) Summarize your question in one sentence, being as specific as you
can. E.g. 'Is it possible to save records in alphabetical order?'

     b) In a short paragraph following the question, provide any further
information that people may need in order to fully understand your question
E.g. 'I find it annoying to have to continually sort the records and it
would be easier if I could just save them in their sorted order. Is this
possible?'

     c) In a final paragraph state what version of Approach you are using
(2.1, 3.0,...) as well as any other software or hardware that you refer to.
THIS IS VERY IMPORTANT.

NO, IT IS NOT OK TO ATTACH FILES
----------------------------------

No. It is not OK to attach files. Doing this substantially increases the
size of the email, even if the file is compressed. There are many different
mail system around the world and not all of them meet the same standards.
Attached files can sometimes be treated different ways which can (and does)
cause problems. Finally, many people around the world pay by the minute to
receive their email, and downloading large and unwanted files adds
unnecessarily to the cost of their service. Many service providers consider
attaching or sending large files to mailing lists a breach of service and
may terminate your email account for doing it. So don't!

Being on a mailing list gives you privileged access to email boxes of many
people around the world. Be wise about how you this privilege or it will be
revoked. Keep you posts short and to the point. You can always asked people
to email you directly if they want more information or a .zipped copy of
your database.

comp.databases
--------------

There is no official association between the mailing list and the Usenet
newsgroup comp.databases, or any other newsgroup. However comp.databases is
a good forum for discussion. Relevant information gathered from the
newsgroup will be included in the Newsletter and FAQ. If you do post to
comp.databases please include the word APPROACH in the subject line. Most
people on the mailing do not regularly access comp.databases.

Lotus
-----

There is official no connection between this mailing list and the Lotus
Corporation what so ever. This is a completely unofficial and unconnected
mailing list.

Mail storms
-----------

A mail storm is caused by a mail server which incorrectly sends error
messages to the mailing list instead of the Error_to: address in the message
header. When it sends an error message to the list it sometimes causes the
same error to be repeated. This goes on and on and our inboxes quickly fill
up with recurring error messages. This is what is called mail storm. They
are unusual, but one has occurred in the life of this mailing list.

There is nothing I can do to stop this from happening because it is caused
by an error in the remote system. I am able to remove the offending address
from the mailing list when I log on and discover the problem, but the mail
storm will probably have been stopped by the mail server before I do this.

I will however make a complaint to the postmaster of the offending system,
asking them to permanently correct the problem.

If this ever occurs again DO NOT SEND ANY MAIL TO THE LIST AS IT WILL ONLY
MAKE THE SITUATION WORSE BECAUSE EVERY ADDITIONAL MESSAGE SIMPLY INCREASES
THE RATE OF THE MAIL STORM.

I will appreciate your understanding and cooperation with this, as will
everybody else on the list.


------------------------------

Subject: 6. Official Stuff


The following people have contributed information to the mailing
list which is contained within this FAQ:

Adam Glick
Alan Shein
Andrew C. Pang
Anthony Barker
Atholl Tomlinson
Barbara Hull
Ben Schorr
Bernard Victor
Bernie Sakel
'Bigjc6991'
Bill Bosking
Bill Tarkulich
'Bobj19'
Brian Majesty
Bruno Dumon
Carl E Lloyd
'CedarsMT'
Charles Atkinson
Charles T. Hall
Chris Holcombe
Cornel Huth
David Gilder
David Sherman
'DiamondAsc'
Dominic Fairfax
Donald Ravey
Doug S. Varney
Doug Tymes
Ed Recker
Elizabeth Durkin
Fred Kennedy
Godfrey D'Souza
Ian Curry
Jack Bown
James McCall
Jerry Sikes
Jim Berry
Joe Chaitin
Joe Duffus
'JoeF3900'
Lewis N. Payton
Linda Emmele
Mark Pearson
Mark Wright
Michael Attenborough
Michael J. Cook
Mike Armour
Mike J. Vincelette
Patrick Timmins
Peter M Ladstaetter
R M Reddicks
Rhodri Edwards
Richard A. Garrard
Richard Preston
Robert G.S. Reed
Robert McDowell
Rosemary Culley 
Scott 'pccscott'
Steve Llanso
Stuart Tucker
Sue Clark
'TKDGuy'
Tim Cook
Vance Jochim
Walter Thompson
Wayne Maeda
Zarief Marzuki B Lao

Some information was also gathered from the Lotus Web Site.

If you would like you name added to this esteemed list, please feel free to
post some helpful suggestions and answers to the Approach Users Mailing List.

Disclaimer
----------

This document is provided as is without any express or implied warranties.
The editor and contributors assume no responsibility for errors or
omissions, or for damages resulting from the use of the information
contained herein.

Copyright
---------

(C) Copyright 1997 by John Brown, all rights reserved. Permission is given
for this document to be distributed in electronic form (such as email,
newsgroups, and the WWW) as long as it is posted in its entirety including
this copyright statement, and is not distributed for financial gain.

Editor
------

Editor: b3104977@bohm.anu.edu.au (John Brown)


    **** How to get Part 2 of this FAQ ****

Part 2 of this FAQ can be obtained by sending an email to
mail-server@rtfm.mit.edu with the following in the body of the message:

send usenet/comp.databases/Approach_Users_Mailing_List_FAQ,_Part_2_2

