2013-02-14 5 views
1

У меня есть несколько баз данных, и мне нужно вставить строковое значение перед некоторыми значениями. У меня есть следующий код:Обновление таблицы в MS_Access с использованием SQL

UPDATE DB_AlarmTest SET DB_AlarmTest.Address = "DB40," & [Address] 
WHERE DB_AlarmTest.Address 
NOT LIKE '%DB40%'; 

Я не хочу, чтобы мои АДРЕСА выйти так: «DB40, DB40, DB40,2.0» Если я выполнить запрос более чем один раз, так что я добавил "НЕ НРАВИТСЯ" % DB40% '"часть

Может кто-нибудь сказать мне, почему это не работает?

Заранее благодарен!

+0

и что именно не работает? что он делает неправильно? – Axarydax

+1

Ну, вот где он становится жутким! Когда я ввожу код следующим образом: UPDATE DB_AlarmTest SET DB_AlarmTest.Address = "DB40," & [адрес] ГДЕ DB_AlarmTest.Address не LIKE '% DB40%'; (ГДЕ И НЕ НРАВИТСЯ на 1 строке) Код просто возвращает мою колонку адреса без каких-либо изменений. Когда я вхожу как это: UPDATE DB_AlarmTest SET DB_AlarmTest.Address = "DB40," & [Адрес] ГДЕ DB_AlarmTest.Address НЕ НРАВИТСЯ '% DB40%'; (WHERE и NOT LIKE разделены на 2 строки) Код продолжает добавлять «DB40» каждый раз, когда я выполняю запрос – Gutanoth

+1

Как вы выполняете запрос? – DeanOC

ответ

2

С обычными ANSI варианты в MS Access, шаблон является *, а не%, так:

UPDATE DB_AlarmTest 
SET DB_AlarmTest.Address = "DB40," & [Address] 
WHERE DB_AlarmTest.Address Not Like "*DB40*" 
+0

Большое спасибо! это сработало! – Gutanoth

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