11/13

Beta Draft

# A Microsoft Access Error Messages

This appendix provides the complete list of error numbers and error messages returned by the Microsoft Jet database engine. It also indicates the class that each error belongs. This chapter includes the following sections:

- Error Message Classes

- Microsoft Jet Database Engine Error Messages

## A.1 Error Message Classes

Table A-1 describes the classes that the Microsoft Jet database engine error messages belong:

Table A-1 Error Message Classes

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 database engine errors related to property management.
MISC | Microsoft Jet database engine errors that don't fit into another category.
PARADOX | Paradox installable ISAM-specific errors.
PARSE | Microsoft Jet database engine expression parsing errors.
QUERY | Microsoft Jet database engine errors related to queries.
REF INTEGRITY | Microsoft Jet database engine errors related to referential integrity.
REMOTE | Microsoft Jet database engine errors specific to ODBC.
REPLICATOR | Microsoft Jet database engine errors related to replication.
SECURITY | Microsoft Jet database engine errors related to security.
TEXT | Text installable ISAM-specific errors.
TLV | Table-level validation errors.
UNUSED | Microsoft Jet database engine 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 database engine code.

## A.2 Microsoft Jet Database Engine Error Messages

Table A-2 lists the Microsoft Jet database engine database engine error messages. An asterisk (*) means that there is no Microsoft Jet error message text for a particular error message. An italicized item between angled brackets, such as <name>, represents a placeholder for a value that is given when the error message is displayed.

Table A-2 Microsoft Jet Database Engine Error Messages

Error Number | 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 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 the 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 the system administrator of 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 the 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 where 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 the 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 updateable 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 the 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 clause. | 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 updateable. | 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 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 the 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 the 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 need 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 is 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 than name. Please specify owner in the format 'owner.table'. | REMOTE
3299 | ODBC Specification Conformance Error <message>. Report this error to the developer of the 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 2K. | JPM
3310 | This property isn't supported for external data sources 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 updateable. | 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