Small b Systems blog

Information for small businesses

Outlook© Email Database released

clock January 14, 2010 12:00 by author Administrator

"Ninety day e-mail deletion policies address the growing burden and IT cost of corporate e-mail stores, but not the legal requirements for e-mail lifecycle management. In the end, the increasing costs of e-mail storage pale in comparison to the risk and cost of businesses not paying attention to electronic records compliance and e-discovery." by Lynn Haber for October 3,2006 for Symantec

Small businesses we have advised do not have the resources to comply with this law. Most of them have never experienced litigation and have no idea of how to comply with a discovery request. Failure to comply can be very serious and expensive.

Paper documents are easy. Put them in a box and throw them in the closet for seven years. Electronic data is not so easy for a company without an IT department.

We wrote this program for clients using Outlook© 2007 on desktop computers without Microsoft Exchange Server. The program was installed on each computer and run periodically. We accessed their network monthly and merged and compressed all the databases into one and saved it to an outside server.

If you can click a button with a mouse, you can run this program. It will do all the work for you.

Give it a try http://www.smallbsystems.com/sbs/OutlookUtility.htm



How to reposition Microsoft© Access report controls at print time

clock January 10, 2010 04:03 by author Administrator

The example I am using is an estimate which has a footer with Installation, Tax, Total of Estimate and Deposit. Many of the estimates do not have Installation or Taxes. The problem is how to print the footer without showing the items not in the estimate.

This code in the designer will set the control text to blank if there is no value returned from the data source:

=IIf([TxtSalesTaxToString]>0,[TxtSalesTaxToString]*[QuoteTotal],"")

The problem is that this blank control will print on the report as an empty line so to complete the solution you need to move the visible controls up and move the blank controls to a empty spot on the report footer otherwise the blank controls will over print the controls you just moved. The last issue is that the Microsoft© Access report, by default, uses a twips as it's unit of measure.
"Twip" is a unit of measurement equal to 1/20th of a printers point. There are 1440 twips to and inch, 567 twips to a centimeter.

The following is my solution to this problem if you a using Microsoft Access 2007©. If you are using 2000 or 2003 you have to make two modifications. First, the position must be in a variable of type LONG. For some reason, the "top" position does not accept a literal. Second, put the code in the format section to the section the controls are in. (i.e. ReportFooter_format ). I used DIM v72,v490,v900, v2000 as LONG.

TIP: Put your controls where you want them in design mode and then add msgbox(me!control.top) for each control to get exact position.

Screen capture of MS Access Report Footer positioning code.



Ashley Miritello founder of Pillows 4 Patients

clock November 1, 2009 04:43 by author Administrator

While Ashley and I live in the same town, we do not know each other. I read about her this morning in The Journal News. Ashley is 13 years old and the founder of Pillows 4 Patients http://www.pillows4patients.com.

I have 5 granddaughters of whom I am very proud but Ashley is on a plain of her own.

This Microsoft Tag contains Ashley's instructions on how to make a pillow to donate:
>

 


This is the article as it appeared in The Journal News©

November 1, 2009

Yorktown girl's pillows comfort sick kids

Terence Corcoran
tcorcora@lohud.com

YORKTOWN - When you make a practice of trying to bring joy into the lives of complete strangers, as 13-year-old Ashley Miritello of Yorktown does, it can be nice surprise when one of those strangers takes the time to thank you.

That was the case recently for Ashley after the charity she founded, Pillows4Patients, was granted nonprofit status.

Since founding the charity in February 2009, Ashley, a Lakeland Copper Beech Middle School student, has helped provide more than 900 pillows to patients, most of them children, at hospitals throughout the Lower Hudson Valley and beyond. The pillows are designed to provide comfort for patients at stressful times.

She had set up a booth at the Yorktown Street Fair last month after receiving nonprofit status and was soliciting donations for her cause when she was approached by a girl who had earlier benefitted from the charity.

"She had her appendix out and she said she slept with the pillow every night," Ashley said. "It made me feel good to know that I helped her."

You wouldn't know it from talking to the shy teen that she has received thanks from many of the people she's helped.

"She recently got a thank-you letter from a father whose son is undergoing chemotherapy and brings the pillow with him every time he goes in for treatment," said Ashley's mother, Marci Miritello. "I'm very proud of her. She's had a huge impact on the lives of people she's never met just by giving them a pillow."

Marci Miritello, a breast cancer survivor, said her daughter has always had a giving nature.

"She's always been nurturing - it's her personality. When I was sick, she was a lot younger but she did her best to take care of me," Marci said.

