We have a Windows 2008 running terminal services, but as remote apps, not full desktops.

There is a single database file, calc.mdb, that gives "Disk or Network Error". If it is accessed by a user with MS Access 2003 installed, it runs just fine. However for our traveling users that access via the RemoteApp, then they get "Disk or Network Error".

I have searched and just about everyone comes to a couple of conclusions:

1. It's a network error.
2. Recompile and/or compact it.

It is certainly not #1 because I can verify that the network is fine.
I have recompiled and compacted with no success (and besides you can open the database).

From a client computer:

A) Has no issue running another RemoteApp (such as Word, WordPad, or even another Access DB)
B) Has no issue logging in via full remote desktop.
C) Can run the database from Access 2003 locally installed
D) Receives "Disk or Network Error" when opening via Remote-App.

The event log shows nothing of any help that I could find. With all the various logs in Windows Server now, maybe somewhere else to look? It certainly seems related to the RemoteApp setup.

Again, this is NOT A NETWORK ISSUE! This has been going on for months. I have verified it is not a network issue.

And yes, as soon as I complete my current project, the next is to update these aging apps.

EDIT: Additional Test based on comment:

  1. Copied offending DB to local computer.
  2. Renamed to add TEST1 to file name.
  3. Copied back to server.
  4. Updated RemoteApp shortcut to look at new file name.
  5. It works!

So simply copying the file and renaming makes it work. However, I tried the same steps without changing the name (basically copy it to local and copy/overwrite right back to server) and that does not fix the issue.

  • If they open Access as a RemoteApp, and then they load the DB in question, do they get the error? At what point during that do they get this error? Does the specific DB in question reference any other DB's or files? Any stored procedures or triggers setup in that DB? Jul 24, 2014 at 14:46
  • Yes the error occurs if they open the file from Access after connecting to the server. It seems to occur as the database is loading. This database does not have any linked database, nor does it connect to another database. However there is another MS Access 2003 database that connects to this one and pulls information from it (via VBA). That was setup a few months ago and this issue was present before we made that change. Jul 24, 2014 at 14:51
  • Are you sure there's no triggers or foreign indexes on that DB? Are you sure there's no VBA in that DB, specifically something in the AutoExec (that fires on load)? If you export the data and import it into a fresh DB, does that DB open as expected? Jul 24, 2014 at 14:56
  • There is VBA in there. While I was about to test it with no VBA code I just made a copy and that copy works. Going to add to question. Jul 24, 2014 at 15:34
  • @Techie007 See updated question with results of that test. Also there is no code in auto-exec. This one just has a form with two buttons to start the two processes. Those obviously have VBA code. Jul 24, 2014 at 15:46

1 Answer 1


I encountered this error and post after I created a new 2008 R2 server, and restored a backup of a 2005 Database.

I then imported all users, maintainence plans etc, but I got this error as I had forgotten to change the default language from US English to British English.

After the migrate I had to :

  1. refresh statistics with : exec sp_udatatestats
  2. set default laguage with : EXEC sp_configure 'default language', 23
  3. using the below code (I should link it but i forgot where I got it from) I changed all users language

    declare @l table(sqlCmd nvarchar(max)) declare @sqlCmd nvarchar(max) insert @l select 'alter login ' + quotename(loginname) + ' with default_language = British;' from sys.syslogins where dbname = 'XXXXXXXXXXXX'

    select top 1 @sqlCmd = sqlcmd from @l while (@sqlCmd is not null) begin print @sqlCmd exec(@sqlCmd) update @l set sqlCmd = null where @sqlCmd=sqlCmd set @sqlCmd = null
    select top 1 @sqlCmd = sqlcmd from @l where sqlCmd is not null end

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.