2016-11-23 2 views
2

Я пытаюсь сделать так, чтобы Query 1 вставлял в 1 из 3 полей в зависимости от того, выбрано ли значение задачи (взято из другой таблицы) (true или false). Эта часть работает.Добавление/обновление таблицы sql в VBA

Предполагается, что Query 2 обновит остальные 2 поля, пустые для значений в поле со списком. Эта часть не работает. Синтаксически это кажется правильным, и это не сбой. Но я просто не думаю, что он читает его в первую очередь.

Все это должно быть выполнено с помощью 1 нажатия кнопки.

Запрос 1:

Sub DBInsert_SkillMatrix() 
sSQL = "Insert into tblSkillMatrix (Task) Select Task from tblTask WHERE Selected = true" 
Set db = CurrentDb 
db.Execute (sSQL) 
db.Close 
End Sub 

Запрос 2:

Sub DBUpdate_SkillMatrix() 
Dim db As DAO.Database 
sSQL = "UPDATE tblSkillMatrix SET Skill = '" & Me.cboAST_Skill & "', Requirement = '" & Me.cboAST_Requirement & "' WHERE Skill = ''" 
Set db = CurrentDb 
Debug.Print (sSQL) 
db.Execute (sSQL) 
End Sub 
+0

Я вижу 'WHERE Skill = ''" 'в конце второго запроса. Предполагается ли это так? Можете ли вы показать debug.print (sSQL)? – Vityata

+0

Это Debug.Print UPDATE tblSkillMatrix SET Skill = 'Обзор TCM и практический опыт калибровки инструментов (базовые инструменты измерения)', Требование = 'R' WHERE Skill = ''. «В конце это потому, что для sSQL требуется строка стоимость. –

+0

Я вижу, что проблема в том, что он не интерпретирует инструкцию WHERE правильно, но я не уверен, как еще я могу сказать, чтобы он захватил навыки, имеющие значение NULL. –

ответ

Смежные вопросы