Appendix D Error Reference

This appendix presents the complete list of error numbers and error messages returned by the Microsoft Jet database engine. It also indicates the class to which each error belongs. The following table gives a description of each class.

Class Description
BTRIEVE Btrieve installable ISAM-specific errors (Microsoft Jet 2.5 and earlier)
DAO DAO-specific errors
DBASE dBASE installable ISAM-specific errors
DDL Data Definition Language-specific errors
EXCEL Microsoft Excel installable ISAM-specific errors
EXTENDED Errors that may have extended error information
IMEX Generic import/export errors
INST ISAM Generic installable ISAM errors
INTERNET Internet-specific errors
ISAM Generic Microsoft Jet ISAM errors
JPM Microsoft Jet errors related to property management
MISC Microsoft Jet errors that don’t fit into another category
PARADOX Paradox installable ISAM-specific errors
PARSE Microsoft Jet expression parsing errors
QUERY Microsoft Jet errors related to queries
REF INTEGRITY Microsoft Jet errors related to referential integrity
REMOTE Microsoft Jet errors specific to ODBC
REPLICATOR Microsoft Jet errors related to replication
SECURITY Microsoft Jet errors related to security
TEXT Text installable ISAM-specific errors
TLV Table-level validation errors
UNUSED Microsoft Jet errors that are no longer used or that have special meaning. Errors that have special meaning are usually translations from other errors and are not generated in the Microsoft Jet code.

For additional information about these errors, see the Microsoft Jet Error Message Reference Help file (Jeterr35.hlp), which is included with Microsoft Office 97, Microsoft Access 97, Visual Basic 5.0, Visual C++ 5.0, and Visual J++ 1.1. The Microsoft Jet Error Message Reference Help file contains the Microsoft Jet error number, error message, and Help topic for each error listed in the following table.

An asterisk (*) means that there is no Jet error message text for a particular error message. An italicized item between angle brackets, such as <name>, represents a placeholder for a value that is given when the error message is displayed.

