Имя: Пароль:
1C
1С v8
Где ошибка в Ado?
0 SherifSP
 
11.02.14
15:15
1. Текст кода

Для Каждого СтрокаТЗ Из ТаблицаОплаты Цикл
            //Попытка
                Command.CommandText = СтрЗаменить(СтрЗаменить(СтрЗаменить("
                |INSERT INTO ["+ИмяТаблицы+"] VALUES ('"+СтрокаТЗ.EDRPOU+"','"
                +?(ЗначениеЗаполнено(СтрокаТЗ.TTID),СтрокаТЗ.TTID,"1")+"','"+СтрокаТЗ.Date+"','"+СтрокаТЗ.PayType+"','"+СтрокаТЗ.Summa+"','"
                +СтрокаТЗ.SummaVAT+"')","'",""),Символы.НПП,""),",,",",");
                Command.Execute();
            //Исключение
            //    Сообщить(ИмяТаблицы);
            //КонецПопытки;
        КонецЦикла;

2. Значение Command.CommandText = INSERT INTO [Pay] VALUES (01552368,1,27.01.2014 0:00:00,2,1029,78,205,96)

3. Ошибка
по причине:
Произошла исключительная ситуация (Microsoft JET Database Engine): Ошибка синтаксиса (пропущен оператор) в выражении запроса '27.01.2014 0:00:00'.

Что ему не нравится?
1 Jaap Vduul
 
11.02.14
15:18
Значения даты должны быть окружены знаками #, чтобы Access мог отличить значения даты от текстовых строк.

И желательно использовать американский формат даты, во избежание возможных недоразумений.
2 SherifSP
 
11.02.14
15:23
(1) '"+"#"+СтрокаТЗ.Date+"#"+"' Так?
3 Jaap Vduul
 
11.02.14
15:25
(2)
Да.

Но вообще правильнее использовать параметризованный запрос.
Это и с точки производительности положительно скажется и проблем с форматами позволит избежать.
4 Ёпрст
 
11.02.14
15:27
а с чего уверенность, что у автора Access ?
5 SherifSP
 
11.02.14
15:28
(4) У меня Excel
6 Jaap Vduul
 
11.02.14
15:31
(4)(5)
Microsoft JET Database Engine - акцессный движок

+(3)
Вот тут есть пример вставки с использованием параметризованного запроса:
http://msdn.microsoft.com/en-us/library/ms524771(v=vs.90).aspx
7 Ёпрст
 
11.02.14
15:33
(5) так передавай

'13.02.2014'
8 SherifSP
 
11.02.14
15:34
(7) Попробую, но вряд ли поможет
9 SherifSP
 
11.02.14
15:34
(1) Не помогла решетка
10 shuhard
 
11.02.14
15:39
(9) решётки мало, нужны слэши и не делай вид, что этого нет в гугле
11 Torquader
 
11.02.14
17:11
Ну. если дату не едят - пишите CAST.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан