Tuesday, November 18, 2008

Access97 SR-2 install on Windows Vista: a workaround


Microsoft Access97 works fine on Vista, once you can get it to install. My original install CD is the SR-1 version, and I was alarmed to discover that the SR-2 patch doesn't work on Vista, because Vista's new security model prvents the patch from updating the program files. How do I install the Access 97 SR-2 patch? Fortunately there is a workaround.
I used my old testing laptop and created a WinXP install, and then installed Access97, the ODE Tools, the print relationships wizard, and the service packs for both ODE and SR-2. Then I backed up the files onto an external drive. The folder I used for Access97 was c:\Program Files\Office97 so that these files don't get mixed up with newer versions of office.
Next, I created an install script using Inno Setup, based on the log file created by the SR-2 patch program. After creating and running the setup program, my copy of Access97 reports that it is indeed version SR-2, as shown in the screen shot above.
If you want to use this patch, then you must have done the following:
Delete the HATTEN.TTF (Haettenschweiler) font, and then install Access97 SR-1. I have not tested the install with a pre-SR1 version. Run Access97 SR-1 as administrator (just right click on the shortcut and select "Run as administrator") to ensure that Access has correctly set up all its registry entries.
Only once you have completed these steps is it okay to download and run my Access97SR2Setup.exe file (25MB). Alternatively, you can download the Access97sr2.zip file which contains a copy of the Inno Setup script file. Don't be confused: you can't use this script to actually install Access97 without an original Access97 or Office97 CD, because the script only updates existing files. If you want to install the Acces97 Runtime tester, then follow the link. The runtime version only allows you to run Access programs, not edit Access databases. Also, my installer does not patch Word, Excel, etc.
Update: after installing the patch I have stopped getting a weird compile error when creating MDE files. I guess it was fixed by one of the SR-2 updates or the ODE service pack fix.

Tuesday, November 11, 2008

Getting Rid of Unwanted Fonts

