Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
alexandrstegnin
4 / 4 / 0
Регистрация: 09.01.2014
Сообщений: 130
1

Процедура Update из vba Access - ошибка в запросе

08.08.2014, 19:24. Просмотров 422. Ответов 0
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане!
Есть такой код, не могу уловить, почему обрабатывается не так:
Visual Basic
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
Private Sub butEdit_Click()
' Накладываем условие
If Not IsNull(Me.poleUrPodr.Value) And Not IsNull(Me.spisokStructure.Column(0)) Then
Dim cmd As ADODB.Command
Dim conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim PRM As ADODB.Parameter
Dim StructID As Integer
Dim UrPODR As String
Dim OTDELENIE As String
Dim KANAL As String
Dim OTDEL As String
StructID = Me.spisokStructure.Column(0)
UrPODR = Me.poleUrPodr.Value
OTDELENIE = Me.poleOtdelenie.Value
KANAL = Me.poleKanal.Value
OTDEL = Me.poleOtdel.Value
    Set conn = New ADODB.Connection
    conn.Open "Provider=Microsoft.Access.OLEDB.10.0;Persist Security Info=False;Data Source=0067-SQL02;Integrated Security=SSPI;Initial Catalog=ESU;Data Provider=SQLOLEDB.1"
    Set cmd = New ADODB.Command
    With cmd
        .ActiveConnection = conn
        .CommandText = "EditDataInTbl"
        .CommandType = adCmdStoredProc
        .NamedParameters = True
    Set PRM = .CreateParameter("@UrPODR", adVarChar, adParamInput, 50, UrPODR)
        .Parameters.Append PRM
    Set PRM = .CreateParameter("@OTDELENIE", adVarChar, adParamInput, 50, OTDELENIE)
        .Parameters.Append PRM
    Set PRM = .CreateParameter("@KANAL", adVarChar, adParamInput, 50, KANAL)
        .Parameters.Append PRM
    Set PRM = .CreateParameter("@OTDEL", adVarChar, adParamInput, 50, OTDEL)
        .Parameters.Append PRM
    Set PRM = .CreateParameter("@ID", adInteger, adParamInput, , StructID)
        .Parameters.Append PRM
    Set RS = .Execute
    End With
Set cmd = Nothing
Set PRM = Nothing
RS.Close: Set RS = Nothing
conn.Close: Set conn = Nothing
Me.Form.Requery
Me.spisokStructure.Requery
 
Else
     MsgBox "Выделите данные из списка, реквизиты которых необходимо изменить.", vbExclamation, "ОШИБКА"
End If
End Sub
Это событие повешено на кнопку в форме Access.

Есть хранимая процедура в MS SQL Server 2008 r2:
T-SQL
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
SE [ESU]
GO
/****** Object:  StoredProcedure [dbo].[EditDataInTbl]    Script Date: 08/08/2014 14:48:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
ALTER PROCEDURE [dbo].[EditDataInTbl]
      -- Add the parameters for the stored procedure here
      @UrPODR VARCHAR (50) = NULL,
      @OTDELENIE VARCHAR (50) = NULL,
      @KANAL VARCHAR (50) = NULL,
      @OTDEL VARCHAR (50) = NULL,
      @ID INT = 0
AS
BEGIN
      SET NOCOUNT ON;
 
UPDATE dbo.[Структура]
SET [Уровень подразделения] = @UrPODR, [Отделение] = @OTDELENIE, [Канал] = @KANAL, [Отдел] = @OTDEL
WHERE ([Код] = @ID)
--SELECT @UrPODR
--SELECT @OTDELENIE
--SELECT @KANAL
--SELECT @OTDEL
--SELECT @ID
END
Проблемы:

Если комментировать в ХП последние 5 SELECT, то получаем ошибку 3704, если нет, то все ок, но не происходит обновление самой формы. Не понимаю почему.
Спасибо всем за помощь.

Добавлено через 3 часа 24 минуты
Ну и в дополнение... Объясните "на пальцах" сильно ли отличается использование хранимых процедур, от простого запроса к базе с использованием рекордсета (ADO)? Вся форма написана на vba ado, есть ли смысл заморачиваться и переносить все в хранимые процедуры?
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2014, 19:24
Ответы с готовыми решениями:

Update и хранимая процедура
Здравствуйте, помогите пожалуйста разобраться: я делаю запрос с использованием...

Хранимая процедура для update
Всем привет, допустим у меня есть таблица, в которой 30 столбцов, не будешь же...

Хранимая процедура, Update первой строки
Нужно написать хранимую процедуру, которая будет делать Update, для первой...

Контроль UPDATE триггер. Доступ к данным, которые в запросе
При обновлении некоторых данных требуется отдельное подтверждение. То есть...

VBA макрос в SQL запросе
Привет! Возможно ли запустить VBA-макрос в теле запроса Ms SQL ? Я не шарю,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2014, 19:24

Трудности с Update в Access присоединенных SQL Server таблиц
Уважаемые Знатоки, Прилинковал таблицу из SQL 7.0 в Access 97. Открываю ее...

Как округлить значение в запросе Access?
Как округлить значение в запросе Access? Заранее спасибо

Как в запросе Access сгруппировать даты по месяцам? Помогите!!!
Есть таблица Access: 1 поле - дата 2 поле - текст 3 поле - число Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru