Обновление значения таблицы, которое будет включать оператор where

#vba #sql-update

#vba #sql-обновление

Вопрос:

У меня есть одна таблица с именами полей «stepX», где X от 10 до 1420 шагов за 10 секунд. У меня есть другая таблица, в которой значения строк от 10 до 1420, и эти значения между ними связаны. Мне нужна процедура, которая получает «X» из имени поля, находит эквивалентную строку со значением «X» в другой таблице, извлекает значение из столбца (в той же строке, где находится X) во второй таблице и помещает это значение в первую таблицу в строке с именем поля «stepX».

просмотрел различные вопросы и ответы, и я не могу найти, как обрабатывать изменение имени поля при выполнении цикла. do until работает, но я не вижу значения в первой таблице.

 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
  

Я вставил то, что у вас есть, и это не сработало, вероятно, потому, что я не рассказал вам всю историю. поскольку я отправил вопрос, я изменил свой запрос на обновление следующим образом, и это работает: ОБНОВИТЕ tbl_Changes, выберите tbl_Changes.step10 = IIf([SELECT_TypeTest]![InstrTest]>0, «Необходимо», «N /A»)
ГДЕ (((SELECT_TypeTest.Порядок)=10));
нужна помощь в преобразовании этого в код с помощью MarkerNumber sequencer.

Ответ №1:

Незначительные изменения

    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" amp; Trim(Str(MarkerNumber)) amp; " = TypeTest " amp; _
               " FROM ( SELECT TypeTest FROM  SELECT_TypeTest  WHERE Order = " amp; Trim(Str(MarkerNumber))

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

   Next