首页 > 解决方案 > 将包含 where 语句的表值更新

问题描述

我有一张表,其字段名称为“StepX”,其中 X 是 10 到 1420,步进 10 秒。我有另一个表,其行值从 10 到 1420,并且两者之间的这些值是连接的。我需要一个从字段名称中获取“X”的例程,在另一个表中找到等效的“X”值行,从第二个表中的列(在 X 所在的同一行)中获取值并将其放置字段名称“StepX”下一行的第一个表中的值。

浏览了各种问题和答案,我找不到如何处理循环时更改的字段名。直到工作,但我没有看到第一个表中的值。

Dim dbs As Database
   Dim MarkerNumber As Integer
   Dim MarkerTotal As Integer
   Dim stSQL As String


   MarkerTotal = 1420
   MarkerNumber = 10

   Set dbs = CurrentDb

    Do Until MarkerNumber = MarkerTotal

        stSQL = "UPDATE tbl_Changes SET tbl_Changes.[Step'markernumber'] = SELECT_TypeTest set TypeTest WHERE SELECT_TypeTest.Order =10"

        MarkerNumber = MarkerNumber + 10
    Loop

我输入了你所拥有的,但它没有用,可能是因为我没有给你完整的故事。由于我提交了问题,我将更新查询更改如下,它可以工作: UPDATE tbl_Changes, SELECT_TypeTest SET tbl_Changes.step10 = IIf([SELECT_TypeTest]![InstrTest]>0,"Need","N/A") WHERE ( ((SELECT_TypeTest.Order)=10)); 需要帮助将其转换为 MarkerNumber 定序器的代码。

标签: vbasql-update

解决方案


微小的变化

   Dim dbs As Database
   Dim MarkerNumber As Integer
   Dim MarkerTotal As Integer
   Dim stSQL As String


   ''MarkerTotal = 1420
   ''MarkerNumber = 10

   Set dbs = CurrentDb

   For MarkerNumber = 10 To 1420 Step 10

        stSQL = "UPDATE tbl_Changes SET Step" & Trim(Str(MarkerNumber)) & " = TypeTest " & _
               " FROM ( SELECT TypeTest FROM  SELECT_TypeTest  WHERE Order = " & Trim(Str(MarkerNumber))

        ' now that the sql is built, then execute it
        dbs.Execute

   Next

推荐阅读