Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / параметры запроса SQL / 4 сообщений из 4, страница 1 из 1
02.02.2010, 14:50
    #36444671
NavDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры запроса SQL
Приветствую.
Есть задача выгружать данные с sql в excel
записал макрос подсоединения и селекта нужных данных:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 02.02.2010 by me
'

'
    With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DRIVER=SQL Server;SERVER=SERVERNAME;UID=;APP=Microsoft Office 2003;WSID=MYHOSTNAME;DATABASE=DBNAME;Trusted_Connection" _
        ), Array("=Yes")), Destination:=Range("B3"))
        .CommandText = Array( _
        "SELECT ""TableName"".Field1, ""TableName"".Field2, ""TableName"".Field3" & Chr( 13 ) & "" & Chr( 10 ) & "FROM DBNAME.dbo.""TableName"" ""TableName""" _
        )
        .Name = "Query from Tezd"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod =  0 
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Но не пойму как добавить в условие определённое значение, т.е. нужно к селекту добавить WHERE [field] = val
где val - для разных пользователей разный.
подскажите плз. как это сделать.
буду весьма признателен.
...
Рейтинг: 0 / 0
02.02.2010, 18:31
    #36445482
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры запроса SQL
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim val As String
val = "aaaa"
.CommandText = Array( _
        "SELECT ""TableName"".Field1, ""TableName"".Field2, ""TableName"".Field3" & Chr( 13 ) & "" & Chr( 10 ) & _
             "FROM DBNAME.dbo.""TableName"" ""TableName"" " & _
             "WHERE ""TableName"".""Val"" = '" & val & "'"
        )
...
Рейтинг: 0 / 0
02.02.2010, 21:57
    #36445789
NavDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры запроса SQL
White Owl,

Спасибо, сам осилил (говорила мне мама: "учи офис"), я просто был не в курсе как задавать параметры запроса в excel, оказалось что через '[]' и указание ячейки моя задача решается на раз-два-три.
Вот урок который я постоянно забываю: каким бы себя не мнил спецом-не поленись заглянуть в простой хэлп для начала
...
Рейтинг: 0 / 0
03.02.2010, 00:27
    #36445951
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры запроса SQL
NavDevя просто был не в курсе как задавать параметры запроса в excel, оказалось что через '[]' и указание ячейки моя задача решается на раз-два-три.Вообще-то, квадратные скобки используются для создания именованых параметров. Для неименованых используется знак вопроса.
Код: plaintext
1.
select * from table where pk=[id]
select * from table where pk=?
В первом случае, при создании привязки параметра к ячейке Эксель покажет параметр как id. Во втором, будет безымянный нумерованый параметр.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / параметры запроса SQL / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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