Difference between revisions of "Microsoft Access Error Codes"

From database24
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
== Data type mismatch in criteria expression ==
 
== Data type mismatch in criteria expression ==
* True reason: You are using a function, where one of the parameters is ''NULL'' or not of the expected type, the function produces ''#Error'' and you are trying to filter against the result of the function. Even if one single function call will result in #Error this error will be raised.
+
You are using a function, where one of the parameters is ''NULL'' or not of the expected type, the function produces ''#Error'' and you are trying to filter against the result of the function. Even if one single function call will result in #Error this error will be raised.
 +
 
 +
== Operation must use an updateable query ==
 +
There is a nice [http://www.fmsinc.com/MicrosoftAccess/query/non-updateable/index.html coverage] of this error. There are two recommendations
 +
for circumventing this error: Use a temporary table as intermediate step, use aggregate functions (domain functions) like ''DSum'' or write your own user defined function for complex calculation.
  
 
== 49 : Bad DLL Calling Convention ==
 
== 49 : Bad DLL Calling Convention ==
* True reason: Your database became corrupt. Decompile the database by using the command line switch ''/decompile'', compact and repair your database.
+
Your database became corrupt. Decompile the database by using the command line switch ''/decompile'', compact and repair your database.
 +
 
 +
== 2001 : You canceled the previous operation ==
 +
You called a domain function like ''DLookup'' and specified a field that does not exist in the table.
 +
 
 +
== 3349 : Numeric field overflow ==
 +
Usually this error should be raised when you try to process a value that is too big for the variable you are trying to assign it to,
 +
ie if you try to put a value greater than 32767 into an integer data type, as integers can only contain values between -32,768 and 32,767.
  
== 2001 :  You cancelled the previous operation ==
+
Less often but much less obvious is the case that you are trying to hold an invalid value in a date field. Access is known to have problems
* True reason: You called a domain function like ''DLookup'' and specified a field that does not exist in the table.
+
with dates lesser than ''1000-01-01'' and of course negative values.

Latest revision as of 16:54, 6 March 2012

Microsoft Access is no exception to the rule that Microsoft provides the developer with not very helpful error messages.

In the following some of the most entertaining error codes and their true meaning are described.

Data type mismatch in criteria expression

You are using a function, where one of the parameters is NULL or not of the expected type, the function produces #Error and you are trying to filter against the result of the function. Even if one single function call will result in #Error this error will be raised.

Operation must use an updateable query

There is a nice coverage of this error. There are two recommendations for circumventing this error: Use a temporary table as intermediate step, use aggregate functions (domain functions) like DSum or write your own user defined function for complex calculation.

49 : Bad DLL Calling Convention

Your database became corrupt. Decompile the database by using the command line switch /decompile, compact and repair your database.

2001 : You canceled the previous operation

You called a domain function like DLookup and specified a field that does not exist in the table.

3349 : Numeric field overflow

Usually this error should be raised when you try to process a value that is too big for the variable you are trying to assign it to, ie if you try to put a value greater than 32767 into an integer data type, as integers can only contain values between -32,768 and 32,767.

Less often but much less obvious is the case that you are trying to hold an invalid value in a date field. Access is known to have problems with dates lesser than 1000-01-01 and of course negative values.