2014-06-25 1 views
1

Следующая строка SQL возвращает ошибку из-за синтаксиса (ошибка времени выполнения 3144).SQL-запрос вызывает синтаксическую ошибку Время выполнения 3144

st_sql = "UPDATE [tblProjectPlanB01], [tblProjectPlanFonts] SET [tblProjectPlanB01].[Week1Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week2Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week3Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week4Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week5Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week6Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week7Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week8Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week9Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week10Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week11Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week12Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week13Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week14Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week15Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week16Actual = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week17Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week18Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week19Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week20Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week21Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week22Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week23Actual = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week24Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week25Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week26Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week27Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week28Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week29Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week30Actual = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week31Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week32Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week33Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week34Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week35Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week36Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week37Actual = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week38Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week39Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week40Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week41Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week42Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week43Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week44Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week45Actual = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week46Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week47Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week48Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week49Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week50Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week51Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week52Actual] = [tblProjectPlanFonts].[Start] " & _ 
     "WHERE ((([tblProjectPlanB01].[StartWeekActual]) <= 1 And ([tblProjectPlanB01].[StartWeekActual]) <> 0) And (([tblProjectPlanFonts].[Select]) = '1')) " 
     Application.DoCmd.RunSQL (st_sql) 
+3

Вы не говорите, которая ** базы данных ** это для - но в большинстве диалектов SQL Я знаю, вы ** не можете ** обновить сразу две таблицы .... –

+0

Стандартный синтаксис SQL для 'UPDATE' выглядит примерно так:' UPDATE table_name SET column_name = v alue [, column_name = value ...] [условие WHERE], где вы можете иметь только ** ONE ** имя таблицы после ключевого слова UPDATE –

+0

Я только обновляю одну таблицу (tblPRojectlanB01), однако я ссылаюсь на значение из table (tblProjectPlanFonts). Когда я запускаю его в MS Access Query, он отлично работает –

ответ

2
st_sql = "UPDATE [tblProjectPlanB01]" & _ 
     "SET [tblProjectPlanB01].[Week1Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week2Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week3Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week4Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week5Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week6Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week7Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week8Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week9Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week10Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week11Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week12Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week13Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week14Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week15Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week16Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week17Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week18Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week19Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week20Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week21Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week22Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week23Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week24Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week25Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week26Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week27Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week28Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week29Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week30Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week31Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week32Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week33Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week34Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week35Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week36Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week37Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week38Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week39Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week40Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week41Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week42Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week43Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week44Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week45Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week46Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week47Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week48Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week49Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week50Actual] = [tblProjectPlanFonts].[Start], [tblProjectPlanB01].[Week51Actual] = [tblProjectPlanFonts].[Start], " & _ 
     "[tblProjectPlanB01].[Week52Actual] = [tblProjectPlanFonts].[Start] FROM [tblProjectPlanB01] INNER JOIN [tblProjectPlanFonts] ON [tblProjectPlanFonts].[Select] = '1' WHERE [tblProjectPlanB01].[StartWeekActual] <= 1 AND [tblProjectPlanB01].[StartWeekActual] <> 0" 

     Application.DoCmd.RunSQL (st_sql) 
+0

Vignesh, я пробую ваше предложение выше, но у меня проблема с внутренним соединением. Я не уверен, что внутреннее соединение - это правильная вещь, потому что нет соответствующего значения поля поля. Я скорректировал код выше, чтобы отразить ваше предложение, но теперь я получаю ошибку времени выполнения 3075 –

1

Вы отсутствуют Квадратные скобки]

Попробуйте

st_sql = "UPDATE R,S 
      SET R.[week1actual] = S.[start],R.[week2actual] = S.[start], 
       R.[week3actual] = S.[start],R.[week4actual] = S.[start], 
       R.[week5actual] = S.[start],R.[week6actual] = S.[start], 
       R.[week7actual] = S.[start],R.[week8actual] = S.[start], 
       R.[week9actual] = S.[start],R.[week10actual] = S.[start], 
       R.[week11actual] = S.[start],R.[week12actual] = S.[start], 
       R.[week13actual] = S.[start],R.[week14actual] = S.[start], 
       R.[week15actual] = S.[start],R.[week16actual] = S.[start], 
       R.[week17actual] = S.[start],R.[week18actual] = S.[start], 
       R.[week19actual] = S.[start],R.[week20actual] = S.[start], 
       R.[week21actual] = S.[start],R.[week22actual] = S.[start], 
       R.[week23actual] = S.[start],R.[week24actual] = S.[start], 
       R.[week25actual] = S.[start],R.[week26actual] = S.[start], 
       R.[week27actual] = S.[start],R.[week28actual] = S.[start], 
       R.[week29actual] = S.[start],R.[week30actual] = S.[start], 
       R.[week31actual] = S.[start],R.[week32actual] = S.[start], 
       R.[week33actual] = S.[start],R.[week34actual] = S.[start], 
       R.[week35actual] = S.[start],R.[week36actual] = S.[start], 
       R.[week37actual] = S.[start],R.[week38actual] = S.[start], 
       R.[week39actual] = S.[start],R.[week40actual] = S.[start], 
       R.[week41actual] = S.[start],R.[week42actual] = S.[start], 
       R.[week43actual] = S.[start],R.[week44actual] = S.[start], 
       R.[week45actual] = S.[start],R.[week46actual] = S.[start], 
       R.[week47actual] = S.[start],R.[week48actual] = S.[start], 
       R.[week49actual] = S.[start],R.[week50actual] = S.[start], 
       R.[week51actual] = S.[start],R.[week52actual] = S.[start] 
     FROM [tblProjectPlanB01] R INNER JOIN [tblProjectPlanFonts] S ON S.[Select] = '1' 
     WHERE R.[StartWeekActual] <= 1 AND R.[StartWeekActual] <> 0" 
Смежные вопросы