Точка в имени листа Excel и Select

Программирование на Visual Basic for Applications
Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Точка в имени листа Excel и Select

Сообщение Andrey Fedorov » 14.03.2008 (Пт) 16:28

В модуле книги выполняется запрос:

Код: Выделить всё
    r.Open "SELECT F1, F7, F8" & vbCrLf _
                & "FROM [" & Me.Worksheets(i).Name & "$A3:P65535] WHERE NOT F3 IS NULL AND NOT F12 IS NULL AND NOT F13 IS NULL ORDER BY F16"


Все бы прекрасно, но юзер может ввести в имя листа "нехороший символ" (я натолкнулся на точку), после чего данная на данной строчке получим приведенную ниже ошибку.

Соответственно вопрос - как этого избежать?
Вложения
p.png
p.png (1.83 Кб) Просмотров: 461
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.03.2008 (Вс) 0:54

Как - никто значит не знает ответа?

Пока обошелся тем что в именах листов предварительно заменяю "нехорошие символы" на подчеркивание. Но не хотелось бы их трогать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.03.2008 (Пн) 8:53

Сделать именованный диапазон и обращаться к нему?
Ошибку похоже генерит не ADO, а провайдер для XLS-файлов.
Lasciate ogni speranza, voi ch'entrate.

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 17.03.2008 (Пн) 12:42

У меня такая ошибка не воспроизводится.
Версия ado - 2.81.1117.0

Хотя нет, воспроизводится - сразу после точки должен следовать пробел.

А точку в имени листа можно так победить: Replace(WorksheetName, ".", "#")


Вернуться в VBA

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76

    TopList