How to compare two spreadsheets in Excel 2010 and earlier

I recently needed to compare the results of two spreadsheets to check for differences between them. Although newer versions of Microsoft Excel have this functionality baked in, I was using a computer with Excel 2010 installed.

Thankfully, Svetlana Cheusheva at AbleBits wrote a blog post earlier this year that explored the different options for this sort of task. The approach I took involves having both spreadsheets in a single workbook, then inserting this in a third spreadsheet:

=IF(Sheet1!A1<> Sheet2!A1, "Sheet1:"&Sheet1!A1&" vs Sheet2:"&Sheet2!A1, "")

You then copy that formula from cell A1 to all the other cells where, in the first two spreadsheets, there might be data.

Avoiding errors when running SQL update queries

When working on an update query, I prefer to run it first on a test database to make sure it does what I think it’s going to do—and to make sure I haven’t made a simple mistake. When that’s not possible, however, there is another approach that works pretty well, too: select, then update.

First, I run a query like this with the update portions commented out:

FROM customers
--UPDATE customers
--SET title = 'Mr.'
WHERE id > 123 and id < 150

After I’ve checked the results to ensure I’ll be affecting only the records I intend to change, I comment out the select, from, and order by bits, and uncomment the update and set lines:

--FROM customers
UPDATE customers
SET title = 'Mr.'
WHERE id > 123 and id < 150

By taking this approach, I’m less likely to accidentally update records I didn’t intend to touch.

Microsoft KB3177725 prevents some programs from printing multiple consecutive documents

I’ve been in the IT world long enough to know that not every Microsoft update brings only good things to the table. That was certainly the case when I recently encountered a real dud affecting one of my employer’s customers.

The summary for KB3177725 states, “This security update resolves vulnerabilities in Microsoft Windows.” Great! We like patching security holes. This update has a darker side, however, and although the patch description now mentions it as a known issue, that was not the case when the customer’s problem initially popped up.

The problem

I first became aware of the problem last month when the customer reported that he was unable to use a program created by my employer to encode more than one magnetic stripe card at a time on his Magicard card printer. If he tried sending a second job to the printer, the program indicated the job had been queued successfully, and it would even show up in his print spooler, but the card would not actually print even if the spooler was restarted. The only way to print another card was to close the encoder software, reopen it, and send the print job again.


Although the problem initially looked like it might be related to my employer’s software, nothing had changed on our end, but we still checked to make sure the customer had the latest version of the software and the latest driver for his card printer. Eventually, I headed to Control Panel to check out the list of recently installed Windows updates, one of which was the aforementioned KB317725. It was automatically installed around the same time the customer started having problems—an interesting coincidence—and a quick search revealed that it was causing printing problems for other people.

According to posts in that forum thread, the problem occurs in a given program only if it is coded a certain way, but such programs work just fine up to the point that the Microsoft patch is installed. You can read up on the details if you like, but it’s beyond the scope of what we’re discussing here.

The problem our customer was having was not exactly the same as what other people had experienced because he could print only one document before needing to restart the encoder software, whereas other people could print two in a row before running into trouble. Even now the known issues section of the patch description says, “After you apply this security update and you print multiple documents in succession, the first two documents may print successfully. However, the third and subsequent documents may not print.” Nevertheless, the patch being installed around the same time he started having trouble suggested to me that it was probably related.

The solution

By the time I ran across this issue, Microsoft had already been made aware of the problem. An update, KB3187022, was available, not through the usual Windows Update interface but through the Microsoft Update Catalog.

We downloaded this patch and installed it on the customer’s computer, and after a reboot, he was again able to print multiple cards in succession without needing to restart his encoder software between print jobs.


Since first encountering this problem, we’ve had a second customer using the same encoder software report the same problem, except in his case he was able to print two cards in a row before having to reboot the software. That situation exactly matched the problem described in the update’s known issues section.

We were lucky that the first customer was using a Windows 7 machine since, at the time the issue first cropped up, Microsoft had not released a patch for the Windows 10 version of the update, KB3176493. That has since changed, and a fix is now available for Microsoft’s latest OS, too.

Naturally, you can’t blame Microsoft for every problem that comes up, nor is every problem their fault. Nevertheless, when a problem pops up seemingly out of nowhere at the same time Windows updates are installed, I can’t help but take a second look.

Internet Explorer reset fixes Microsoft Edge, Skype connection problems

Last week, my Windows 10 work laptop started having issues. First I noticed that Microsoft Edge was unable to load any websites. Then it was Internet Explorer. Then Skype reported its homepage was unavailable. As you might imagine, this caused my antennae to go up in a hurry.

