| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Синтаксическая ошибка в инструкции Insert Into |
| Автор: Aline 14.5.2013, 12:40 | ||
Мне надо перекинуть таблицу из Excel в Access. Нашла пример как это сделать,пытаюсь реализовать у себя и всё никак: вылезает постоянно эта ошибка. Уже вроде все данные привела к требуемому виду и всё равно ругается. Что не так?
В переменно Query получается вот что: "Insert INTO Work ( DateWork,Chanal,TimeWork,Peregrev,KZ,Sw_ON,Sw_Battery,Ubort, UAKB) VALUES ( #04/17/2013# , "БМ_5", 100, 0, 0, 1, 1, 1, 1)" Еще такой момнт: в БД поле Chanal - это список из связаной таблицы, там указан номер канала, его имя и номер прибора, может дело в этом? Неправильно устанавливаю значение поля? А как тогда устнавливать? В самом поле Chanal отображается наименование канала Во вложении исходник |
| Автор: Aline 14.5.2013, 13:34 |
| Akina, в смысле? |
| Автор: Akina 14.5.2013, 13:42 |
| См. подсветку. |
| Автор: FINANSIST 14.5.2013, 13:42 |
| Делаем debug.print Query копируем полученный sql текст из immediate window исполняешь его в access и смотришь - какой результат: если access ругается на sql - дело в синтаксисе sql, если добавляет нормально - в синтаксисе vba |
| Автор: Aline 14.5.2013, 13:44 |
| Akina, "БМ_5"? И что в нём? Как тогда туда загнать значение? Добавлено через 1 минуту и 53 секунды FINANSIST, какие страшные слоа Вы написали |
| Автор: Akina 14.5.2013, 13:53 |
Вы используете ADO. Так будьте любезны полностью соответствовать его требованиям. А вообще данные из Эксела в Аксесс переносятся тупым импортом. |
| Автор: Aline 14.5.2013, 13:57 |
| Akina, мне тупой импорт не нужен. Таблица в Excel не совсем совпадает с таблицей БД,поэтому надо заполнять по полям. И не будете ли Вы так любезны объяснить, что надо сделать согласно требованиям? |
| Автор: Akina 14.5.2013, 14:38 |
Во-первых, замените кавычки на одинарные. Уйдёт неоднозначность. Во-вторых, отладьте, как правильно сказал FINANSIST, запрос в Аксессе, и лишь потом переносите его в свою программу. Но главное - разберитесь в найденном примере самым доскональным образом. Чтобы каждая буква, скобка и пробел стали понятны. |
| Автор: Aline 14.5.2013, 15:04 |
| Akina, мне суть понятна, что и как делается. Я не знаю тонкости так сказать языка,потому что с ним сталкиаюсь всего второй раз, к тому же перый раз был 4 года назад и задача была другая. У меня все запросы построены с кавычками,а не с апострофами, на апострофы программа ругается. Добавлено через 4 минуты и 41 секунду FINANSIST, можно подробнее где и как это делаем? |
| Автор: Aline 14.5.2013, 15:42 |
| В общем в Access я запустила запрос: Insert INTO Work ( DateWork,Chanal,TimeWork,Peregrev,KZ,Sw_ON,Sw_Battery,Ubort,UAKB) VALUES ( #04/17/2013# ,"БМ_5", 100, 0, 0, 1, 1, 1, 1) появилось сообщение о неправильности преобразования типа, тогда я вместо "БМ_5" поставила "1" - индекс записи из связанной таблицы. Insert INTO Work ( DateWork,Chanal,TimeWork,Peregrev,KZ,Sw_ON,Sw_Battery,Ubort,UAKB) VALUES ( #04/17/2013# , 1, 100, 0, 0, 1, 1, 1, 1) Запрос прошел и добавилась строка. Но этот же запрос не сработал в Excel: он мне выдал ту же самую ошибку и после этого запрос перестал выполняться в Access :( Добавлено через 12 минут и 56 секунд Разобралась! Всем спасибо за помощь! Как я и подозревала, во-первых дело было во втором параметре, туда надо передавать индекс записи из списка. Во вторых Work я взяла в квадрытные скобки, ну и самое элементарное не хватало пробовелов перед круглыми скобками. Теперь запрос работает и в Excel, записи добавляются в БД |