Форум программистов, компьютерный форум, киберфорум
Наши страницы

Microsoft SQL Server

Войти
Регистрация
Восстановить пароль
 
alexandrstegnin
4 / 4 / 0
Регистрация: 09.01.2014
Сообщений: 130
#1

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

08.08.2014, 19:24. Просмотров 392. Ответов 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 из vba Access - ошибка в запросе (SQL Server):

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

хранимая процедура для update - SQL Server
Всем привет, допустим у меня есть таблица, в которой 30 столбцов, не будешь же для каждого столбца делать отдельную хранимку, чтобы...

Хранимая процедура, Update первой строки - SQL Server
Нужно написать хранимую процедуру, которая будет делать Update, для первой строки таблицы. Таблица состоит их 4 полей, 3 из которых...

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

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

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

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

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

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

Ошибка update - SQL Server
Добрый день, Уважаемые форумчане! После переезде базы с одного сервера на другой (тестовый бэкап) пытаюсь сделать update (взял из SQL...

SQL Access Можно ли в одном запросе объединить Insert,delete,update - MS Access
Можно ли в одном запросе объединить Insert,delete,update? или делать каждой команде новый запрос?


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

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

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