A reboot did not help, and neither did a suggestion I found from a Microsoft representative to run System File Checker (sfc.exe). I did that over the weekend, but it found no problems at all. That was nice, particularly considering that I’ve been using this machine for less than a month.

The solution to the problem in my case, at least, was simpler than I expected. I searched for the Internet Options item from the Control Panel, navigated to the Advanced tab, and clicked Reset. I checked the Delete personal settings checkbox—that may not have been necessary, but I figured I might as well burn it all—and clicked Reset, confirmed that I wanted a clean slate, and then rebooted again, and voila! Microsoft Edge, Internet Explorer, and Skype all went back to working as expected.

I find it interesting that something out of kilter in Internet Explorer could affect Edge and Skype, too. IE may officially be on the way out the door, but its tendrils are apparently still wrapped around some fairly important bits of the Windows operating system.

How to adjust the size of your Hyper-V virtual machine’s window

I recently started a new job, and due to the need to make VPN connections, I’ve been getting familiar with Hyper-V Manager. I’m using a laptop, so one of the first things I wondered was how I could fix the size of my virtual machine’s window so that I don’t have to do a lot of scrolling. Unlike with Remote Desktop Connection, where you can specify the size of the window before connecting, Hyper-V Manager did not appear to have such a configuration option.

It turns out the answer to my question is very simple: for a Windows 7 virtual machine, at least, all you have to do is change the screen resolution on the VM itself. To do that, right-click on the VM’s desktop and choose Screen Resolution (for Windows 7) or Display settings > Advanced display settings (for Windows 10) and choose a resolution small enough to fit on your physical computer’s display.

After you adjust your VM’s resolution, the window in which the VM is running resizes itself automatically, and you’re good to go.

SQL query for finding column in database

Last week, one of my coworkers was trying to figure out which tables in a database contained a particular column name. That’s something I’ve had to do in the past, and although I didn’t remember the exact details, a quick search turned up this gem from a Stack Overflow thread:

SELECT column_name, table_name FROM information_schema.columns WHERE column_name like '%{column name}%'

This query returns a list of all tables and views in the database that have column names containing the name for which you are searching.

If you know the exact name of the column, you can change the where clause to WHERE column_name = '{column name}'.

2016 cars for NASCAR Racing 1999 Edition

A couple of months ago, I explained how to get NASCAR Racing 1999 Edition running on Windows 10 using DOSBox. That’s all well and good, but the cars included with the game are—much like the game itself—relics of the past.

Since NASCAR Racing 1999 Edition has an in-game paint scheme editor, however, there’s nothing to stop us from creating our own updated cars. That’s exactly what I’ve done, and you can now download my set of all 39 full-time 2016 Sprint Cup Series cars. The paint schemes are not perfect by any means, but they’re good enough for my purposes, and I hope you’ll enjoy using them.

To bring your game up to speed, simply unzip the .car files to your game’s cars directory; assuming you followed the instructions in my previous post, you can find that directory at %userprofile%\Documents\DOSGames\NR1999\cars. The files should be compatible with both NASCAR Racing 1999 Edition and NASCAR Racing 2. Start the game and make your way to the “Driver Info” section to create a fresh entry list.

I’ve adjusted each car’s skill numbers to approximately reflect real life. For example, Kevin Harvick and Brad Keselowski should run near the front of the pack each race, while Michael Annett and Jeffrey Earnhardt will be closer to the tail end of the field.

Possible resolution for email bouncing with 554 5.7.1 null error

Last month, a staff member at work reported getting an email delivery status notification error when attempting to send to an AOL email address:

<>: host[] said: 554 5.7.1 null (in reply to end of DATA command)

The SMTP reply code indicated the receiving server rejected the sender’s email, but the “null” message didn’t provide any additional insight, and a search for 554 5.7.1 null turned up no solid leads. The staffer had corresponded previously with the intended recipient, so why, then, was her email rejected?

It turned out that the user attached an email thread—i.e., an Outlook item file—to her outbound message. (In Microsoft Outlook 2016, you can do this from the Message ribbon by choosing Attach Item > Outlook Item.) I asked her to save the email thread as a PDF file and send that instead, and when she did so, her message was delivered without any problems.

Interestingly enough, a user on the Gmail Help Forum later that same day—after our staff member successfully sent the email—reported getting similar errors when attempting to send email to AOL addresses. This may be noteworthy because we do use Gmail accounts via Google Apps. I suppose it’s possible that there was actually a problem with AOL’s server that was resolved between the time our staffer sent the email with the Outlook item file attached and the time she re-sent her email with a PDF attachment; even if that was the case, however, adding email attachments in unusual file formats is a good way to get your outgoing mail rejected, and it’s a good thing to check if you have to troubleshoot a bounced email.

How to run NASCAR Racing 1999 Edition on Windows 10 using DOSBox