I'm a font junkie. I collect fonts, but that doesn't mean I'm prepared to put up with my Word font menu looking like a Christmas tree. I noticed that my Vista machine has several hundred MB of fonts that I either don't like or just find annoying. There is a complete list at the end of this post. It includes all the fonts I managed to remove.
In theory it should be simple: if you don't like a font, just go to the fonts list and delete it, right? Wrong. Vista protects some humungous fonts from being deleted, but usually those are the fonts that look the same as half a dozen other fonts. So I tried a small experiment: boot the PC using a WinXP/BartPE disk, and move all those font files to another folder. It's a bit risky because some of the fonts used by the system got removed in the process, and Outlook 2007 and a Truecrypt dialog with checkboxes looked weird. A bit of experimentation later and I had everything working correctly, but fewer fonts on the fonts menu.
You may not have all these fonts on your machine: my laptop came preinstalled with 269MB of fonts, including Office 2007, and then I installed Access 2002 and Access 97 as well, so if the fonts listed are missing from your machine, relax. The numbers after the file names give the font size in bytes, and as you can see some of them are huge. I have kept these fonts on a backup disk, so I can always put them back if a particular document or application needs them. And I'm glad to see the last of those fonts names beginning with an @ sign, which drove me nutty.
Here are all the font files that are no longer in my Vista font folder:
AGENCYB.TTF                 60,656
AGENCYR.TTF 58,920
ahronbd.ttf 50,332
ALGER.TTF 75,272
andlso.ttf 117,960
angsa.ttf 109,808
angsab.ttf 106,220
angsai.ttf 103,444
angsau.ttf 109,784
angsaub.ttf 106,236
angsaui.ttf 103,408
angsauz.ttf 105,592
angsaz.ttf 105,636
ANTQUAB.TTF 151,000
ANTQUABI.TTF 150,416
ANTQUAI.TTF 149,092
arabtype.ttf 621,580
ARBLI___.TTF 65,544
ARIALUNI.TTF 23,275,812
BASKVILL.TTF 54,976
batang.ttc 16,264,732
BAUHS93.TTF 46,176
BELL.TTF 84,840
BELLB.TTF 82,580
BELLI.TTF 82,192
BERNHC.TTF 70,656
BKANT.TTF 155,528
BOD_B.TTF 74,440
BOD_CB.TTF 74,092
BOOKOS.TTF 160,940
BOOKOSB.TTF 154,576
BOOKOSBI.TTF 162,460
BOOKOSI.TTF 161,020
BRADHITC.TTF 105,296
BRITANIC.TTF 40,728
BRLNSB.TTF 96,880
BRLNSDB.TTF 96,852
BRLNSR.TTF 97,284
BROADW.TTF 60,372
browa.ttf 89,656
browab.ttf 75,424
browai.ttf 100,224
browau.ttf 89,616
browaub.ttf 75,416
browaui.ttf 100,216
browauz.ttf 89,376
browaz.ttf 89,380
CALIFB.TTF 80,620
CALIFI.TTF 98,748
CALIFR.TTF 105,300
CAMBRIA.TTC 1,609,340
CASTELAR.TTF 48,252
CENSCBK.TTF 162,380
CENTAUR.TTF 82,760
CENTURY.TTF 165,248
CHILLER.TTF 96,452
COLONNA.TTF 54,952
COOPBL.TTF 80,388
cordia.ttf 108,572
cordiab.ttf 95,892
cordiai.ttf 100,104
cordiau.ttf 108,544
cordiaub.ttf 95,888
cordiaui.ttf 100,100
cordiauz.ttf 94,812
cordiaz.ttf 94,816
CURLZ___.TTF 69,480
daunpenh.ttf 190,700
david.ttf 56,600
davidbd.ttf 55,652
dokchamp.ttf 149,624
ELEPHNT.TTF 51,652
ELEPHNTI.TTF 54,324
ENGR.TTF 49,768
ERASBD.TTF 57,508
ERASDEMI.TTF 59,996
ERASLGHT.TTF 68,656
ERASMD.TTF 60,772
estre.ttf 110,436
euphemia.ttf 172,656
FELIXTI.TTF 45,952
FRABK.TTF 152,700
FRABKIT.TTF 169,620
FRADM.TTF 142,932
FRADMCN.TTF 116,940
FRADMIT.TTF 135,904
FRAHV.TTF 139,400
FRAHVIT.TTF 152,700
framd.ttf 139,332
FRAMDCN.TTF 132,516
framdit.ttf 152,104
frank.ttf 63,840
FTLTLT.TTF 83,580
gautami.ttf 249,332
GIGI.TTF 142,072
GILBI___.TTF 71,496
GILB____.TTF 68,304
GILC____.TTF 60,320
GILI____.TTF 69,436
GILLUBCD.TTF 72,408
GILSANUB.TTF 73,136
GIL_____.TTF 67,416
gisha.ttf 72,932
gishabd.ttf 74,056
GLECB.TTF 72,676
GLSNECB.TTF 84,668
GOTHIC.TTF 137,568
GOTHICB.TTF 129,676
GOTHICBI.TTF 139,084
GOTHICI.TTF 148,520
GOUDOS.TTF 81,376
GOUDOSB.TTF 82,796
GOUDOSI.TTF 80,280
GOUDYSTO.TTF 55,956
gulim.ttc 13,524,720
HARLOWSI.TTF 55,060
HARNGTON.TTF 70,440
himalaya.ttf 610,104
HTOWERT.TTF 92,736
HTOWERTI.TTF 74,712
IMPRISHA.TTF 60,488
INFROMAN.TTF 74,968
iskpota.ttf 541,176
ITCBLKAD.TTF 132,372
ITCEDSCR.TTF 64,056
ITCKRIST.TTF 59,712
JUICE___.TTF 62,884
kaiu.ttf 5,178,844
kalinga.ttf 206,572
kartika.ttf 124,960
KUNSTLER.TTF 63,392
latha.ttf 119,980
LATINWD.TTF 44,824
leelawad.ttf 97,752
leelawdb.ttf 97,420
lvnm.ttf 56,964
lvnmbd.ttf 54,940
l_10646.ttf 325,400
MAGNETOB.TTF 65,284
MAIAN.TTF 61,384
malgun.ttf 4,337,104
malgunbd.ttf 4,513,520
mangal.ttf 206,264
meiryo.ttc 7,815,292
meiryob.ttc 8,054,096
mingliu.ttc 27,496,184
mingliub.ttc 33,791,880
MISTRAL.TTF 191,716
MOD20.TTF 62,612
monbaiti.ttf 356,576
moolbor.ttf 342,840
mriam.ttf 52,128
mriamc.ttf 57,064
msjh.ttf 14,713,760
msjhbd.ttf 14,509,756
msmincho.ttc 10,056,872
MSMINCHO.TTF 9,081,312
msuighur.ttf 203,360
msyh.ttf 15,044,440
msyhbd.ttf 14,685,876
msyi.ttf 342,124
MTCORSVA.TTF 157,360
mvboli.ttf 42,004
NIAGENG.TTF 95,904
NIAGSOL.TTF 74,012
nrkis.ttf 56,944
nyala.ttf 438,016
OCRAEXT.TTF 55,400
OLDENGL.TTF 93,068
ONYX.TTF 81,044
PALSCRI.TTF 51,404
PARCHM.TTF 151,256
PERBI___.TTF 75,620
PERB____.TTF 58,512
PERI____.TTF 76,080
PERTIBD.TTF 48,320
PERTILI.TTF 43,800
PER_____.TTF 60,216
plantc.ttf 118,824
PLAYBILL.TTF 46,164
POORICH.TTF 76,588
PRISTINA.TTF 82,680
raavi.ttf 93,768
RAGE.TTF 132,600
RAVIE.TTF 74,416
ROCCB___.TTF 59,444
ROCC____.TTF 55,824
ROCK.TTF 72,272
ROCKB.TTF 68,780
ROCKBI.TTF 73,700
ROCKEB.TTF 49,168
ROCKI.TTF 76,756
rod.ttf 61,560
SCHLBKB.TTF 168,756
SCHLBKBI.TTF 160,964
SCHLBKI.TTF 163,164
SHOWG.TTF 52,316
shruti.ttf 276,616
simfang.ttf 10,576,012
simhei.ttf 9,751,960
simkai.ttf 11,785,184
simpbdo.ttf 91,968
simpfxo.ttf 90,904
simpo.ttf 90,692
simsun.ttc 13,747,080
simsunb.ttf 15,406,288
SNAP____.TTF 63,196
STENCIL.TTF 55,596
sylfaen.ttf 225,856
TCBI____.TTF 73,856
TCB_____.TTF 74,656
TCCB____.TTF 66,020
TCCEB.TTF 74,708
TCCM____.TTF 66,804
TCMI____.TTF 78,236
TCM_____.TTF 76,252
TEMPSITC.TTF 76,100
tradbdo.ttf 127,456
trado.ttf 126,124
tunga.ttf 186,800
UNVR47W.TTF 77,212
UNVR48W.TTF 72,160
UNVR53W.TTF 77,008
UNVR54W.TTF 71,532
UNVR55W.TTF 76,384
UNVR56W.TTF 71,364
UNVR57W.TTF 77,388
UNVR58W.TTF 72,644
UNVR63W.TTF 77,364
UNVR64W.TTF 71,700
UNVR65W.TTF 76,456
UNVR66W.TTF 71,424
UNVR67W.TTF 77,520
UNVR68W.TTF 72,728
upcdb.ttf 65,156
upcdbi.ttf 68,784
upcdi.ttf 69,956
upcdl.ttf 69,448
upceb.ttf 74,076
upcebi.ttf 76,736
upcei.ttf 75,360
upcel.ttf 72,360
upcfb.ttf 64,056
upcfbi.ttf 67,216
upcfi.ttf 67,424
upcfl.ttf 64,900
upcib.ttf 71,080
upcibi.ttf 73,612
upcii.ttf 73,632
upcil.ttf 71,068
upcjb.ttf 74,428
upcjbi.ttf 77,692
upcji.ttf 76,456
upcjl.ttf 73,568
upckb.ttf 64,648
upckbi.ttf 68,872
upcki.ttf 68,140
upckl.ttf 64,316
upclb.ttf 54,260
upclbi.ttf 57,100
upcli.ttf 56,752
upcll.ttf 54,264
VLADIMIR.TTF 54,308
vrinda.ttf 259,364

