#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