以前做数据库开发一直使用SQL Server和MySQL来开发,有比较好的工具,通常遇到关键字会以变色字体演示,一般到也不会出现什么问题,最近做一个小东东,想尝试一下Access,经常是在直接用SQL语句查询没有问题,一到程序里面就不行了,动不动就报“IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。”这个错误,查了半天才知道是因为使用了Access的关键字,我吐,发誓以后再也不用Access了。
为了避免大家犯同样的错误,现将Access的关键字列出来,如果以后在编程中你遇到了同样的错误,请看看是否使用了Access的关键字。
-
A
ADD
ALL
Alphanumeric
ALTER
AND
ANY
Application
AS
ASC
Assistant
AT
AUTOINCREMENT
Avg
- B
BETWEEN
BINARY
BIT
BOOLEAN
BY
BYTE
- C
CHAR , CHARACTER
COLUMN
CompactDatabase
CONSTRAINT
Container
Count
COUNTER
CREATE
CreateDatabase
CreateField
CreateGroup
CreateIndex
CreateObject
CreateProperty
CreateRelation
CreateTableDef
CreateUser
CreateWorkspace
CURRENCY
CurrentUser
- D
DATABASE
DATE
DATETIME
DELETE
DESC
Description
DISALLOW
DISTINCT
DISTINCTROW
Document
DOUBLE
DROP
- E
Echo
Else
End
Eqv
Error
EXISTS
Exit
- F
FALSE
Field, Fields
FillCache
FLOAT , FLOAT4, FLOAT8
FOREIGN
Form, Forms
FROM
Full
FUNCTION
- G
GENERAL
GetObject
GetOption
GotoPage
GROUP
GROUP BY
GUID
- H
HAVING
- I
Idle
IEEEDOUBLE, IEEESINGLE
If
IGNORE
Imp
IN
INDEX
Index , Indexes
INNER
INSERT
InsertText
INT , INTEGER , INTEGER1, INTEGER2, INTEGER4
INTO
IS
- J
JOIN
- K
KEY
- L
LastModified
LEFT
Level
Like
LOGICAL, LOGICAL1
LONG , LONGBINARY, LONGTEXT
- M
Macro
Match
Max , Min , Mod
MEMO
Module
MONEY
Move
- N
NAME
NewPassword
NO
Not
Note
NULL
NUMBER , NUMERIC
- O
Object
OLEOBJECT
OFF
ON
OpenRecordset
OPTION
OR
ORDER
Orientation
Outer
OWNERACCESS
- P
Parameter
PARAMETERS
Partial
Password
PERCENT
PIVOT
PRIMARY
PROCEDURE
Property
- Q
Queries
Query
Quit
- R
REAL
Recalc
Recordset
REFERENCES
Refresh
RefreshLink
RegisterDatabase
Relation
Repaint
RepairDatabase
Report
Reports
Requery
RIGHT
- S
SCREEN
SECTION
SELECT
SET
SetFocus
SetOption
SHORT
SINGLE
Size
SMALLINT
SOME
SQL
StDev , StDevP
STRING
Sum
- T
TABLE
TableDef, TableDefs
TableID
TEXT
TIME, TIMESTAMP
TOP
TRANSFORM
TRUE
Type
- U
UNION
UNIQUE
UPDATE
USER
- V
VALUE
VALUES
Var , VarP
VARBINARY , VARCHAR
- W
WHERE
WITH
Workspace
- X
Xor
- Y
Year
YES
YESNO
ADD
ALL
Alphanumeric
ALTER
AND
ANY
Application
AS
ASC
Assistant
AT
AUTOINCREMENT
Avg
- B
BETWEEN
BINARY
BIT
BOOLEAN
BY
BYTE
- C
CHAR , CHARACTER
COLUMN
CompactDatabase
CONSTRAINT
Container
Count
COUNTER
CREATE
CreateDatabase
CreateField
CreateGroup
CreateIndex
CreateObject
CreateProperty
CreateRelation
CreateTableDef
CreateUser
CreateWorkspace
CURRENCY
CurrentUser
- D
DATABASE
DATE
DATETIME
DELETE
DESC
Description
DISALLOW
DISTINCT
DISTINCTROW
Document
DOUBLE
DROP
- E
Echo
Else
End
Eqv
Error
EXISTS
Exit
- F
FALSE
Field, Fields
FillCache
FLOAT , FLOAT4, FLOAT8
FOREIGN
Form, Forms
FROM
Full
FUNCTION
- G
GENERAL
GetObject
GetOption
GotoPage
GROUP
GROUP BY
GUID
- H
HAVING
- I
Idle
IEEEDOUBLE, IEEESINGLE
If
IGNORE
Imp
IN
INDEX
Index , Indexes
INNER
INSERT
InsertText
INT , INTEGER , INTEGER1, INTEGER2, INTEGER4
INTO
IS
- J
JOIN
- K
KEY
- L
LastModified
LEFT
Level
Like
LOGICAL, LOGICAL1
LONG , LONGBINARY, LONGTEXT
- M
Macro
Match
Max , Min , Mod
MEMO
Module
MONEY
Move
- N
NAME
NewPassword
NO
Not
Note
NULL
NUMBER , NUMERIC
- O
Object
OLEOBJECT
OFF
ON
OpenRecordset
OPTION
OR
ORDER
Orientation
Outer
OWNERACCESS
- P
Parameter
PARAMETERS
Partial
Password
PERCENT
PIVOT
PRIMARY
PROCEDURE
Property
- Q
Queries
Query
Quit
- R
REAL
Recalc
Recordset
REFERENCES
Refresh
RefreshLink
RegisterDatabase
Relation
Repaint
RepairDatabase
Report
Reports
Requery
RIGHT
- S
SCREEN
SECTION
SELECT
SET
SetFocus
SetOption
SHORT
SINGLE
Size
SMALLINT
SOME
SQL
StDev , StDevP
STRING
Sum
- T
TABLE
TableDef, TableDefs
TableID
TEXT
TIME, TIMESTAMP
TOP
TRANSFORM
TRUE
Type
- U
UNION
UNIQUE
UPDATE
USER
- V
VALUE
VALUES
Var , VarP
VARBINARY , VARCHAR
- W
WHERE
WITH
Workspace
- X
Xor
- Y
Year
YES
YESNO
2008年1月11日更新说明:在此把回帖用户补充的关键字都补上了。
最后说明一下:在Access中和在MS SQL中一样,对关键字的转义是使用“[”和“]”的,比如你的数据库中某个表中有以上述关键字作为字段名的,记得在该字段前后分别加上“[”和“]”,如[user],[password],[yes],不过建议还是尽量避免使用关键字。
另外有情提示:如果遇见报“insert into"语句错误的情况,多半就是因为你使用关键字了。记得转义或者更改字段名。