代码之家  ›  专栏  ›  技术社区  ›  Anthony

vbscript插入MS Access

  •  1
  • Anthony  · 技术社区  · 15 年前

    我正在开发一个使用vbscript在每次使用MS Access数据库时都写入MS Access数据库的小型AP(实际上只供个人使用,所以我不需要担心SQL注入)。当我运行它时,我一直得到一个“insert into语句中的语法错误”。连接字符串正确,因为数据库在运行时锁定。表名是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 回复  |  直到 15 年前
        1
  •  3
  •   crashmstr    15 年前

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

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

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

    这是:

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

    或者:

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

        2
  •  3
  •   Scott Vercuski    15 年前

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

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

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

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

    我的MS访问知识有点生疏,但请试一试。

        3
  •  1
  •   João Guilherme    15 年前

    插入ORS(字段1,字段2)值(“B223234”,12/22/08)

    插入ORS值(空,空,'B223234',12/22/08)

    可能工作。

        4
  •  1
  •   Tony Toews    15 年前

    还请注意,日期字段必须是mm/dd/yy格式或其他明确的格式,如mm/dd/yy yy、yy yy/mm/dd或yy yy-mm-dd。如果有人以dd/mm/yy或yy/mm/dd运行其系统,这将导致插入错误的日期。

    http://mvps.org/access/datetime/date0005.htm 在Access中工作的解决方案。

    我知道你说这是仅供个人使用,但你应该知道这些细节,为将来。

        5
  •  0
  •   Jon    15 年前

    您需要指定要插入的域:

    示例:插入表1(test1、test2、test3)中的值(“1”、“2”、“3”)。