XP to VM glitch

Posted on 2014-04-06
Last Modified: 2016-10-27

    Can anyone help with a problem I'm having where I
have coded an  MS Access 2003 program that has run
faithfully for years under Win XP with DirectX8 on two
different vintage laptops but now fails under
VMWare Workstation 7.0.1.
    I used Acronis True Image to copy a complete image
of the laptops C drive to the virtual host.  It boots
XP with no problem, runs Access with no prob.  But it
dies while running my program giving the following error;

     Microsoft Visual Basic
      Run-time error "91":
            Object variable or With block variable not set

If I select Debug, it jumps in the code to the line;

Note in the begining of the code code are the lines;
            Dim di As DirectInput8
            Dim diDev As DirectInputDevice8
            Dim diDevEnum As DirectInputEnumDevice8

Note:  On the laptops (running XP)  the program runs
withOUT any problem.

Question by:Spudstah
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 85

Assisted Solution

by:Scott McDaniel (Microsoft Access MVP - EE MVE )
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 75 total points
ID: 39982053
In most cases you must install referenced libraries like that. I'm not sure if TrueImage would do this properly, but it would sure seem like it would.

Do you have the installation media for DirectInput8 (whatever that is)? If so, try running that on the vmWare install to see if that resolves it.
LVL 49

Accepted Solution

dbrunton earned 350 total points
ID: 39982058
Possibly ...

It looks like you are trying to run DirectX commands.  Check that the laptop supports DirectX.  See

You may also have to install VMWare Tools.  See

Author Comment

ID: 39982062
DirectInput8 is an internal of the Microsoft DirectX8 ("blackbox software")  DirectX8
interfaced the Input/Output communications.  Starting with DirectX10 microsoft
dropped it's legacy support of the input functions.  However, the WinXP OSs on
both laptops were running DirectX8 (which was the standard MS I/O and was
an integral part of the WinXP OS.

True image has always installed a "true image" for me in the past.  Meaning in part
that since DirectX8 is part of WinXP and WinXP is all imaged, like you, I don't see
True Image dropping the ball here.

Secondly, I have a host of WinXP Pro where I installed the host from an original full installation disk,, and it's acting the same.
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.


Author Comment

ID: 39982074

You are correct that I am trying to run DirectX commands  --- in a WinXP host that is a True Image of an WinXP OS running DirectX8.  The Host is being run in VMware Workstation on a laptop that's natively running DirectX10 so I would expect it to be capable of dealing with

VMWare Tools is loaded
LVL 49

Expert Comment

ID: 39982155
At the command line in the VM machine type


and see what that does.

Author Comment

ID: 39982249

  at new laptop native machine command line it shows DirectX11

  at the WinXP Host command line it shows WinXP  & DirectX9

at the legacy laptop command  line it shows WinXP  & DirectX9

In the WinXP Host dxdiag, ran the tests, all tests ran fine.
LVL 49

Expert Comment

ID: 39982267
Yeah, but try dxdiag inside the Guest machine.
LVL 121

Assisted Solution

by:Andrew Hancock (VMware vExpert / EE MVE^2)
Andrew Hancock (VMware vExpert / EE MVE^2) earned 75 total points
ID: 39982346
Has this run for years under VMware Workstation?

Probably it does not run, because the Virtual Machine does not have the 3D hardware to support DirectX v8.

Author Comment

ID: 39982796

"at the WinXP Host command line it shows WinXP  & DirectX9"
was done at the command line of the WinXP Host running within VMWare.


It has run in WinXP as the loaded OS on laptop.    No VMware.
When my program was generated, 3D was still for the future.
The original laptop was totally divorced from 3D.
LVL 49

Expert Comment

ID: 39982861
Note in the begining of the code code are the lines;
            Dim di As DirectInput8
            Dim diDev As DirectInputDevice8
            Dim diDevEnum As DirectInputEnumDevice8

If I select Debug, it jumps in the code to the line;

which I presume is checking for input from some device

See and the examples there with your error code.

It may be necessary in your code to check whether diDev has actually acquired anything.  For example

if diDev Is Nothing Then <<Pop up message>> stolen from

Author Closing Comment

ID: 39991211
It turns out no answer helped find the problem.....although I did.

I'm at a quandry as to how to close this question so I spread the points out based on how many times a person responded.

The program runs as originally written.  The solution is that when loaded in VMWare the gamepad has to be plugged in After the host is running.  DirectX would not see one attached to the native computer..... Even if you used the VM device attach/switch option.
Once I found the trick of attaching the gamepad -After- the host was up and running, everything seems to be running fine.

Thanks for trying.

Featured Post

Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
If you need a simple but flexible process for maintaining an audit trail of who created, edited, or deleted data from a table, or multiple tables, and you can do all of your work from within a form, this simple Audit Log will work for you.
The view will learn how to download and install SIMTOOLS and FORMLIST into Excel, how to use SIMTOOLS to generate a Monte Carlo simulation of 30 sales calls, and how to calculate the conditional probability based on the results of the Monte Carlo …
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
Suggested Courses

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question