我试图通过VBA接近MS Access。我想做的其中一个电话是插入最后提供的号码。这将需要选择输入的最后一个数字并从中迭代一个。我可以简单地将它放在for循环中以创建其中的30个,但是,我只是想在这一点上使SQL语法正确。似乎选择插入件存在问题。我收到的错误是“查询输入必须包含至少一个表或查询”。
Dim StrSSQL As String
StrSQL = "INSERT INTO MyQueryTable (MYNUMBER) VALUES((Select top 1 MYNUMBER + 1 from MyQueryTable order by MYNUMBER desc));"
DoCmd.SetWarnings False
DoCmd.RunSQL StrSQL
DoCmd.SetWarnings True
然而,做"INSERT INTO MyQueryTable (MYNUMBER) VALUES(999)"
的简单插入工作正常。
答案 0 :(得分:3)
尝试:
INSERT INTO MyQueryTable (MyNumber)
SELECT MAX(MyNumber)+1
FROM MyQueryTable
https://msdn.microsoft.com/en-us/library/bb243852(v=office.12).aspx
编辑:刚刚注意到@Alex K.在评论中写了类似的内容 - 抱歉,没有看到它。