Ashley's mission began after a trip to the hospital a few years ago for stitches. Although she was only there for a few hours, Ashley said it made her think about children who have to spend days, if not weeks, at the hospital. She also learned from a class how to make pillows and soon the idea for Pillows4Patients was born.

She started her endeavor in February and, by April, had made her first donations to Blythedale Children's Hospital in Valhalla, a donation that was met, she said, "by lots of smiles."

Ashley has gotten her classmates at Lakeland Copper Beech Middle School involved and is seeking to get more youth groups into making pillows.

Her Web site contains instructions on how to take part in pillow making, as well as specific directions on the materials and process required to make germ-free pillows, a must for hospitals.

"We're hoping to get enough kids involved that we can do this across the country," Ashley said.

Lena Cavanna, director of media relations at Blythedale, said the pillows are good both for the patients who receive them and the young volunteers who make them.

Because children are not allowed to bring stuffed animals into the hospital due to germs, the pillows provide them a certain level of comfort, she said.

"It gets people to think beyond themselves," Cavanna said. "Our kids (patients) are used to having adults around and working with them. But when other children from the community get involved doing something for them, it's a bridge for our kids."

"We want to get them back into their community and it helps to know that kids from the community are doing things for them and accepting them," she said.




Microsofts Tag for Cell Phones

clock October 31, 2009 06:15 by author Administrator

As Microsoft explains their tag in their FAQ, "Microsoft Tag connects real life with the digital world. Microsoft Tags are small, colorful codes that can be printed, stuck, or displayed just about anywhere. When you snap a Tag with the camera on your internet-enabled phone, additional information or experiences are automatically opened on your phone. There is no fumbling with URLs or texting short codes. Microsoft Tags can make product packages, posters, print-based ads, magazine articles, exhibit signage, billboards, storefronts, business card, or just about anything else, interactive. "©

This code generates the contact information for Small b Systems.

The entity that publishes the tag signs up for an account with Microsoft at http://tag.microsoft.com/SignIn.aspx?lc=1033. There is no charge to sign up. Visit Microsoft's web site http://www.microsoft.com/tag/webhelp/mibp.htm for more information on managing your tags.

The second part of the systems is the FREE application that run on a cell phone. You can download it at http://www.microsoft.com/tag/content/download/ from your computer or http://gettag.mobi from your cell phone. Once you have installed this application, open it and follow the on screen instructions to read the data from the above tag.

This tag system is far more useful than the other 2D barcode readers for cell phones for three reasons:

  1. The tag links to a Microsoft Server where the data is stored for this tag. The data can be almost any text.
  2. Microsoft provdies the tag owner with many useful reports on tag's data retrieval.
  3. The tag to data conversion is far more forgiving that other systems we tried.

 



Microsoft Outlook 2007© Utilities

clock October 3, 2009 16:39 by author Administrator

Utilities for Microsoft's Outlook 2007©

We have seen that many business users do not know how to export and share the information they have accumulated in Outlook. The Outlook Personal Folders are binary and not readable by most programs. Microsoft plans to give programmers access to these folders in the future. Our first utility extracts the contacts from Outlook 2007 with the click of a button and puts in contacts in a database which can be searched and shared by many commonly used business programs such as Microsoft Word©, Access© and Excel©. It is important for users to be able to access their data freely and our program does that for the contacts stored in Outlook. 

Our next utility will extract the inbox email messages and their attachments. The emails database will include 43 information fields plus the attachment file names and internet header. This is more information than the average user is aware of and a perfect way to comply with legal requirements to maintain a record of emails. The attachment files will be stored in the same directory as the Microsoft Access© database. The user will be able to search the database for emails and read them from within the program.

Systems administrators could take these individual databases and attachment files and merge them into a corporate database.

We plan to take the same approach with the Sent emails and calendar if there is enough interest.

Contacts Database

Outlook 2007 has 65 usable fields for contacts. Our utility captures all of them and presents them to you in a easy to read Windows Form (see below). The information in Outlook is not altered at any time and the information presented in our application is read only. All contact additions and editing take place in Outlook. The user can refresh the database at any time.

Our program, Contacts Database, installs into folder C:\Program Files\Small b Systems\Contacts Database\ and C:\OutLookDB\ where Outlook2007Contacts.mdb database is created to hold the contacts extracted from Outlook 2007. This is an Microsoft Access© 2000 database which can be read by Micorsoft Office Access©, Excel©, Word© and Microsoft SQL Server© to name only a few. We do not make any entries into the Windows Registry. The program has it's own uninstall program.

