Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры из Excel / 13 сообщений из 13, страница 1 из 1
15.03.2010, 00:33
    #36519864
Джульетта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
Необходимо вызвать хранимую процедуру с параметрами из 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 Macro2()

Dim acnt
Dim cmd

acnt = Range("A1")
cmd = "EXEC [dbo].[SSP_UP] " + acnt + "," + "1990001"



    With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=SUN4;UID=sa;;APP=Microsoft Office 2003;WSID=J;DATABASE=TST" _
        , Destination:=Range("B6"))
        .CommandText = cmd
        .Name = "Result"
        .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:=True
    End With
End Sub
...
Рейтинг: 0 / 0
15.03.2010, 09:31
    #36520069
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
авторПри выполнении макрос ругается
и как он ругается, надеюсь не матом? огласите текст ошибки


ЗЫЖ подозреваю, что проблема в передаче параметров
Код: plaintext
cmd = "EXEC [dbo].[SSP_UP] " + acnt + "," + "1990001"
А именно, какие параметры и какого типа вы пытаетесь передать?


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
15.03.2010, 10:06
    #36520129
Джульетта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
Нет, не матом. )))
Выдает такое сообщение:
Код: plaintext
Run-time error ' 13 ': Type mismatch.
После нажатия на Debug попадает на строку
Код: plaintext
cmd = "EXEC [dbo].[SSP_RBC_UPDATE] " + acnt + "," + "1990001"
Нужно передать два параметра, один типа INT, второй типа CHAR.
...
Рейтинг: 0 / 0
15.03.2010, 10:17
    #36520157
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
Джульетта
Нужно передать два параметра, один типа INT, второй типа CHAR .Строковый тип при передаче должен быть окружен одинарными кавычками.
...
Рейтинг: 0 / 0
15.03.2010, 11:14
    #36520298
Джульетта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
параметр находится в ячейке A1. Он определен
Код: plaintext
acnt = Range("A1")

Как его передать в хранимку?
Если поставить 'acnt' , то ругается на синтаксис.
...
Рейтинг: 0 / 0
15.03.2010, 11:30
    #36520352
йцкйцк
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
cmd = "EXEC [dbo].[SSP_RBC_UPDATE] '" + acnt + "'," + "1990001"?
...
Рейтинг: 0 / 0
15.03.2010, 11:41
    #36520382
Джульетта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
Выдает:
Код: plaintext
Run-time error ' 13 ': Type mismatch.
...
Рейтинг: 0 / 0
15.03.2010, 11:54
    #36520445
йцкйцк
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
ДжульеттаВыдает:
Код: plaintext
Run-time error ' 13 ': Type mismatch.
а если при склейке строки поменять "+" на "&" ?
...
Рейтинг: 0 / 0
15.03.2010, 12:02
    #36520474
Джульетта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
Код: plaintext
а если при склейке строки поменять "+" на "&" ?
Да, заработало. Спасибо большое.
Остается только вопрос, почему при выполнении макроса добавляется столбец? Как от этого можно избавиться? ))
...
Рейтинг: 0 / 0
15.03.2010, 13:35
    #36520784
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
и что Вы видете в этом столбце?
куда он всавляется в начало, всередину, в конец?


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
15.03.2010, 13:47
    #36520860
РЕС
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
Насколько я понял ваш запрос зашит в сводную таблицу. Просто снимите "галку" с ненужного столбца в ее настройках.
...
Рейтинг: 0 / 0
15.03.2010, 18:32
    #36521773
Джульетта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из Excel
Вставляется столбец B.
И пишет в ячейке B6 "Result" .

Код: plaintext
Насколько я понял ваш запрос зашит в сводную таблицу. Просто снимите "галку" с ненужного столбца в ее настройках.
Это не сводная таблица. Чистый worksheet с параметром в А1 и кнопкой, запускающей макрос.
...
Рейтинг: 0 / 0
15.03.2010, 19:03
    #36521836
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры из 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 Macro2()

Dim acnt
Dim cmd

acnt = Range("A1")
cmd = "EXEC [dbo].[SSP_UP] " + acnt + "," + "1990001"



    With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=SUN4;UID=sa;;APP=Microsoft Office 2003;WSID=J;DATABASE=TST" _
        , Destination:=Range("B6"))
        .CommandText = cmd
        .Name = "Result"
        .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:=True
    End With
End Sub
Джульетта, ты выделенные строки видишь? Прочитай эти строки повнимательнее. Мысли никакие не появляются?
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры из Excel / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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