vb123.com

Garry Robinson's Popular MS Access, Office and VB Resource Site

 

Home  Contact Us
Order our Software

RSS & Newsletter  
Join our XML/RSS Newsfeed or sign up for our informative newsletter on Office Automation, Access and VB topics
Read More

Get Good Help
If you need help with a database, our Professionals could be the answer
Read More

  Is Your Database Corrupt ?
If you have a corrupt database, Try our Access Recovery service

The Workbench  Find out who has your database open, start the correct version of Access, easy compacting and backups, change startup options, mde compile,  shutdown database Read and Download

The Toolshed 
Searchable help file comprising of all the information at vb123.com plus hidden downloads etc. Read More



The Toolbox

Libraries of software that we regularly import into our projects. Enhances the Toolshed More..


DryToast New
Backup and query your BaseCamp
® projects
Read More


Datamining/Graphs

Explore your data with this versatile graphing and data mining shareware tool.  Read More

Garry's Blog
Find out a few other things that Garry has been writing about Microsoft Access. Read more

About The Editor Garry Robinson writes for a number of popular computer magazines, is now a book author and has worked on 100+ Access databases. He is based in Sydney, Australia
Contact Us ...

Search ...

or try our new Expression Web
 vb123.com.au
 

 

Next Tip  Welcome To The Access Unlimited Newsletter - Edition 35
See all newsletters

Access Unlimited is an email newsletter that provides free tips, help and information for skilled Microsoft Access users and related software disciplines.


Produced by Garry Robinson (known below as "Ed") from Sydney, Australia.

In this edition,

MY SECOND FAVOURITE NEWSLETTER
THE WORKBENCH
PDF GENERATION
GOOD READING
NOT SO EXTREME PROGRAMMING


--- MY SECOND FAVOURITE NEWSLETTER

Over the years there has only been one newsletter other than Access Unlimited that “Ed” reads from top to bottom everytime it ends up in the Inbox. Unfortunately that newsletter has lost its subscribers base but lucky for us programmers, the newsletter has still got Mike Gunderloy as its editor. In edition 1, you will find a list of Access applications that readers have taken the time to explain, SQL corner and unreplication of databases. You can read this magazine in full and learn how to sign up at the following location

Click Here to read the newsletter in full

--- THE WORKBENCH

