запись макроса c SQL запросом (excel)

Программирование на Visual Basic for Applications
grim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 25.07.2005 (Пн) 9:33

запись макроса c SQL запросом (excel)

Сообщение grim » 19.03.2007 (Пн) 14:57

Записываю макрос в котором есть длиннный SQL запрос
в итоге макрос записывается неправильно
предположительно запрос не влезает в string

как бы это обойти?

maniac
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 10.11.2005 (Чт) 22:21

Сообщение maniac » 20.03.2007 (Вт) 0:29

Раз есть SQL запрос-значит есть база данных,
если есть база данных-значит есть и модель доступа.
SQL судя по написанному предварительно записывается в строку,
где и превышается максимальная длина строки.

Обойти это можно используя например объект ADODB.Command
с параметрами, например:
вместо:
dim db as ADODB.Connection
dim strSQL as string
.....
strSQL=strSQL&......
db.execute strSQL ......

делать так:
dim db as ADODB.Connection
dim cmd as ADODB.Command
......
set cmd.ActiveConnection=db
....
cmd.CommandText="INSERT INTO TABLE1 (FILD1,FILD2,FILD3) VALUES (?,?,?)"
cmd.parameters(0)=...
cmd.parameters(1)=...
cmd.parameters(2)=...
cmd.execute
....

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.03.2007 (Вт) 5:20

maniac, если ты как-нибудь сможешь прикрутить ADODB к встроенным объектам Excel, таким как QueryTable, честь тебе и хвала.

grim
Уточни вопрос.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 48

    TopList