【问题标题】:Iterating SQL statement By For Loop (MS Access)通过 For 循环迭代 SQL 语句(MS Access)
【发布时间】:2016-01-19 13:33:19
【问题描述】:

在我的测试数据库中,我正在尝试根据多个条件执行迭代 UPDATE 语句。

在我正在尝试更新的表中,tblSales_Language,我有列
Sales _LanguageID , Language_ID, Sales_CountryID, SalesID, & CountryID

作为参考表,我使用的是tblSales_Country,它有Sales_CountryID, CountryID, SalesID

我的目标是UPDATE tblSales_Language 中的列,其中包含信息,但除Sales_CountryID 之外的所有列- 我试图从参考表tblSales_Country 中提取此信息

废话不多说,我目前的代码如下:

Dim i as integer
Dim SQL As String
For i = 1 to 5
SQL = "UPDATE tblSales_Language 
&_ SET tblSalesLanguage.SalesCountryID = "
& DLOOKUP("Sales_CountryID", "tblSales_Country",  "[SalesID]" = i)"
Exit For

我的代码没有注册为语法正确,这是否与我的语句中没有 WHERE 的事实有关?

谢谢。

【问题讨论】:

    标签: sql ms-access vba ms-access-2007


    【解决方案1】:

    查看您现有的代码,有几个问题需要纠正:(a) 行继续; (b) SQL 语法; (c) 循环中缺少“下一个”; (d) 从不执行你的 SQL。所以使用你的代码:

    选项 1: 如果“SalesCountryID”不是数字,则需要将

    Dim i As Integer
    Dim SQL As String
    For i = 1 To 5
        SQL = "UPDATE tblSales_Language " & _
                "Set tblSalesLanguage.SalesCountryID = " & _
                DLookup("Sales_CountryID", "tblSales_Country", "[SalesID]" = i) & _
                " Where SalesID = " & i & ";"
        Debug.Print SQL
        CurrentDb.Execute SQL
    Next
    

    选项 2:

    创建一个查询(使用设计向导),它将在公共键上连接两个表,按 SalesID = 1 到 5 过滤;执行该查询(或 SQL)

    【讨论】:

      猜你喜欢
      • 2023-02-23
      • 1970-01-01
      • 2011-11-02
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      相关资源
      最近更新 更多