|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.04.2012, 12:22 | #1 |
Пользователь
Регистрация: 29.12.2011
Сообщений: 31
|
Использование SQL функции в VBA
Привет всем..
У меня тут есть запрос в SQL SERVER и этот запрос нужно вставить в VBA... DECLARE qwe CHAR(19) SET qwe = '11.11.2011 11:11:11' IF qwe = '<Null>' BEGIN SET qwe = Null END ELSE SET qwe = qwe INSERT INTO test(datetime1) VALUES(@qwe)[/b] Написал следующее в VBA, но не работает d(0) = "2011-03-19 13:58:45" d(1) = "<Null>" d(2) = "2011-04-19 13:58:45" d(3) = "<Null>" For i = 0 To 3 sSQL = "IF '" & d(i) & "' = '<Null>' BEGIN SET '" & d(i) & "' = Null END ELSE SET '" & d(i) & "' = '" & d(i) & "' INSERT INTO test(datetime1) VALUES('" & d(i) & "')" cnState.Execute sSQL Next Что посоветуете? |
17.04.2012, 12:32 | #2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
а сам сервер подключен как источник данных?
Правильно поставленная задача - три четверти решения.
|
17.04.2012, 12:32 | #3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
посоветую SQL начинать со слова SELECT, а отбор данных писать в WHERE.
распечатйте сюда строку sSQL
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
17.04.2012, 12:33 | #4 |
Пользователь
Регистрация: 29.12.2011
Сообщений: 31
|
Да.. вот строка подключения
Dim cnState As ADODB.Connection Dim sSQL As String Set cnState = New Connection With cnState .Provider = "SQLOLEDB" .ConnectionString = "server=.\SQLEXPRESS; Trusted_Connection=Yes; database=InsertCSVFile" .Open End With |
17.04.2012, 12:34 | #5 |
Пользователь
Регистрация: 29.12.2011
Сообщений: 31
|
|
17.04.2012, 12:37 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
строка подключения - это одно, задали источник данных и драйвер
а SQL-запрос - это другое какие данные хотим получить, с каких таблиц, соответствующие каким условиям
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
17.04.2012, 12:46 | #7 |
Пользователь
Регистрация: 29.12.2011
Сообщений: 31
|
Я строку подключения для DiemonStar написал....
Сейчас я другое попробовал Dim d(3) As Variant Dim i As Long d(0) = "Null" d(1) = "Null" d(2) = "2011-04-19 13:58:45" d(3) = "Null" For i = 0 To 3 If IsDate(d(i)) Then sSQL = "INSERT INTO test(datetime1) VALUES('" & d(i) & "')" MsgBox sSQL cnState.Execute sSQL End If Next а щас говорит Ошибка.. "Преобразование типа данных char в тип datetime привело к значению datetime за пределами диапазона" |
17.04.2012, 12:52 | #8 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
Скорее всего, заморочки с кавычками в запросе...
('" & d(i) & "')" - вот тут попробуйте (" & d(i) & ")" или (""" & d(i) & """)"
Правильно поставленная задача - три четверти решения.
|
17.04.2012, 13:05 | #9 | |
Пользователь
Регистрация: 29.12.2011
Сообщений: 31
|
Цитата:
Я отредактировал тут кое-что: Код:
|
|
17.04.2012, 13:18 | #10 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
Используйте ADODB.Command и запросы c параметрами.
И не дело дату строкой держать. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использование SQL в Access | Insightful | Microsoft Office Access | 3 | 29.04.2010 14:37 |
создание и использование семафоров(VBA) | vladmc | Помощь студентам | 1 | 09.01.2010 03:18 |
VBA Использование Shapes в Excel диаграммах | RomVS | Microsoft Office Excel | 0 | 13.02.2009 12:20 |
использование SQL запросов в коде VBA | b00s | Microsoft Office Access | 3 | 26.04.2008 13:40 |