Please try this program before buying. There is a FREE TRIAL VERSION that is fully functional but limits the contacts extracted to 100.

Download Trial Program

 



What is a database and why do I need one?

clock September 13, 2009 03:50 by author Administrator
People and businesses enter and collect vast amounts of information with computers. In the days before affordable computers, most of our information was written or typed on paper. We organized the paper information into file folders and usually created multiple copies filed under different categories. A letter might be filed in correspondence folder by date, client's file, follow-up folder and of course the "cover your ass" copies to everyone. The more copies there where, the more likely you were to find a copy when you needed it.

Of course, once you found the file you had to read it's contents to find the information you seek. As hard as this process was, imagine that all the information you recorded on paper was on one long roll of paper. New information was written at the end of the scroll.

Computers store information on one long digital roll of magnetic material. Great for recording....not so great for finding information. One option to organizing this information is to put similar information into spreadsheets and word processing files and search the computer for a series of characters that you think are included in the file, or file name. Just hope the boss doesn't give you five minutes to come to a meeting with the file!

Word processors where designed to automate the typing process. Spreadsheets were designed to replace the pencil, multicolumn paper and calculator. Text was for column and row labels and little else.

A computer database is a tool for organizing data. The data is broken into small pieces such as name, street address, city, state, zip code, income, age, sales, etc.. There are two reasons for doing this. The first reason it you want to know where to find your information and the second is it is combining data fields is easy and breaking data into fields is not. Unlike a spreadsheet or word-processing file, a database was designed for the retrieval of data. You could query, ask, a database a questions such as: In 2008, how many salesman had sales greater than $5,000 in New York? How many customers do we have in this zip code? What are the sales for ABC Company in 2007, 2008 and 2009 to date? Show me all contacts for whom we do not have email addresses?

There are two major types of databases. Flat file databases are like a spreadsheet. If you want to record ten people for the ABC Company, you will have ten rows of repeated, and eventually, different data. You will be amazed at how many ways people can enter "ABC Company, Inc.". The second database type is relational. This means that all data is linked to related information. An example would be a corporate address book. All information pertaining to a corporation can be retrieved with the name of the corporation.

A database is a great tool for business but it must be designed correctly to yield the desired results. An error in database design can be very costly. Some examples of errors made by others, which cost millions of dollars to correct: A brokerage firm provided for 999 offices....when they tried to add one more, the system crashed and the database had to alter it's design and transfer vast amounts of data to new database. An Illinois bank entered customers names as First Middle Last Suffix (Jr., III, etc.) thinking that they would always retrieve information by customer's account number. One day someone asked for the customer list sorted by last name. They gave them a list consisting of blanks, Jr., III, Esquire, etc.

Computers are great tools but they have their limits.
Computers work with numbers only. You search a computer's data file by telling the computer what position to start at and giving it a string of numbers to search for such as "a12B" and the computer translated that to 97 49 50 66. The computer than retrieves the number from the position you entered and subtracts 97 from it. If the answer is 0 then it repeats the process until the last number, 66, and if the answer is still 0, the computer knows it has found the search pattern. If the answer is not zero, the search fails. The computer does not know anything about these numbers. It does not know if it is part of a word. A word could be described as a string of numbers with a white space number at both ends. A white space is a space, tab, linefeed, carriage return or new page character.

The user does not need to know about all this math and numbers stuff with a modern computer.

You

computer 
0 48
1 49
2 50
3 51
Space 32
period 46
coma 44
Quote 34
a 97
b 98
c 99
A 65
B 66
C 67


Beta Version of Contacts Database

clock September 7, 2009 10:25 by author Administrator

Contacts Database for Outlook 2007® beta version

This program was written for the person who wants to convert their Microsoft Outlook 2007® contacts into a more functional database without any knowledge of how to do it. Install this program and click one button to import your Outlook 2007® Contacts into a Jet database which can be opened with most Microsoft Office® application version 2000 and newer. The program will find your Outlook Contact folder for you. Use the database for merge documents with Microsoft Word® or load into Microsoft Excel® or open with Microsoft Access® version 2000 and up.

This program has been tested with Microsoft Outlook 2007
® running on Vista Ultimate 32 and 64 bit. It is compiled to run in 32 bit mode. It installs to C:\Program Files\Small b Systems folder and creates C:/OutlookDB folder to hold the database files. Every action the user takes with the database creates a serialized backup file in the same folder. The Outlook Contacts folder and entries are not altered in this version. The PRO version will allow user to update Outlook contacts as an option.

