powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / выполнение процедуры SQL
15 сообщений из 15, страница 1 из 1
выполнение процедуры SQL
    #36095786
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите плз чайнику
как запустить из VB stored procedures на SQL
без вывода данных в excel
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36095812
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADODB.Command используй
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36095832
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
я это понимаю)
но новичек в этом примеров куча но никак разобраться не могу
запрос с результатом в виде select с выбором дат и тп .делать научился а чтобы просто запустить процедуру)
нет ли случайно примера буду очень признателен.
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36095876
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim cmd As ADODB.Command
Dim p As ADODB.Parameters
Dim RET as Long

    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = CN  'открытый объект ADODB.Connection
    cmd.CommandTimeout =  20 
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "sp_MESSAGE"
    Set p = cmd.Parameters
    p.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue)
    cmd.Execute
    RET = p("RETURN_VALUE").Value
    Set p = Nothing
    Set cmd = Nothing
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36095977
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
у меня был рабочий файл( не мной созданы)
который на основе процедуры делал вывод в ёксель
я так понимаю мне надо править Public Sub Make_TAA_Activity() см влож файл
на основе выше предложенного вами
убрать ADODB.Recordset и лишние параметры
или лучше сделать все заново?
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36095987
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял вопроса. да можно использовать ADODB.Command, но рекордсет вам всё равно нужен, поэтому не вижу смысла что-то переделывать или у вас что-то не работает?
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096040
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

я имею ввиду
там настроены все подключения к БД все прописано
вопрос с какого места использовать ADODB.Command на основе приложеного файла
просто проще учится на работающих примерах)
если конечно не занимаю много времени, может комуто пригодится таким же начинающим как я
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096049
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы не ответили на вопрос: зачем вам что-то менять?
вы пишите какую-то программу и у вас что-то не получается или что?
кусок кода выкладываайте сюда в тэгах SRC и будем разбираться
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096137
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

меняю потомучто у меня есть "рабочий вариант " с выводом таблицы в ёксель на основе процедуры SQL
а мне надо надо чтобы процедура просто запускалась и при успешном выполнении писала что то типа ОК

и хочу это сделать на основе "рабочего варианта" как примера. но не знаю как т.к это мне понадобилось впервые . поэтому и спрашиваю совета

а цель банальная минуя query analiser посредством VB запустить нужную процедуру

я выложил в txt весь модуль "рабочего варианта "
мне нужно поменять Public Sub Make_TAA_Activity() чтобы запускалась процедура без вывода
в ёксель( соответствено в SQL все уже сделано)
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096151
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это как было
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
[/src]Option Explicit

Public cnn As New ADODB.Connection

Public Function OpenConection() As Integer
On Error GoTo err_
    OpenConection = - 1 
    
    If cnn.State <>  0  Then cnn.Close
    
    cnn.Open ("Provider=MSDASQL.1;Persist Security Info=False;Data Source=base")
    cnn.CommandTimeout =  100000 
    OpenConection =  0 
    
    Exit Function
err_:
    MsgBox "Íå ìîãó ïðèñîåäèíèòüñÿ ê ñåðâåðó!" & err.Description
End Function

Public Sub CloseConection()
    If cnn.State <>  0  Then cnn.Close
    Set cnn = Nothing
End Sub

Public Sub Make_TAA_Activity()
On Error GoTo error1

Dim query As String, nameProc As String, sheet As Worksheet, rs As ADODB.Recordset, sheetRep As Worksheet, i As Integer
Set sheetRep = Sheets("Ðåçóëüòàò")
i =  4 

nameProc = "rpt_TAA_Activity"
If OpenConection <  0  Then Exit Sub

If UserForm.Is_OK Then
    cnn.Execute "set dateformat dmy"
    query = "exec dbo." & nameProc & " '" & _
            CStr(UserForm.dtDateFrom.Value) & "', '" & _
            CStr(UserForm.dtDateTo.Value) & "', 0, 0"
    
    Set rs = New ADODB.Recordset
    Call rs.Open(query, cnn, ADODB.adOpenForwardOnly, ADODB.adLockReadOnly)
    
    If rs.EOF Then
        MsgBox "Íåò äàííûõ!", vbCritical
        Set rs = Nothing
        CloseConection
        Exit Sub
    End If
    rs.MoveFirst
    
'   Depo     Name    Week_num    workdays    Business    TT_Plan TT_fact
'   TT_PercVisit    TT_Active   TT_PercActive   VST_Plan    VST_Fact
'   VST_Active  VST_PercEffect  SellMoney   SellCount


    sheetRep.Activate
    Do While Not rs.EOF
        sheetRep.Cells(i,  1 ).Value = rs!Depo
        sheetRep.Cells(i,  2 ).Value = rs!SAS
        sheetRep.Cells(i,  3 ).Value = rs!Name
        sheetRep.Cells(i,  4 ).Value = rs!Week_num
        sheetRep.Cells(i,  5 ).Value = rs!workdays
        sheetRep.Cells(i,  6 ).Value = rs!business
        sheetRep.Cells(i,  7 ).Value = rs!TT_Plan
        sheetRep.Cells(i,  8 ).Value = rs!TT_fact
        sheetRep.Cells(i,  9 ).Value = rs!TT_PercVisit
        sheetRep.Cells(i,  10 ).Value = rs!TT_Active
        sheetRep.Cells(i,  11 ).Value = rs!TT_PercActive
        sheetRep.Cells(i,  12 ).Value = rs!VST_Plan
        sheetRep.Cells(i,  13 ).Value = rs!VST_Fact
        sheetRep.Cells(i,  14 ).Value = rs!VST_Active
        sheetRep.Cells(i,  15 ).Value = rs!VST_PercEffect
        sheetRep.Cells(i,  16 ).Value = rs!SellMoney
        sheetRep.Cells(i,  17 ).Value = rs!SellCount
        If rs!business = "Èòîãî" Then
            sheetRep.Rows(i).Font.Bold = True
        Else
            sheetRep.Rows(i).Font.Bold = False
        End If
        
       
        rs.MoveNext
        i = i +  1 
    Loop
    sheetRep.Cells( 1 ,  1 ).Select
    rs.Close
    Set rs = Nothing
    Exit Sub
    
End If

error1:
    Set rs = Nothing
    MsgBox "Îøèáêà! Îáðàòèòåñü ê ðàçðàáîò÷èêàì! " & err.Description, vbCritical
End Sub
[/SRC]
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096153
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вам уже код привёл выше, подставьте название своей процедуры и обработайте RET
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096257
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

хорошо спасибо буду пробовать
тогда последний вопрос
как написать чтобы выводил текст при окончании выполнения процедуры
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096263
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выводил куда?

если в конкретную ячейку, то как и у вас в коде:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim s as String
If RET> 0  then
s="Все выполнилось успешно!"
else
s="Ошибка выполнения"
end if
sheetRep.Cells( 1 ,  1 ).Value = s
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096288
GoodCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
лучше msgBox
и куда в вашем коде это вставить
...
Рейтинг: 0 / 0
выполнение процедуры SQL
    #36096298
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim s as String
If RET> 0  then
s="Все выполнилось успешно!"
else
s="Ошибка выполнения"
end if
MsgBox s
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / выполнение процедуры SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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