Programming on our new Access tool called The Workbench continues at a pace. Lately we have support for Windows Explorer SendTo and Open With (right clicks for the MDB, MDE, LDB and MDW file types. This means that you can open any of these file types and see details about who is using the associated database. Also we have added a security test to see if the Admin account can read a table in your database. Anyway read more at

http://www.vb123.com/workbench/

So that you can get in early with this new tool, we are offering a special deal for those of you that have a PayPal account. If you order before the end of September, you can purchase/upgrade both The Toolshed resource kit and The Workbench for US$19.95 at the following address

http://www.vb123.com/orders/default.asp?special=20918


--- PDF GENERATION

Had a number of responses on PDF generation tools after the last newsletter. Have you any other suggestions ?
http://www.vb123.com/toolshed/links/pdfwriters.htm

--- GOOD READING

The Database password appears even though it was never set. Sounds like a real good reason to keep a rolling backup set !
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q243895&

The trust factor in Web sites by Garry Robinson
http://www.completeresults.com/archives/enginewars.html

Wonderful page describing the reasons/differences between Windows XP Home and Professional.
http://www.emulators.com/xptutor.htm

Add file attachments to email messages using Outlook Automation
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q161088&
http://www.visualbasicforum.com/showthread.php?s=&threadid=33667

Working out versions of Office files in Visual Basic
http://msdn.microsoft.com/library/en-us/dnoxpta/html/odc_comaddinvb6.asp

Run Access 2000 and Access 97 on the same computer
http://www.microsoft.com/office/ork/2000/journ/AccessCoexistence.htm

An ADO tool that might be of some use to someone.
http://www.adoanywhere.com/


WRAPPING THIS EDITION UP – NOT SO EXTREME PROGRAMMING

One of the more interesting questions about running a modest software development business is how do you expand the business whilst maintaining the control of the software that your clients have come to appreciate.

One model is to bring in another expert such as yourself and simply hope that they can manage your new projects just the way that you do or better. Naturally these sorts of skilled people will or should cost more. Unfortunately they will not have the same attachment to the client that you might have.

The expansion model that Ed prefers is one of using other competent programmers as an interface to your own keyboard. This means, plan your modifications and spend a lot of time with the programmer showing them how to do things your way. In the process you will learn a lot yourself and projects will end up looking the way that you want. But this means that your time will NOT suddenly be free to work 100% on other projects. Just budget for a 130-150% increase in output for a number of months. Sometime in the future, this will increase to a greater percentage as everyone understands everyone else.

Ed. Garry Robinson
 


*********************************************************

Welcome to Larkware's monthly newsletter for Microsoft Access developers.

*********************************************************

ACCESS DEVELOPER NEWS

A Larkware production: http://www.larkware.com/
Issue 1.0
September 6, 2002

WHAT IS THIS?

This would have been issue 3.8 of Smart Access Extra. However, Pinnacle has cancelled that newsletter (and several others), and they didn't inform me in advance. Because I'd already written it. I'm sending you this newsletter myself.

I don't, unfortunately, have access to Pinnacle's subscriber list. So I'm starting from my own list of people who have answered surveys or e-mailed me in the past. I realize that some of you are getting this who are not current subscribers. My deepest apologies; you won't get any more from me in the future unless you act.

In fact, IF YOU WANT TO KEEP GETTING THIS NEWSLETTER, YOU NEED TO OPT IN TO THE NEW MAILING LIST!

To subscribe to Access Developer News, visit:

http://www.larkware.com/MailingList/signup.aspx

If you don't visit that URL and put in your e-mail address, you won't get another issue!

So, if you want to see this newsletter continue:

1) Visit that URL and subscribe

2) Please let anyone else who might be interested know about this! I'm losing 90% of the mailing list here instantly, and would like to get at least some of those people back.

And now, on to the newsletter...

Mike Gunderloy

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

TABLE OF CONTENTS:

1) Missing the Boat Twice
2) A Blast From the Past
3) Survey Results
4) Speed Ferret 4.1 Ships
5) SQL Corner: Miscellaneous DDL
6) On the Web
7) SQL Server Security Rollup
8) KB Article: Unreplicate a Database
9) Tip: Keyboard Shortcuts
10) Reader Mail

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

Back issues and previous survey results are available at http://www.larkfarm.com/sax/smart_access_extra.htm

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

MISSING THE BOAT TWICE

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

MSDN has had a couple of interesting articles on Web Services and Office lately that are just not quite what we Access developers would like to see. But they're worth mentioning here anyhow, because they may get your creative juices flowing.

First, "Using Complex Data Types with XML Web Services in Microsoft Access 2002" (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpwst2

/html/odc_accmplxtype.asp) shows how you can hook up to a Web Service from Access and how you can parse data that comes back from the Web Service. But even though it says "complex", the types in this article aren't all that complex; they're basically just multi-field structures.

Second, "Working with ADO.NET Datasets in Microsoft Office"  shows how you can take a DataSet from a Web Service and consume it in Office - by turning the DataSet into an array and displaying it in Excel!
Click Here to read

Of course, what I'd really like to see is code to turn a DataSet delivered by a Web Service into a set of related Access tables. But apparently no one at Microsoft has thought to write that one yet.

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

A BLAST FROM THE PAST

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

How long has it been since you've seen an Access 1.0 box? For that matter, have you _ever_ seen the Access 1.0 box? For a quick trip down memory lane, visit the Microsoft Access Software Details page at the EMS Professional Software site (http://www.emsps.com/oldtools/msaccv.htm).

