vbscript插入ms访问

时间:2009-05-27 18:40:24

标签: sql ms-access vbscript

我正在研究一个小的ap,每次使用它时都会使用vbscript写入ms访问数据库(真的只供个人使用,所以我不需要担心sql注入)。当我运行它时,我一直在INSERT INTO语句中出现“语法错误”。连接字符串是正确的,因为db在运行时会锁定。表名是ors。我做错了什么?

sql1="INSERT INTO ors  VALUES (,,'B223234','12/22/08')"
constring="Provider=Microsoft.Jet.OLEDB.4.0;
  Data Source=C:\Documents and Settings\me\My Documents\tracker.mdb;
    User Id=admin;Password=;" 
set con=createobject("adodb.connection")
con.open constring
con.execute sql1
con.close

5 个答案:

答案 0 :(得分:3)

如果我没记错的话,我认为MS Access中的日期需要#围绕它们而不是单引号。尝试将插入更改为

INSERT INTO ors VALUES (,,'B223234',#12/22/08#)

此外,您可能必须为缺少的参数指定空白

INSERT INTO ors VALUES (NULL,NULL,'B223234',#12/22/08#)

我的MS Access知识有点生疏但是给了它一个镜头。

答案 1 :(得分:3)

“空白”值需要NULL。您还需要使用#周围的日期而不是日期字段的单引号。

如果您不想指定所有值,则只能指定要设置的字段。

(假设日期字段,而不是日期值的文本)

此:

INSERT INTO ors VALUES (NULL,NULL,'B223234',#12/22/08#)

或者这个:

INSERT INTO ors (Field3, Field4) VALUES ('B223234',#12/22/08#)

答案 2 :(得分:1)

INSERT INTO(field1,fiedl2)VALUES('B223234',#12/22/08#)

INSERT INTO VALIES(NULL,NULL,'B223234',#12/22/08#)

可能会工作..

答案 3 :(得分:1)

另请注意,日期字段必须采用mm / dd / yy格式或其他明确格式,例如mm / dd / yyyy,yyyy / mm / dd或yyyy-mm-dd。如果有人以dd / mm / yy或yy / mm / dd运行系统,则会导致插入错误的日期。

有关在Access中运行的解决方案,请参阅http://mvps.org/access/datetime/date0005.htm

我知道您声明这仅供个人使用,但您应该了解未来的这些细节。

答案 4 :(得分:0)

您需要指定要插入的字段:

示例:插入表1(test1,test2,test3)值('1','2','3')