As a teenager, I spent innumerable hours playing Papyrus’s NASCAR Racing 1999 Edition and its predecessor, NASCAR Racing 2. I never had a steering wheel and pedals, but I managed to keyboard my way around Richmond, Atlanta, and the other tracks included with the games.

Running NASCAR Racing 1999 Edition on Windows 98 was easy: insert CD, install, and drive off into the night. As the years have passed, however, the game has proven to be rather less compatible with modern operating systems. Sure, I could still install it on Windows 7, but running the game with its limited color palette and maximum resolution of 640×480 pixels made my monitors do some interesting things, to say the least.

I recently saw a post in which someone mentioned successfully running NASCAR Racing 2 on Windows 10 using a program called DOSBox, an x86 emulator designed primarily with old games in mind. The individual didn’t say exactly how they did it, but NASCAR Racing 1999 Edition is essentially NASCAR Racing 2 with trucks and additional tracks. Since I still have the original game CD, I decided to look into DOSBox’s documentation and figure out how to make it happen.

Although this guide deals specifically with NASCAR Racing 1999 Edition, the same basic process should work for running NASCAR Racing 2; however, some directory and file names may differ.


  1. Download and install DOSBox. I used version 0.74.
  2. In Windows Explorer, browse to %userprofile%\Documents and create a folder called DOSGames. Within that new folder, create a subfolder called NR1999.
  3. Insert the NASCAR Racing 1999 Edition CD in your computer’s optical drive, then copy the contents of the nr1999 folder on the CD to %userprofile%\Documents\DOS Games\NR1999.
  4. Copy the following subfolders from the nros\nros\tracks folder on the CD to %userprofile%\Documents\DOSGames\NR1999\tracks. These tracks are not used by any of the game’s default seasons, but you can manually add them to a season data file.
    • POCONO
    • WILKES
  5. Start DOSBox. At the prompt, enter exit.
  6. Browse to %localappdata%\DOSBox and create a copy of dosbox-0.74.conf. Next, edit dosbox-0.74.conf to add this line at the end of the file: MOUNT C "C:\Users\username\Documents\DOSGames" This causes DOSBox to automatically mount the DOSGames folder as its C: drive.
  7. Start DOSBox again. At the prompt, enter c:.
  8. Enter cd nr1999 to switch to the directory where the game files are stored.
  9. To enable sound, enter soundset at the prompt. Click “Autodetect Sound Card,” then click “Exit” once your computer’s sound card has been detected.
  10. Enter nr1999 to start the game.
  11. After the game starts, click “Options” and go to the “Graphics” screen. Turn on all textures, and, if desired, increase the number of “Opponents Drawn Ahead”; I set mine to 25.
  12. Go to the “Controls” screen and disable all driving aids. If you have a wheel and pedals, joystick, or gamepad, you can configure and calibrate them at this time. (Read on for a note on gamepad configuration.)

Running the game

  1. Start DOSBox. At the prompt, enter c:.
  2. Enter cd nr1999 to switch to the directory where the game files are stored.
  3. Enter nr1999 to start the game.
  4. Press CTRL + F10 at any time to free your mouse from the DOSBox window. Type exit at the prompt to close DOSBox.

Gamepad configuration

I own a Logitech Dual Action Gamepad. I’m not necessarily recommending that particular controller over your controller of choice, but when I was looking for a gamepad for a different game a few years back, it was inexpensive, and it’s what I have.

The gamepad is a good bit newer than NASCAR Racing 1999 Edition. Perhaps that’s why, on the “Controls” screen within the game, the shoulder buttons on the front of the gamepad don’t register when pressed. Both sticks work, and the buttons on the top of the gamepad near the right stick work, but not the shoulder buttons. I had the same problem with the game installed directly on Windows 7, so I think this is an incompatibility between the game and the controller instead of a problem with DOSBox.

Since I wanted to use one of the sticks for accelerating and braking and the other for steering, that left only the buttons on top of the gamepad available for shifting gears, but they’re not conveniently located for that purpose. Thankfully, DOSBox has a keymapping feature that does recognize when the shoulder buttons are pressed, and can pass that information along to the game itself.

To launch the keymapper, I pressed CTRL + F1. I clicked “z,” then at the bottom of the screen clicked “Add,” and pressed the top left shoulder button. I repeated that process to assign the top right shoulder button to “x.”

After exiting the keymapper, I started the game again. The left and right fire buttons then registered when pressed on the “Controls” screen. Success!


NASCAR Racing 1999 Edition has long been supplanted by newer, shinier racing games, but the nostalgia is strong for me. The graphics are extremely dated, to be sure, but even running in a tiny window, the game is still just as much fun as it was back in 1999.

If you want to replicate my setup, here’s what you need: