这个sql语句出了什么问题?

在访问我这样做:

insert into accounts_changes 
 (select * 
  from accounts 
  where [Agency Code] 
  in (select * from tableimport))

它说它不喜欢这个INSERT语句

更新:

sSql = "insert into accounts_changes (select * from Accounts where [Agency Code] in (select [Agency Code] from tableimport))"

我做了什么标记说它仍然给我相同的错误信息

syntax error in INSERT INTO statement

当我这样做:

ssql = "select [Agency Code] from tableimport"
CurrentDb.Execute ssql

它说不能执行SELECT QUERY

最佳答案
这部分可能误导了你:

ssql = "select [AgencyCode] from tableimport"
CurrentDb.Execute ssql

执行需要“操作”查询(INSERT,DELETE,UPDATE或SELECT INTO).当您给Execute一个普通(行返回)SELECT查询时,您将始终收到错误#3065,“无法执行选择查询”.这并不意味着您的SELECT语句有任何问题.通过将SELECT语句粘贴到新查询的SQL视图中来测试它.

您展示了[AgencyCode]的两个变体…一个与代理和代码之间没有空格.这是什么?

我认为你原来的INSERT语句有一对额外的括号,不需要.试试这种方式:

insert into accounts_changes
select * 
from Accounts
where [Agency Code] in (
    select [Agency Code] from tableimport)

如果仍然失败,请验证您具有相同数量的字段,并在Accounts和accounts_changes中使用相同的字段名称和数据类型.如果两个表中的字段不完全匹配,请在@pcent显示时明确列出字段.

转载注明原文:这个sql语句出了什么问题? - 代码日志