Error number Microsoft Jet error message Class
2420 Syntax error in number. PARSE
2421 Syntax error in date. PARSE
2422 Syntax error in string. PARSE
2423 Invalid use of '.', '!', or '()'. PARSE
2424 Unknown name. PARSE
2425 Unknown function name. PARSE
2426 Function isn’t available in expressions. PARSE
2427 Object has no value. PARSE
2428 Invalid arguments used with domain function. PARSE
2429 In operator without (). PARSE
2430 Between operator without And. PARSE
2431 Syntax error (missing operator). PARSE
2432 Syntax error (comma). PARSE
2433 Syntax error. PARSE
2434 Syntax error (missing operator). PARSE
2435 Extra ). PARSE
2436 Missing ), ], or Item. PARSE
2437 Invalid use of vertical bars. PARSE
2438 Syntax error. PARSE
2439 Wrong number of arguments used with function. PARSE
2440 IIf function without (). PARSE
2442 Invalid use of parentheses. PARSE
2443 Invalid use of Is operator. PARSE
2445 Expression too complex. PARSE
2446 Out of memory during calculation. PARSE
2447 Invalid use of '.', '!', or '()'. PARSE
2448 Can’t set value. PARSE
3000 Reserved error <item>; there is no message for this error. UNUSED
3001 Invalid argument. MISC
3002 Couldn’t start session. ISAM
3003 Couldn’t start transaction; too many transactions already nested. ISAM
3004 * UNUSED
3005 <Database name> isn’t a valid database name. ISAM
3006 Database <name> is exclusively locked. ISAM
3007 Can’t open library database <name>. ISAM
3008 The table <name> is already opened exclusively by another user, or it is already open through the user interface and cannot be manipulated programmatically. ISAM
3009 You tried to lock table <name> while opening it, but the table can’t be locked because it is currently in use. Wait a moment, and then try the operation again. ISAM
3010 Table <name> already exists. MISC
3011 The Microsoft Jet database engine could not find the object <name>. Make sure the object exists and that you spell its name and the path name correctly. MISC
3012 Object <name> already exists. ISAM
3013 Couldn’t rename installable ISAM file. ISAM
3014 Can’t open any more tables. ISAM
3015 <Index name> isn’t an index in this table. Look in the Indexes collection of the TableDef object to determine the valid index names. ISAM
3016 Field won’t fit in record. ISAM
3017 The size of a field is too long. MISC
3018 Couldn’t find field <name>. MISC
3019 Operation invalid without a current index. ISAM
3020 You tried to call Update or CancelUpdate or attempted to update a Field in a recordset without first calling AddNew or Edit. MISC
3021 No current record. MISC
3022 The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate values and try again. ISAM
3023 AddNew or Edit already used. QUERY
3024 Couldn’t find file <name>. MISC
3025 Can’t open any more files. ISAM
3026 Not enough space on disk. ISAM
3027 Can’t update. Database or object is read-only. MISC
3028 Can’t start your application. The workgroup information file is missing or opened exclusively by another user. ISAM
3029 Not a valid account name or password. SECURITY
3030 <Account name> isn’t a valid account name. SECURITY
3031 Not a valid password. SECURITY
3032 Can’t perform this operation. SECURITY
3033 You don’t have the necessary permissions to use the <name> object. Have your system administrator or the person who created this object establish the appropriate permissions for you. MISC
3034 You tried to commit or roll back a transaction without first using BeginTrans. ISAM
3035 *
3036 Database has reached maximum size. ISAM
3037 Can’t open any more tables or queries. MISC
3038 *
3039 Couldn’t create index; too many indexes already defined. ISAM
3040 Disk I/O error during read. ISAM
3041 Can’t open a database created with a previous version of your application. ISAM
3042 Out of MS-DOS file handles. ISAM
3043 Disk or network error. UNUSED
3044 <Path name> isn’t a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides. ISAM
3045 Couldn’t use <file name>; file already in use. ISAM
3046 Couldn’t save; currently locked by another user. ISAM
3047 Record is too large. ISAM
3048 Can’t open any more databases. ISAM
3049 Can’t open database <name>. It may not be a database that your application recognizes, or the file may be corrupt. MISC
3050 Couldn’t lock file. ISAM
3051 The Microsoft Jet database engine cannot open the file <name>. It is already opened exclusively by another user, or you need permission to view its data. MISC
3052 MS-DOS file sharing lock count exceeded. You need to increase the number of locks installed with Share.exe. ISAM
3053 Too many client tasks. MISC
3054 Too many Memo or OLE Object fields. UNUSED
3055 Not a valid file name. MISC
3056 Couldn’t repair this database. MISC
3057 Operation not supported on linked tables. MISC
3058 Index or primary key can’t contain a Null value. ISAM
3059 Operation canceled by user. MISC
3060 Wrong data type for parameter <parameter>. QUERY
3061 Too few parameters. Expected <number>. EXTENDED
3062 Duplicate output alias <name>. EXTENDED
3063 Duplicate output destination <field name>. EXTENDED
3064 Can’t open action query <name>. QUERY
3065 Can’t execute a select query. QUERY
3066 Query must have at least one destination field. EXTENDED
3067 Query input must contain at least one table or query. EXTENDED
3068 Not a valid alias name. QUERY
3069 The action query <name> cannot be used as a row source. EXTENDED
3070 The Microsoft Jet database engine does not recognize <name> as a valid field name or expression. QUERY
3071 This expression is typed incorrectly, or it is too complex to be evaluated. For example, a numeric expression may contain too many complicated elements. Try simplifying the expression by assigning parts of the expression to variables. QUERY
3072 <Visual Basic error string>. EXTENDED
3073 Operation must use an updatable query. QUERY
3074 Can’t repeat table name <name> in FROM clause. EXTENDED
3075 <Message> in query expression <expression>. EXTENDED
3076 <Message> in criteria expression. EXTENDED
3077 <Message> in expression. EXTENDED
3078 The Microsoft Jet database engine cannot find the input table or query <name>. Make sure it exists and that its name is spelled correctly. EXTENDED
3079 The specified field <field name> could refer to more than one table listed in the FROM clause of your SQL statement. EXTENDED
3080 Joined table <name> not listed in FROM clause. EXTENDED
3081 Can’t join more than one table with the same name <name>. EXTENDED
3082 JOIN operation <operation> refers to a field that isn’t in one of the joined tables. EXTENDED
3083 Can’t use internal report query. QUERY
3084 Can’t insert data with action query. QUERY
3085 Undefined function <name> in expression. EXTENDED
3086 Couldn’t delete from specified tables. QUERY
3087 Too many expressions in GROUP BY clause. QUERY
3088 Too many expressions in ORDER BY clause. QUERY
3089 Too many expressions in DISTINCT output. QUERY
3090 Resultant table not allowed to have more than one AutoNumber field. ISAM
3091 HAVING clause <clause> without grouping or aggregation. UNUSED
3092 Can’t use HAVING clause in TRANSFORM statement. EXTENDED
3093 ORDER BY clause <clause> conflicts with DISTINCT. EXTENDED
3094 ORDER BY clause <clause> conflicts with GROUP BY clause. EXTENDED
3095 Can’t have aggregate function in expression <expression>. EXTENDED
3096 Can’t have aggregate function in WHERE clause <clause>. EXTENDED
3097 Can’t have aggregate function in ORDER BY clause <clause>. EXTENDED
3098 Can’t have aggregate function in GROUP BY clause <clause>. EXTENDED
3099 Can’t have aggregate function in JOIN operation <operation>. EXTENDED
3100 Can’t set field <name> in join key to Null. EXTENDED
3101 The Microsoft Jet database engine can’t find a record in the table <table name> with key matching field(s) <field name>. EXTENDED
3102 Circular reference caused by <query reference>. EXTENDED
3103 Circular reference caused by alias <name> in query definition’s SELECT list. EXTENDED
3104 Can’t specify fixed column heading <value> in a crosstab query more than once. EXTENDED
3105 Missing destination field name in SELECT INTO statement <statement>. EXTENDED
3106 Missing destination field name in UPDATE statement <statement>. EXTENDED
3107 Record(s) can’t be added; no insert permission on <name>. EXTENDED
3108 Record(s) can’t be edited; no update permission on <name>. EXTENDED
3109 Record(s) can’t be deleted; no delete permission on <name>. EXTENDED
3110 Couldn’t read definitions; no read definitions permission for table or query <name>. EXTENDED
3111 Couldn’t create; no modify design permission for table or query <name>. EXTENDED
3112 Record(s) can’t be read; no read permission on <name>. EXTENDED
3113 Can’t update <field name>; field not updatable. UNUSED
3114 Can’t include Memo or OLE Object when you select unique values <statement>. EXTENDED
3115 Can’t have Memo or OLE Object fields in aggregate argument <statement>. EXTENDED
3116 Can’t have Memo or OLE Object fields in criteria <statement> for aggregate function. EXTENDED
3117 Can’t sort on Memo or OLE Object <clause>. EXTENDED
3118 Can’t join on Memo or OLE Object <name>. EXTENDED
3119 Can’t group on Memo or OLE Object <clause>. EXTENDED
3120 Can’t group on fields selected with '*' <table name>. EXTENDED
3121 Can’t group on fields selected with '*'. EXTENDED
3122 You tried to execute a query that doesn’t include the specified expression <name> as part of an aggregate function. EXTENDED
3123 Can’t use '*' in crosstab query. EXTENDED
3124 Can’t input from internal report query <name>. QUERY
3125 The database engine can’t find <name>. Make sure it is a valid parameter or alias name, that it doesn’t include invalid characters or punctuation, and that the name isn’t too long. MISC
3126 Invalid bracketing of name <name>. EXTENDED
3127 The INSERT INTO statement contains the following unknown field name: <field name>. Make sure you’ve typed the name correctly, and try the operation again. EXTENDED
3128 Specify the table containing the records you want to delete. QUERY
3129 Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'. QUERY
3130 Syntax error in DELETE statement. QUERY
3131 Syntax error in FROM clause. QUERY
3132 Syntax error in GROUP BY clause. QUERY
3133 Syntax error in HAVING clause. QUERY
3134 Syntax error in INSERT INTO statement. QUERY
3135 Syntax error in JOIN operation. QUERY
3136 The LEVEL clause includes a reserved word or argument that is misspelled or missing, or the punctuation is incorrect. QUERY
3137 Missing semicolon (;) at end of SQL statement. QUERY
3138 Syntax error in ORDER BY clause. QUERY
3139 Syntax error in PARAMETER clause. QUERY
3140 Syntax error in PROCEDURE clause. QUERY
3141 The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect. QUERY
3142 Characters found after end of SQL statement. QUERY
3143 Syntax error in TRANSFORM statement. QUERY
3144 Syntax error in UPDATE statement. QUERY
3145 Syntax error in WHERE clause. QUERY
3146 ODBC — call failed. UNUSED
3147 * UNUSED
3148 * UNUSED
3149 * UNUSED
3150 * UNUSED
3151 ODBC — connection to <name> failed. EXTENDED
3152 * UNUSED
3153 * UNUSED
3154 ODBC — couldn’t find DLL <name>. REMOTE
3155 ODBC — insert on a linked table <name> failed. EXTENDED
3156 ODBC — delete on a linked table <name> failed. EXTENDED
3157 ODBC — update on a linked table <name> failed. EXTENDED
3158 Couldn’t save record; currently locked by another user. INST ISAM
3159 Not a valid bookmark. MISC
3160 Table isn’t open. INST ISAM
3161 Couldn’t decrypt file. INST ISAM
3162 You tried to assign the Null value to a variable that isn’t a Variant data type. MISC
3163 The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data. MISC
3164 The field can’t be updated because another user or process has locked the corresponding record or table. MISC
3165 Couldn’t open .inf file. DBASE
3166 Cannot locate the requested Xbase memo file. DBASE
3167 Record is deleted. MISC
3168 Invalid .inf file. DBASE
3169 The Microsoft Jet database engine could not execute the SQL statement because it contains a field that has an invalid data type. QUERY
3170 Couldn’t find installable ISAM. UNUSED
3171 Couldn’t find network path or user name. PARADOX
3172 Couldn’t open Paradox.net. UNUSED
3173 Couldn’t open table 'MSysAccounts' in the workgroup information file. SECURITY
3174 Couldn’t open table 'MSysGroups' in the workgroup information file. SECURITY
3175 Date is out of range or is in an invalid format. INST ISAM
3176 Couldn’t open file <name>. IMEX
3177 Not a valid table name. IMEX
3178 *
3179 Encountered unexpected end of file. IMEX
3180 Couldn’t write to file <name>. IMEX
3181 Invalid range. IMEX
3182 Invalid file format. IMEX
3183 Not enough space on temporary disk. ISAM
3184 Couldn’t execute query; couldn’t find linked table. EXTENDED
3185 SELECT INTO on a remote database tried to produce too many fields. EXTENDED
3186 Couldn’t save; currently locked by user <name> on machine <name>. EXTENDED
3187 Couldn’t read; currently locked by user <name> on machine <name>. EXTENDED
3188 Couldn’t update; currently locked by another session on this machine. ISAM
3189 Table <name> is exclusively locked by user <name> on machine <name>. UNUSED
3190 Too many fields defined. ISAM
3191 Can’t define field more than once. ISAM
3192 Couldn’t find output table <name>. EXTENDED
3193 (unknown). UNUSED
3194 (unknown). UNUSED
3195 (expression). UNUSED
3196 The database <name> is already in use by another person or process. When the database is available, try the operation again. ISAM
3197 The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time. MISC
3198 Couldn’t start session. Too many sessions already active. ISAM
3199 Couldn’t find reference. REF INTEGRITY
3200 The record cannot be deleted or changed because table <name> includes related records. EXTENDED
3201 You can’t add or change a record because a related record is required in table <name>. EXTENDED
3202 Couldn’t save; currently locked by another user. ISAM
3203 Subqueries cannot be used in the expression <expression>. EXTENDED
3204 Database already exists. ISAM
3205 Too many crosstab column headers <value>. EXTENDED
3206 Can’t create a relationship between a field and itself. REF INTEGRITY
3207 Operation not supported on a Paradox table with no primary key. PARADOX
3208 Invalid Deleted setting in the Xbase key of the Windows Registry. DBASE
3209 * UNUSED
3210 The connection string is too long. QUERY
3211 The database engine couldn’t lock table <name> because it’s already in use by another person or process. EXTENDED
3212 Couldn’t lock table <name>; currently in use by user <name> on machine <name>. UNUSED
3213 Invalid Date setting in the Xbase key of the Windows Registry. DBASE
3214 Invalid Mark setting in the Xbase key of the Windows Registry. DBASE
3215 Too many Btrieve tasks. BTRIEVE
3216 Parameter <name> specified where a table name is required. EXTENDED
3217 Parameter <name> specified where a database name is required. EXTENDED
3218 Couldn’t update; currently locked. ISAM
3219 Invalid operation. MISC
3220 Incorrect collating sequence. PARADOX
3221 Invalid settings in the Btrieve key of the Windows Registry. BTRIEVE
3222 Query can’t contain a Database parameter. QUERY
3223 <Parameter name> is invalid because it is too long or contains invalid characters. EXTENDED
3224 Can’t read Btrieve data dictionary. BTRIEVE
3225 Encountered a record locking deadlock while performing a Btrieve operation. BTRIEVE
3226 Errors encountered while using the Btrieve DLL. BTRIEVE
3227 Invalid Century setting in the Xbase key of the Windows Registry. DBASE
3228 Invalid Collating Sequence setting in the Paradox key of the Windows Registry. PARADOX
3229 Btrieve — can’t change field. BTRIEVE
3230 Out-of-date Paradox lock file. PARADOX
3231 ODBC — field would be too long; data truncated. REMOTE
3232 ODBC — couldn’t create table. REMOTE
3233 * UNUSED
3234 ODBC — remote query timeout expired. REMOTE
3235 ODBC — data type not supported on server. REMOTE
3236 * UNUSED
3237 * UNUSED
3238 ODBC — data out of range. REMOTE
3239 Too many active users. ISAM
3240 Btrieve — missing Btrieve engine. BTRIEVE
3241 Btrieve — out of resources. BTRIEVE
3242 Invalid reference in SELECT statement. EXTENDED
3243 None of the import field names match fields in the appended table. IMEX
3244 Can’t import password-protected spreadsheet. IMEX
3245 Couldn’t parse field names from the first row of the import table. IMEX
3246 Operation not supported in transactions. MISC
3247 ODBC — linked table definition has changed. REMOTE
3248 Invalid NetworkAccess setting in the Windows Registry. INST ISAM
3249 Invalid PageTimeout setting in the Windows Registry. INST ISAM
3250 Couldn’t build key. ISAM
3251 Operation is not supported for this type of object. MISC
3252 Can’t open a form whose underlying query contains a user-defined function that attempts to set or get the form’s RecordsetClone property. MISC
3253 * UNUSED
3254 ODBC — Can’t lock all records. REMOTE
3255 * UNUSED
3256 Index file not found. DBASE
3257 Syntax error in WITH OWNERACCESS OPTION declaration. QUERY
3258 The SQL statement couldn’t be executed because it contains ambiguous outer joins. To force one of the joins to be performed first, create a separate query that performs the first join and then include that query in your SQL statement. QUERY
3259 Invalid field data type. MISC
3260 Couldn’t update; currently locked by user <name> on machine <name>. EXTENDED
3261 Table <name> is exclusively locked by user <name> on machine <name>. EXTENDED
3262 Couldn’t lock table <name>; currently in use by user <name> on machine <name>. EXTENDED
3263 Invalid database object. MISC
3264 No field defined — cannot append TableDef or Index. DAO
3265 Item not found in this collection. DAO
3266 Can’t append a Field that is already a part of a Fields collection. DAO
3267 Property can be set only when the Field is part of a Recordset object’s Fields collection. DAO
3268 Can’t set this property once the object is part of a collection. DAO
3269 Can’t append an Index that is already part of an Indexes collection. DAO
3270 Property not found. DAO
3271 Invalid property value. DAO
3272 Object isn’t a collection. DAO
3273 Method not applicable for this object. DAO
3274 External table isn’t in the expected format. INST ISAM
3275 Unexpected error from external database driver <error number>. INST ISAM
3276 Invalid database object reference. MISC
3277 Can’t have more than 10 fields in an index. ISAM
3278 The Microsoft Jet database engine has not been initialized. MISC
3279 The Microsoft Jet database engine has already been initialized. MISC
3280 Can’t delete a field that is part of an index or is needed by the system. ISAM
3281 Can’t delete this index or table. It is either the current index or is used in a relationship. ISAM
3282 Operation not supported on a table that contains data. ISAM
3283 Primary key already exists. ISAM
3284 Index already exists. ISAM
3285 Invalid index definition. ISAM
3286 Format of memo file doesn’t match specified external database format. INST ISAM
3287 Can’t create index on the given field. ISAM
3288 Paradox index is not primary. PARADOX
3289 Syntax error in CONSTRAINT clause. DDL
3290 Syntax error in CREATE TABLE statement. DDL
3291 Syntax error in CREATE INDEX statement. DDL
3292 Syntax error in field definition. DDL
3293 Syntax error in ALTER TABLE statement. DDL
3294 Syntax error in DROP INDEX statement. DDL
3295 Syntax error in DROP TABLE or DROP INDEX. DDL
3296 Join expression not supported. MISC
3297 Couldn’t import table or query. No records found, or all records contain errors. IMEX
3298 There are several tables with that name. Please specify owner in the format 'owner.table'. REMOTE
3299 ODBC Specification Conformance Error <message>. Report this error to the developer of your application. UNUSED
3300 Can’t create a relationship. REF INTEGRITY
3301 Can’t perform this operation; features in this version are not available in databases with older formats. MISC
3302 Can’t change a rule while the rules for this table are in use. TLV
3303 Can’t delete this field. It’s part of one or more relationships. REF INTEGRITY
3304 You must enter a personal identifier (PID) consisting of at least four and no more than 20 characters and digits. SECURITY
3305 Invalid connection string in pass-through query. REMOTE
3306 You’ve written a subquery that can return more than one field without using the EXISTS reserved word in the main query’s FROM clause. Revise the SELECT statement of the subquery to request only one field. QUERY
3307 The number of columns in the two selected tables or queries of a union query don’t match. QUERY
3308 Invalid TOP argument in select query. EXTENDED
3309 Property setting can’t be larger than 2 K. JPM
3310 This property isn’t supported for external data sources or for databases created with a previous version of Microsoft Jet. JPM
3311 Property specified already exists. JPM
3312 Validation rules and default values can’t be placed on system or linked tables. TLV
3313 Can’t place this validation expression on this field. TLV
3314 The field <name> can’t contain a Null value because the Required property for this field is set to True. Enter a value in this field. EXTENDED
3315 Field <name> can’t be a zero-length string. EXTENDED
3316 <Table-level validation text>. EXTENDED
3317 One or more values are prohibited by the validation rule <rule> set for <field name>. Enter a value that the expression for this field can accept. UNUSED
3318 Values specified in a TOP clause are not allowed in delete queries or reports. EXTENDED
3319 Syntax error in union query. QUERY
3320 <Error> in table-level validation expression. EXTENDED
3321 No database specified in connection string or IN clause. REMOTE
3322 Crosstab query contains one or more invalid fixed column headings. EXTENDED
3323 The query cannot be used as a row source. QUERY
3324 The query is a DDL query and cannot be used as a row source. QUERY
3325 Pass-through query with ReturnsRecords property set to True did not return any records. REMOTE
3326 This Recordset is not updatable. EXTENDED
3327 Field <name> is based on an expression and can’t be edited. EXTENDED
3328 Table <name> is read-only. EXTENDED
3329 Record in table <name> was deleted by another user. EXTENDED
3330 Record in table <name> is locked by another user. EXTENDED
3331 To make changes to this field, first save the record. EXTENDED
3332 Can’t enter value into blank field on “one” side of outer join. EXTENDED
3333 Records in table <name> would have no record on the 'one' side. EXTENDED
3334 Can be present only in version 1.0 format. ISAM
3335 DeleteOnly called with non-zero cbData. JPM