Your are welcome to download a trial version.
Download Trial Version

 



Some Visual Basic 2008 Hard Learned Lessons

clock August 30, 2009 11:45 by author Administrator

I just finished writing an application to automate the import of Outlook contacts into a Microsoft Jet Engine 4.0 database, which can be used by Access as well as the .Net languages.

The first, and hardest, problem to solve was fields in Outlook which contain no value are given a value of Nothing. Nothing means that the parameter does not exist and  an error is generated. I finally decided to assign each Outlook field to a string array variable. When I tested the string variable for Nothing, I got variable not declared error. I have never had this problem before. I still don't know why I got it, but this was the solution I found: Dim z As Array = Array.CreateInstance(GetType(String), 61).

Not much code but it took weeks to figure out.

There is another way to do. Test Outlook field directly as follows:

If    objContact.FirstName isNothing Then

      command.Parameters.Add(New OleDbParameter("FirstName", objContact.FirstName)).Value=""
else
      command.Parameters.Add(New OleDbParameter("FirstName", objContact.FirstName))

End If

There is a lot less typing assigning each Outlook field to an array variable and testing as follows:

For i = 0 To 60
  If z(i) Is Nothing Then
    z(i) = ""
  End If
Next

My last tip is Clear the parameters collection before starting a new loop. If you don't the first set of values will be inserted for each loop.

command.Parameters.Clear()
   'If you don't clear parameters, it will repeat first value.
command.Parameters.Add(New OleDbParameter("Assistant", z(0)))



FREE PROGRAM - Message Board for your desktop

clock August 8, 2009 07:29 by author Administrator

Free Message Board Program

This program has 8 boxes in which you can enter, or paste, large amounts of text and images. You can use the tab to align your text and the enter key for newline. Each box can be moved to any position with the mouse. Right clicking the mouse brings up a menu to change the font, font color,background color, right, left, center align selected text, bullet text, insert current date and/or time and save the contents of the active box.

The individual text boxes are saved in their own Rich Text files which can be read by any word processor and will retain all formatting.

Below is a screen capture.

Screen capture of Message Board windows
Click here to download Message Board


Good-bye to Old Friend.....CompuServe

clock July 7, 2009 12:53 by author Administrator

I just read an article in the Register by Austin Modine about the end of CompuServe. Many of the current internet user are probably wondering what the big deal is. My grandchildren never heard of them. They have also never heard of an acoustical modem, dial-up connection or 300 baud but those of us who were there remember the pioneer days.

I had bought a Radio Shack Tandy TRS-80 computer with 64K (that is about 0.064GB), no hard drive and a converted black and white television set for a monitor. No color and no lower case letters and no graphics. We stored data and programs on an audio tape cassette, when it worked. There was no program you could buy. You either wrote the program or got one from a friend.

The first spread sheet I remember was VisiCalc. It could not sort or adjust column width. No real control of print out. I had to write programs to sort and make all adjustments to printout, including page breaks, sub-totals and sorting. Our first word processor was Electric Pencil followed by MultiMate which ported Wang to microcomputer (PC). MultiMate was published by Aston Tate who also published the first popular database program for PC, Dbase.

Lotus killed VisiCalc and Excel killed Lotus.  MultiMate was done in by Word Perfect who couldn’t make the transition to Windows thus turning over the field to Word for Windows by Microsoft.

Dbase held on for quite a while. I switched to RBase and used it for many years. RBase was also done in my Windows as were many software publishers. Windows is a very tough environment to adapt to having started with DOS, CPM or Unix. For one thing, it was the first operating systems that forced programmers to use graphics. We spent a disproportional amount of time trying to get our programs on the screen and attractive. In the beginning, Windows programming tools were primitive. That is not the case today, with Visual Studio 2008; Microsoft has given programmers a great tool.

Sorry to have digressed, but losing a program and service that was there when it all started, opens a flood gate of memories. I am sorry that those who are starting with computers today missed the experiences we pioneers had. I also miss the linear memory addressing of Zilog 80!

Say Good Night Gracie!



About the author

My name is Paul Steinberg and I am the owner of Small b Systems. I have been working with computers for 33 years. I have been designing business and manufacturing systems for 49 years.

A system is a collection of orgainized tasks which guide an operation to a predictable conclusion. Unlike an individuals's routine, a system can be used by anyone.

I have worked on Wall Street, in military electronics, retailing, professional photography, manufacturing, barter and woodworking. I have designed systems in all of these industries.

Sign in