You'll find a listing of every version of Access ever produced, starting with Access 1.0 for DOS (which was not a database product). Even more amazingly, click through the links and you'll discover that you can still buy copies of this obsolete software (with the caveat that licensing is up to you).

Exploring the EMS site reveals a host of other old versions of software for sale. I can see times when this would be a very useful site to visit...though I'm not sure I'll ever be in the mood to pay $495 for a boxed copy of SQL Server 4.21.

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

SURVEY RESULTS

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

You may recall that I tried something a bit different for last month's survey. The goal was to build up a list of Access solutions that had actually been implemented, so that the community would have some reference points to fight the "Access is a toy" crowd. I didn't get a whole lot of responses (I expect because most people don't care to take the time to share this sort of thing), but the ones that I did get show the breadth of uses of Access.

For details of these solutions, visit my web site at http://www.larkfarm.com/sax/solutions.htm. There you can get full information, as well as details on how to contact the authors if you'd like to use them as a reference (or, of course, if you'd like to hire them). Here's an overview of what some folks are doing with Access:

"An application to support high school business managers and school officials to manage textbook inventory and registration procedures such as fees and payments,lockers, bus passes etc." 30MB of data in Access 97.

An Access 97 solution: "Fleet Invoicing and managment. Program handles the invoicing of a very large hire company (800 items of earth moving equipment and 700 trucks). Program also provides management reports on things such as utilisation and projected hires for next financial year. Program provides a high degree of flexibility in querying data about specific types of items and/or customers."

Another Access 97 solution, this one handling 40 MB of data and 15 simultaneous users: "I developed an application for a nonwoven textile plant that handles receiving, production, converting, lab testing, downtime reporting, inventory control, and shipping. It pretty much runs the plant except for the financials. I did not want to reinvent the wheel in writing a financial package. I also wrote stand alone applications for training, human resources, and needling." Biggest challenge: "Getting management to stop changing the requirements."

Here's an Access 2002 solution: "This is a runtime program that is used by wedding consultants to operate their businesses. The program was first developed as an Access 97 runtime, but on the last upgrade we found that we would have to move to Access 2000 or later to reliably get the functionality we need so we went to an XP runtime. We did get Wise installer and Sagekey scripts to do the installation since there was not enough information available on the Office packaging program to tell if it would be reliable or not. A virtual tour of the program can be seen at http://www.murphyscreativity.com/Tour.htm"

This one's in Access 2000, using replication between 4 sites connected by a WAN: "An Environmental Issues Register that records actual and potential issues, incidents, locations etc. for an energy company. The solution required a rebuild of an existing application (don't they all...?!?), re-analysing the data structure and business processes, remodelling them in Access, performing the usual data transfer and cleansing, building a UI that conforms to standards, creating a versioning process (head office / power station) that allowed each data set to be the same to ease synchonisation whilst restricting user access, writing a bunch of operational and functional reports, writing a user manual and an admin manual, working out the delights of replication/synchronisation (hell, it's good...when it finally works!). Then stopping for lunch!"

An Access 97 document management system: "I noticed that most of our documents were just plain text. I put the template in an Access memo field. I set it up so that the users put in their own text by enclosing the variable info in [] like [Enter Amount Here]. If they need a field from our customer table, they just have to reference that field like [Location] and the system will go and get that info. I also created some generic functions like [Date], [FullName], [FullAddress]. Now all of our correspondence with our customers is in one Log table that everyone in the office can use. Here is a neat byproduct I didn't expect: Our CEO is now sending dictation to be typed in "Document Print". When he gets the letter back to check and sign, he makes the changes in "Document Print" and re-prints it. It doesn't have to go back to the secretary."

Over 100MB of data in Access 2000: "Complete Receiving, Purchasing, Production, Shipping system. Communicates to AccPac for retreiving Sales Orders, Item Master, etc. Also sends production information to AccPac. Communicates directly with TEC Label printers using Printer Code for speed and reliability. Retrieves weights from varies scales. The program has been running for almost 2 years with no major issues."

200 users on an intranet application: "The solution was a report server that ran MS Access on the server and created reports to a file (either Rich Text Format or Snapshot). The user created report request from IE using ASP. A small vp program running on the server would detect this request and launch MS Access to produce the report. Each report request would have it's on instance of access running.

Access 97 at work: "This was a Time Tracking application for temporary and regular employees doing product testing on multiple products." Greatest success of the system: "That it is still being used 18 months after they tried to replace it with a comercial product."

Another Access 97 application: "It was a work order tracking system for a large cable installation contractor. It allowed the dispatcher to generate run sheets for the following day, enter the call codes (work performed) in the W/O to track income (from the cable company) and expenditures(what they were paying their installers). The entry screen was a single form to allow the dispatcher enter the information quickly while the installer was on the radio."

Thanks to all of you who generously shared details for the benefit of other developers. I note that once again Access 97 is the "sweet spot" for many successful developers. I wonder what it would take for a new version to displace it in your hearts and minds?

This month I've got a copy of .NET E-COMMERCE PROGRAMMING to give away to one random survey respondent. Come by http://www.larkfarm.com/sax/smart_access_extra.htm to fill out the survey, as always. This month's topic: the upgrade treadmill, and how you deal with it. See you there!

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

SPEED FERRET 4.1 SHIPS

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

There's a new ferret on the block. More accurately, a new version of Speed Ferret, an excellent utility that started out in Access and is now an Access/Visual Basic/SQL Server search and modification tool. You can check the value of a single property across all objects in your database - handy if, for example, you want to make sure all form background colors are the same. You can change a field name in a table and have this fixed up everywhere the name occurs in a set of Access, VB, and SQL Server projects. And of course you can do search and replace in text, as well as in any object property.

The new version, 4.1, includes new drivers to handle Access 2002 databases and projects and SQL Server 2000 databases, bringing it up to date with Microsoft's latest releases. They've also done a lot of performance work and made some user interface improvements. If you're already a Speed Ferret user, you'll want to upgrade, If not, you can visit the Black Moshannon web site for more details or to download a trial version. http://www.moshannon.com/index.html

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

SQL CORNER: MISCELLANEOUS DDL

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

The previous two installments of this column (which you can, as a reminder, pick up from http://www.larkfarm.com/sax/smart_access_extra.htm;

there's even a collection of all the SQL Corner columns as a single file

there) discussed the CREATE TABLE statement in Access SQL. This is the first data definition language (DDL) statement that I've tackled in this space. As a reminder, DDL is the part of SQL concerned with creating and altering objects (as opposed to Data Manipulation Language, DML, which is concerned with actually retrieving and altering data). Now it's time to take a look at some of the other DDL statements that Access supports.

Access does not have a particularly rich set of DDL statements, especially as compared with high-end database systems such as SQL Server. That's because the Access GUI has been the primary means for creating objects, with DAO/ADOX being secondary and SQL DDL statements bringing up the rear. But there are a few statements available that you may find useful:

CREATE INDEX

ALTER TABLE

DROP TABLE

DROP INDEX

The CREATE INDEX statement is used to add an index to an existing table. For example, you could add an index to the Northwind Customers table with this statement:

CREATE INDEX CompanyIndex

ON Customers (CompanyName)

To index multiple fields, you specify all of the field names:

CREATE INDEX ContactIndex

ON Customers (ContactName, ContactTitle)

To disallow duplicate values in the column or columns, add the UNIQUE

keyword:

CREATE UNIQUE INDEX CompanyIndex

ON Customers (CompanyName)

You can use the IGNORE NULL clause to keep Jet from making index entries for rows with Null values in the indexed field (useful if there are many nulls and you want to search for actual data):

CREATE INDEX CompanyIndex

ON Customers (CompanyName)

WITH IGNORE NULL

Or you can prevent Null values from being entered at all (similar to the Required property of a field) with the DISALLOW NULL clause:

CREATE INDEX CompanyIndex
ON Customers (CompanyName)
WITH DISALLOW NULL

Finally, you can specify that an index be the primary key of the table (of course, this will only work if the table does not already have a primary key):

CREATE INDEX CompanyIndex
ON Customers (CompanyName)
WITH PRIMARY

The ALTER TABLE statement is used to alter the design of an existing table. You can perform several different operations with ALTER TABLE. First, you can add a column to a table:

ALTER TABLE Customers
ADD COLUMN NewColumn TEXT(50)

You can only add one column in a single ALTER TABLE statement. You can also add a constraint (see Smart Access Extra 3.4 for a discussion of the CONSTRAINT clause):

ALTER TABLE Customers
ADD CONSTRAINT NewColumn UNIQUE (NewColumn)

If there's a constraint you don't need any longer, you can also use ALTER TABLE to get rid of it:

ALTER TABLE Customers
DROP CONSTRAINT NewColumn

And as you might expect, you can also drop a column:

ALTER TABLE Customers
DROP COLUMN NewColumn

The final DDL statement that's supported by Jet is the DROP statement. This comes in two forms. DROP TABLE is the inverse of CREATE TABLE:

DROP TABLE Table1

And of course DROP INDEX is the inverse of CREATE INDEX:

DROP INDEX CompanyIndex ON Customers

Next time I'll talk about some of the additional DDL commands that are supported by the Jet 4.0 ANSI-92 extensions.

---------------------------------------------------------
ON THE WEB
---------------------------------------------------------

Some more miscellaneous finds from my prowling around the Internet. Space precludes my listing everything that I find here; if you're interested, I post more frequent notes and pointers over at http://www.larkware.com/ .

- Alchemy Eye continues to improve their automated server monitor product. The latest version, 3.7, includes monitoring for TCP/IP, SQL Server, Oracle, events, service states, file existence, and a raft of other thing. You can respond to failure conditions with e-mail, pages, VBScript programs, ICQ messages, and more. This is the one that I use for my own network monitoring purposes. http://www.alchemy-lab.com/products/eye/

- Groove 2.1 (http://www.groove.net/) has turned into quite an interesting peer-to-peer application. I'm using it to help manage several projects with distributed teams right now, and it's extremely powerful (though rather confusing at first). If you don't mind a 27MB download you can play with the preview edition for free and get a taste of this file-sharing, discussion-group, messaging, whatever-the-heck-it-is software package.

- NUnit 2.0 is a unit testing framework for .NET, based on the XUnit testing framework developed for Java applications. Unit testing is an essential part of extreme programming (XP) and a generally good thing. 2.0 is still in beta, but it's shaping up to be a useful way to organize your NET application tests. http://sourceforge.net/projects/nunit

- eSynaps.com, a Web services portal site, has chapters from several Wrox books on ASP.NET and Web Services. Check them out at http://www.esynaps.com/direct/go.aspx?go=/Resources/bookList.aspx?

- Precise is sponsoring a free online eBook on SQL Server Performance, written by Don Jones. It's being published in installments, and is available in either HTML or PDF. Free registration required; start at http://ebook.precise.com/index.cfm/FuseAction/TOC/

- The .NET Architecture Center is Microsoft's latest attempt to share best practices for application architecture. Find it at http://msdn.microsoft.com/architecture/.

- Computer Stupidities (http://rinkworks.com/stupid/) is just what it sounds like. If you've ever suffered through doing tech support for idiotic customers you'll appreciate this one.

- The Making of a BattleMech (http://www.wizkidsgames.com/mwdarkage/mw_article.asp?cid=36984&frame=news

) has nothing to do with computers. But boy, does it look like fun. Just don't tell my kids that other dads are this cool.

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

SQL SERVER SECURITY ROLLUP

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

Microsoft has issued another cumulative security patch for SQL Server. There are versions for SQL Server 7.0, MSDE 1.0, SQL Server 2000, and MSDE 2000.

Quite a few security holes have turned up in SQL Server in recent months. These range from ways to crash the server to ways for any guest user to hijack the Windows account under which SQL Server runs. Microsoft rates this patch as "moderate" severity, but my own feeling is that if you have a SQL Server or MSDE installation connected to the Internet (or another network where you don't trust anyone), you should definitely apply this patch.

Be sure to read the readme file. SQL Server patches are not as easy to use as some other product patches; you'll need to stop the server and manually copy some files around. Pay attention when it tells you to make a backup, too, just in case.

If you're running SQL Server or MSDE, you can find further details and download locations at Click here to read

---------------------------------------------------------
KB ARTICLE: UNREPLICATE A DATABASE
---------------------------------------------------------

Ever turn on replication in a database and then wish you hadn't? Replicating a database makes all sorts of changes to it. Well, if you need to reverse the changes, you can refer to KB article Q290052, "ACC2002: How to Make a Replicated Database a Regular Database". This article will give you the basic steps to get back to your starting point, which can be very welcome when you need it. The article also links to an Access 2000 version.

Alternatively, you can just go grab a copy of TSI Access 2000 Un-Replicator, which you can find at http://www.trigeminal.com/lang/1033/utility.asp?ItemID=7#7 along with a bunch of other useful utilities.

(You can read this article online at
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q290052)

---------------------------------------------------------
TIP: KEYBOARD SHORTCUTS
---------------------------------------------------------

If you watch experienced developers, you'll often see that they leave the mouse sitting right where it is. That's because there are keyboard shortcuts for almost everything, and after a while you get to know them. Access has a raft of special keys designed to help you work more efficiently. Try these shortcuts in form design view, for example:

F4 or Alt-Enter - Switches the focus to the property sheet
F5 - Switches from design view to form view
F7 - Opens the Choose Builder dialog box
F8 - Opens the Field List
Shift+F7 - Switches the focus from the property sheet back to the form
Alt-F11 - Switches to the Visual Basic Editor

---------------------------------------------------------
READER MAIL
---------------------------------------------------------

Nic Smith writes:

I've just finished programming a small routine when I noticed what I was actually typing.

I'd created a boolean variable which I store the Enabled value of controls. Using 3 characters (bol) to dstinguish it as a boolean field I noticed that that the variable name was bolLock. I was typing bollocks....Has anybody else created unusual or funny variable names?

---------------------------------------------------------
UNTIL NEXT ISSUE
---------------------------------------------------------

I welcome your input, tips, suggestions, Web sites, and other Access news. If you send me something, please let me know whether I can use your name with your comments. I can't offer personal replies to all questions, due to the volume of your mail, but I'll get to as many as I can in the newsletter.

Vendors & authors: If you've got an Access-related book or product to promote, I'd be more than happy to take a look at a review copy. Just drop me a line.

Mike Gunderloy, Editor

ACCESS DEVELOPER NEWS

mailto:MikeG1@larkfarm.com

Feel free to Forward this Newsletter to your colleagues, and tell them they can sign up for it at http://www.larkware.com/MailingList/signup.aspx

 

This eNewsletter is brought to you compliments of Lark Group, Inc.
Copyright(c) 2002. All rights reserved.

 

 



So thanks for reading the Access Developer and Access Unlimited newsletters. 
Feel free to make comments, copy the email to a friend or maybe even contribute to the next edition.


Garry Robinson - Software Consultant
GR-FX Pty Limited
Ph +61 2 9665 2871 Fax +61 2 9665 8448
Email access@gr-fx.com
Software Resources http://vb123.com/

Click on this button Next Tip to read the previous edition of Access Unlimited 

Published  2002-09

 

Links >>>  Home | Search | Workbench | Orders | Newsletter | Access Security | Access professionals