我在第一个CREATE TABLE
语句中难以识别语法问题,可惜我无法识别问题。
我收到以下VBA错误:
运行时错误“ 3290”
目标是根据特定列中的值将不同的数据移动到新表中。之后,原始表将被清除,并且每个不同的值将再次插入。临时表随后将被删除。
' ** Issue here ** '
db.Execute ("CREATE TABLE tTemp AS (SELECT DISTINCT History_Date, Sedol, Selskabsnavn, MarketCap, JQScore, JQ_Rank, Value_Rank, Quality_Rank, Momentum_Rank FROM JQHistory)")
db.Execute ("DELETE * FROM JQHistory")
db.Execute ("SELECT * FROM tTemp INTO JQHistory")
db.Execute ("DROP TABLE tTemp")
此代码正在MS Excel中运行。
答案 0 :(得分:1)
最终解决方案:
db.Execute ("SELECT DISTINCT History_Date, Sedol, Selskabsnavn, MarketCap, JQScore, JQ_Rank, Value_Rank, Quality_Rank, Momentum_Rank INTO tTemp FROM JQHISTORY ORDER BY History_Date")
db.Execute ("DELETE * FROM JQHistory")
db.Execute ("ALTER TABLE JQHistory ALTER COLUMN Id COUNTER (1, 1)")
db.Execute ("INSERT INTO JQHistory SELECT * FROM tTemp")
db.Execute ("DROP TABLE tTemp")
答案 1 :(得分:0)
尽管不太正确,但您已经在第三条语句中有了使它起作用的语法。
第一行应该是
db.Execute ("SELECT DISTINCT <list of fields> INTO tTemp FROM JQHistory")
第三条陈述应为:
db.Execute ("INSERT INTO JQHistory SELECT <list of fields> FROM tTemp")