Update: My fonts folder contains only 160 items and occupies 56.6MB of disk space, considerably less than the 269MB it was before. Following a tip from the first comment, I added "Arial Unicode" back, which gives me the "@Arial Unicode MS" font, plus several weird versions of Arial, Courier New, and Times New Roman. These fonts only appear in older applications, not in Word 2007, so I guess I'll put up with the 23MB font file and go with miltilingual compatability. I just hope Windows doesn't try to keep that font file loaded in RAM the whole time.
Update 27th January 2009: I kept getting this setup error message when reinstalling Office 2007, or even just when loading Access 2007: Error 1907.Could not register font. It turns out that I should not have deleted CAMBRIA.TTC because Office 2007 Setup doesn't know how to put it back. Weird.
Go to Microsoft's SysInternals website and download Process Monitor:
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

Run the program after you download it.
The program will start listing activity on your computer. Stop this by clicking on the magnifying glass so there is a red X over it.
You can also click on File --> Capture Events (Ctrl+E) to do the same thing.

Then click on the picture of a funnel, or filter.
You can also click on Filter --> Filter (Ctrl+L) to do the same thing.

In the "Process Monitor Filter" screen, click on "Architecture" and change it to "Path".
Click on "is" and change it to "begins with"

In the next field, an empty field, type the following:

