我在微软访问中有drop
和create
新表的VBScript。
我的vb脚本是:
Set dbeng = CreateObject("DAO.DBEngine.120")
strMdbFile = "amw\db_amw.accdb"
Set db = dbeng.OpenDatabase(strMdbFile)
strSql1 = "DROP TABLE amw"
StrSql2 = "SELECT * INTO amw FROM MPN_V WHERE (((Format([tgl_bayar],'yyyy')) Between Format(Now(),'yyyy')-2 And Format(Now(),'yyyy')))"
strSql3 = "DROP TABLE UPDATE"
strSql4 = "SELECT * INTO update FROM UPDATE6 WHERE id="1""
db.Execute(strSql1)
db.Execute(strSql2)
db.Execute(strSql3)
db.Execute(strSql4)
当脚本运行第db.Execute(strSql1)
行和db.Execute(strSql2)
时,没有错误发生。但是,当脚本运行第db.Execute(strSql3)
行和db.Execute(strSql4)
时,错误发生:Expected end of statement, code 800A0401, source Microsoft VBScript compilation error
。请更正我的脚本?非常感谢你
答案 0 :(得分:1)
问题在于最后一条SQL语句的引号数。
strSql4 = "SELECT * INTO [update] FROM UPDATE6 WHERE id="1""
如果“id”是整数,请使用以下命令:
strSql4 = "SELECT * INTO [update] FROM UPDATE6 WHERE id=1"
如果“id”是一个字符串,请使用以下命令:
strSql4 = "SELECT * INTO [update] FROM UPDATE6 WHERE id=""1"""
在字符串中使用字符串时,必须将引号加倍。