Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разделить строку на несколько строк / 9 сообщений из 9, страница 1 из 1
11.05.2007, 08:33:24
    #34517980
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
Привет всем!!!
Написал макрос, который вытаскивает нужную информацию из SQL-сервера, с помощью обычных запросов SQL.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
sqlstring2 = _
"select * From Customer where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70 order by name"

connstring = _
Array(Array("ODBC;DRIVER=SQL Server;SERVER=Home;DATABASE=AppData;Trusted_Connection=Ye"), Array("s"))
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
        Destination:=Range("A1"), Sql:=sqlstring2)
    .Refresh
End With
Проблема в том, что SQL запрос
Код: plaintext
"select * From Customer where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70 order by name"
очень коротенький и поэтому его можно оставить в виде как он и есть (в одну строку). Но мне нужно воткнуть запрос, который разов в пять длиннее приведенного выше.
Как разбить некий запрос на несколько строк (для удобства чтения)? Например вот так:
Код: plaintext
1.
2.
"select * From Customer
where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70
order by name"
...
Рейтинг: 0 / 0
11.05.2007, 08:56:51
    #34518001
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
Если без кавычек
Код: plaintext
1.
2.
"select * From Customer" & _
"where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70" & _
"Order by Name"
Если с кавычками
Код: plaintext
1.
2.
"""select * From Customer" & _
"where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70" & _
"Order by Name"""
Обязательно пробел в конце каждой строки
...
Рейтинг: 0 / 0
11.05.2007, 09:15:05
    #34518026
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
с помощью & _ можно конкетировать строки, но и здесь будут ограничения

можно делать так (строку можно длиннее получить )
Код: plaintext
1.
2.
3.
4.
Dim strSql As String

strSQl = "select * From Customer" 
strSQl = strSql & "where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70" 
strSQl = strSql & "Order by Name"

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
11.05.2007, 09:23:06
    #34518047
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
DeggasadЕсли без кавычек
Код: plaintext
1.
2.
"select * From Customer" & _
"where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70" & _
"Order by Name"
Если с кавычками
Код: plaintext
1.
2.
"""select * From Customer" & _
"where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70" & _
"Order by Name"""
Обязательно пробел в конце каждой строки

немного изменил сам запрос, но есть ошибка
...
Рейтинг: 0 / 0
11.05.2007, 09:32:31
    #34518063
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
HandKotс помощью & _ можно конкетировать строки, но и здесь будут ограничения

можно делать так (строку можно длиннее получить )
Код: plaintext
1.
2.
3.
4.
Dim strSql As String

strSQl = "select * From Customer" 
strSQl = strSql & "where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) > 70" 
strSQl = strSql & "Order by Name"

I Have Nine Lives You Have One Only
THINK!

Так получилось только пробелы нужно поставить
Код: plaintext
1.
2.
strSqll = "select * From Prod"
strSqll = strSqll & " where ASCII(SUBSTRING(Left(Name, 1), 1, 1)) <= 205"
strSqll = strSqll & " Order by Name"
...
Рейтинг: 0 / 0
11.05.2007, 10:25:29
    #34518184
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
кстати вот это выражение не имеет смысла
Код: plaintext
SUBSTRING(Left(Name,  1 ),  1 ,  1 )
т.к Left(Name, 1) уже вернет 1 символ
и сабстр здесь уже лишнее

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
11.05.2007, 10:31:48
    #34518209
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
HandKotкстати вот это выражение не имеет смысла
Код: plaintext
SUBSTRING(Left(Name,  1 ),  1 ,  1 )
т.к Left(Name, 1) уже вернет 1 символ
и сабстр здесь уже лишнее

I Have Nine Lives You Have One Only
THINK!

Спасибо... Учту
...
Рейтинг: 0 / 0
11.05.2007, 10:41:18
    #34518246
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
andMegaM

немного изменил сам запрос, но есть ошибка

1) как вызываете запрос
2) заберите поле Name в квадратные скобки, т.к это зарезервированное слово
...
Рейтинг: 0 / 0
11.05.2007, 10:47:22
    #34518270
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строку на несколько строк
andMegaM .
Запросы или хранимые процедуры (в том числе
с параметрами) есть смысл создавать в Ентерпрайз
менеджере или Аксесе.
Там для этого есть все возможности, в том числе
графический интерфейс.

Из Экселя их тогда можно вызывать по названию.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разделить строку на несколько строк / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]