C:\WINDOWS\FONTS\

Click the Add button.
If you have done this correctly there will be a new entry below with a green checkmark that reads:
Path begins with C:\WINDOWS\FONTS\ Include

Click OK.

Click on Filter --> Drop Filtered Events.

Now we are ready to find the fonts that are required by Office.
Click on the magnifying glass so the red X goes away.
You can also click on File --> Capture Events (Ctrl+E) to do the same thing.

Now try to launch your Office Application again. When you get to the error, look near the last line in the Process Monitor list. It will list the last font that Office tried to access. You will have to replace or repair this font.

You can repair Windows system fonts using the SFC tool:
sfc /scannow
Then you have to change the rights on c:\windows\logs\cbs\cbs.log to allow you to read the log and find out which fonts were damaged.

HP's Vista Shortsightedness

When we bought our HP Laserjet 1020, Windows Vista was in its advanced Beta stage. Nonetheless, when Vista came out and we bought Penny's HP Laptop with Vista Home Basic preinstalled, the driver was not ready.
When the driver shipped in May last year, it was worse than the WinXP driver, putting black lines down the side of the page, on both WinXP and Vista. Needless to say I was not impressed. A year later the driver has not been updated.
Yesterday I went to buy a replacement toner cartridge, and noticed that the Samsung ML-1640 printer cost less than the toner cartridge. So not only has HP lost out on the sale of a R750 toner cartridge for the 1020, it has also lost out on the sale of a R12000 laptop (I didn't even look at HP/Compaq laptops last month) and once the 1020 finally conks out we will probably replace it with a Samsung or Lexmark colour printer.
All this because HP were too cheap to do a decent driver for the 1020. Not only does the Vista driver put lines down the side of the page whenever a graphic is printed, but the only way to print anything from another PC is to send it to the shared printer, and then reboot the host PC to get it to print. Not any more, since buying the ML-1640. HP knows how to annoy its customers, and it has done so really well.

Sunday, November 09, 2008

Vista Battery Saver

The power management system on my Acer is a bit dodgy, so I was delighted to find something that may just solve the issues I've been having. It certainly adds some useful options to help save battery life when the power is not plugged in, including turning off the Aero eye candy and the Vista Sidebar.
It's called Vista Battery Saver and its a free, open source utility. It has been running on my laptop for a while now, and it has helped me get the power saving to work as I want it to.

Tuesday, November 04, 2008

What is new in the Disk Defragmenter from Windows Vista SP1

One of the criticized changes in Windows Vista compared to Windows XP, was that fact that the Disk Defragmenter allowed you only to defragment all your partitions at once and not separately. One of the changes introduced in Windows Vista Service Pack 1 is allowing the users to select the partitions which they want to defragment. This is a very welcome change and it proves that Microsoft listened to the feedback received from their users.
In this article the guys at Vista for Beginners will show you how to defragment only the partitions you want and how to schedule a defragmentation in Windows Vista Service Pack 1. More ...

Monday, November 03, 2008

Vista Disables Help and SendKeys

I have been having fun with my new laptop and Windows Vista. Actually it doesn't suck too badly, except that the HP LaserJet 1020 support in Vista is badly broken, but I have written about it before. HP lost out on a laptop sale because of this problem, and will probably lose out on our next printer purchase as well.
Today's WOW revelation (remember "The WOW Starts Now" slogan?) is that the trusted VB "Sendkeys" function has been disabled in Vista, breaking a gazillion VB6 programs, as well as some key (ahem) parts of Miami/Mustang. Fortunately I found a library written by Karl E Peterson that required only minor tweaking to get it to work in Access 97.
In the process I discovered that the Access97 help function doesn't work in Vista until you install a help file program. That in turn required me to validate my copy of Windows again, which doesn't work properly in Firefox, so I had to go to the URL using IE7. What a mission!
The dreaded UAC (User Annoyance Control) is a little more manageable if you use the Norton UAC program from Norton Labs.
Update: Any Access97 developer who needs SendKeys and who does not have the time and/or energy to modify Karl Peterson's code, can email me for a modified copy: vmusic at spamcop dot net.