【问题标题】:Wrong number of Parameters for SQL Update TableSQL 更新表的参数数量错误
【发布时间】:2017-08-29 14:54:35
【问题描述】:

我正在尝试将不同表中的 ID 添加到表 RUSER_KSP_S_TI_ARP

strSQL = "UPDATE RUSER_KSP_S_TI_ARP 
          SET RUSER_KSP_S_TI_ARP.ID_FZG = TI_IDENTIFIKATION.ID_FZG,
              RUSER_KSP_S_TI_ARP.ID_PULK = TI_IDENTIFIKATION.ID_PULK 
              WHERE RUSER_KSP_S_TI_ARP.ARP = TI_IDENTIFIKATION.ARP 
              AND RUSER_KSP_S_TI_ARP.BTNR = TI_IDENTIFIKATION.BTNR;"
CurrentDb.Execute strSQL, dbFailOnError

返回错误 3061,表示它需要 4 个参数并且得到的参数很少。

感谢您的帮助!

【问题讨论】:

  • “TI_IDENTIFIKATION”的值从何而来?
  • 你没有 FROM...
  • 看过这个?同样的错误:stackoverflow.com/questions/5445062/…
  • @Stix,来自 TI_IDENTIFIKATION 的值来自与 Oracle 服务器中的 ODBC 链接的表。

标签: sql ms-access vba


【解决方案1】:

您需要加入 TI_INDENTIFICATION。

strSQL = "UPDATE ruser
          SET ruser.ID_FZG = ti.ID_FZG,
              ruser.ID_PULK = ti.ID_PULK
          FROM RUSER_KSP_S_TI_ARP ruser
          INNER JOIN TI_IDENTIFIKATION ti
                  ON ruser.ARP = ti.ARP AND ruser.BTNR = ti.BTNR;"
CurrentDb.Execute strSQL, dbFailOnError

【讨论】:

  • JOIN 不应该在 Access 中的 SET 之前吗? UPDATE RUSER_KSP_S_TI_ARP rUser INNER JOIN TI_IDENTIFIKATION ti ON ruser.ARP = ti.ARP AND ruser.BTNR = ti.BTNR SET ruser.ID_FZG = ti.ID_FZG, ruser.ID_PULK = ti.ID_PULK
  • 不在例如微软 SQL
  • 还不错,但标签是 Access。
  • 公平地说,它在编辑之前也被标记为其他 RDBMS。
  • @DarrenBartrup-Cook 你是对的,Join 需要在 SET 之前。然后它工作。谢谢
猜你喜欢
  • 1970-01-01
  • 2015-10-24
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
相关资源
最近更新 更多