home *** CD-ROM | disk | FTP | other *** search
- This is a revised version of ADR.ZIP - a simple address book
- application written in VB 3.0. It is intended to show one or two
- techniques for accessing and maintaining FoxPro tables with Visual
- Basic.
-
- To run it you need VB 3.0 professional edition. There is an .EXE
- included as well, which you can run if you have the VBRUN300.DLL and
- XBS110.DLL files on your system.
-
- ***PLEASE NOTE*** It will only run if the files are placed in a
- directory called ADR on drive C. If you change this directory, you
- will need to amend the path in the MAIN procedure, and several times
- in the PACK procedure as well.
-
- This version is a little more elaborate than the previous one. It also
- differs in that the tables are in FoxPro format rather than dBase.
-
- I hope its use is self-explanatory. The "Action needed" checkbox is
- intended as a way of marking the addresses of people where you need to
- take some action, such as replying to a letter. You can set the
- application just to show people who have action outstanding with the
- "Show outstanding action only" checkbox.
-
- This leads to some interesting interactions, as the application needs
- to cope with possibilities like the "Action" checkbox being unchecked
- when the "filter" is active and there are no more records with
- outstanding action.
-
- If you downlaoded ADR.ZIP you will notice a major change of approach.
- The original had the fields on the form updated directly from a VB
- table object. This new one uses a dynaset instead. The penalty is that
- one can no longer use "Seek". The advantage is that you can easily
- restrict the visible records to a subset, which is not possible with
- table objects (the equivalent of a SET FILTER... in xbase).
-
- Dynasets have no index property. Therefore, the order is achieved by
- including "Order by" in the SQL statement which creates the dynaset.
- One consequence of this is that the dynaset needs to be recreated
- whenever a record is added. Otherwise, the new record goes onto the
- end of the dynaset, out of the correct order.
-
- VB 3.0 records have no record number - the RECNO() that is so useful
- in FoxPro is absent. Therefore, this application illustrates how a
- counter field can be maintained in an xbase table. When a record is
- added, a unique number is found by Using the MAX function in a SQL
- query to find the highest existing number, and adding one.
-
- This number is valuable for recording and restoring the current
- record. It's also used in a simple implementation of a read-only
- browse. The "List" button brings up a scrolling grid containing
- records. Each row actually includes the record number, although this
- is not visible. Therefore, when the user clicks on a row with the
- mouse, and exits the "browse" with OK, the application can easily look
- up the correct record and display it on the form.
-
- The main headache is that updating a grid is so slow in VB! Therefore,
- it is not refreshed automatically (when a filter is set, or a record
- is deleted or added). You need to choose the "Refresh" button to
- refresh the list when necessary.
-
- Finally, I've improved the "Pack" function by using the SQL INSERT
- function. Still very slow - but faster than it was.
-
- I hope some of you find one or two tips from this app. Equally, I'd be
- glad to hear of other, better ways of solving some of the problems
- which come up even in a simple app. like this. Please post any
- suggestions in the forum, or mail me on 100023,3154.
-
- This app. is not thoroughly tested - be cautious if you put it to
- serious use!
-
- All the best,.
-
- Tim Anderson
-
- 26 August 1993
-