Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
1

Вызов хранимой процедуры с параметров из SQL Server в VBA в ADP проект MS Access

12.05.2019, 13:21. Показов 4986. Ответов 3

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Такая проблемка, не знаю как исправить... Битый час туплю. Делаю поиск клиентов через процедуру с параметром, передаю ей значения из полей, но ни одна запись не удовлетворяет этим данным.
Вот код кнопки:
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
Private Sub Кнопка276_Click()
 Dim objMyConn As ADODB.Connection
    Dim objMyCommand As ADODB.Command
    Dim objMyRecordset As ADODB.Recordset
    
    Set objMyConn = New ADODB.Connection
    Set objMyCommand = New ADODB.Command
    Set objMyRecordset = New ADODB.Recordset
 
    Set objMyConn = CurrentProject.Connection
    
    With objMyCommand
    .ActiveConnection = objMyConn
    .CommandText = "dbo.pr_Poisk"
    .CommandType = adCmdStoredProc
    .Parameters.Append .CreateParameter("@ClientFamily", adChar, adParamInput, 20, Me.ClientF.Value)
    .Parameters.Append .CreateParameter("@ClientName", adChar, adParamInput, 20, Me.ClientN.Value)
    .Parameters.Append .CreateParameter("@ClientPatronymic", adChar, adParamInput, 20, Me.ClientP.Value)
    End With
    Set objMyRecordset = objMyCommand.Execute()
'    If (objMyRecordset.RecordCount > 0) Then
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Clienti"
    stLinkCriteria = "[ClientID]=" & objMyRecordset!ClientF.Value
    DoCmd.OpenForm stDocName, , , stLinkCriteria
'    Else
'    MsgBox "Ничего не найдено по вашему запросу.", vbInformation, "Оповещение"
'    End If
End Sub
Вот код самой процедуры:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
USE [Сервисный центр]
GO
/****** Object:  StoredProcedure [dbo].[pr_Poisk]    Script Date: 12.05.2019 17:31:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[pr_Poisk]
@ClientFamily NCHAR(20)=NULL,
@ClientName NCHAR(20)=NULL,
@ClientPatronymic NCHAR(20)=NULL
AS
BEGIN
SELECT * FROM Client 
WHERE ((@ClientFamily IS NULL) OR (ClientF = @ClientFamily))
AND ((@ClientName IS NULL) OR (ClientN = @ClientName))
AND ((@ClientPatronymic IS NULL) OR (ClientP=@ClientPatronymic))
END
Добавлено через 7 минут
В 25 строчке забыл исправить ClientF.Value на ClientID. Тогда он и ругается на stLinkCriteria

Добавлено через 2 часа 41 минуту
Спасибо, разобрался сам, можно закрывать тему.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2019, 13:21
Ответы с готовыми решениями:

Получение параметров Хранимой процедуры с SQL Server
Создал следующую ХП: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE...

Вызов хранимой процедуры Oracle PL/SQL
Здравствуйте! Мне интересно вызова этой хранимой процедуры. На пример Создал таблица ...

вызов хранимой процедуры с параметрами через dynamic data linq to sql
Добро! У меня есть БД (sql server r2). Там есть хранимая процедура. Я создал проект на asp.net...

Создание хранимой процедуры для записи изображения в БД MS SQL Server'a
Всем привет! В инете нашел вот такой пример у Photo тип varbinary(max) CREATE PROCEDURE ....

3
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
12.05.2019, 17:59 2
Цитата Сообщение от Rembon Посмотреть сообщение
Спасибо, разобрался сам, можно закрывать тему.
Плюсик поставил за "разобрался сам", но было бы очень неплохо рассказать сообществу в чем же была загвоздка. Может быть кого-то Ваше сообщение спасет.
1
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
12.05.2019, 21:26 3
вероятнее всего вот тут
dbo.pr_Poisk
в данном случае указана [схема].[таблица]
сколько сталкивался то должно быть
[база].[схема].[таблица]
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
13.05.2019, 18:37  [ТС] 4
Проблема была в том, что нужно передавать в переменную не .Value, а Column() в параметрах, ведь это было поле со списком. Вот и решение)
1
13.05.2019, 18:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2019, 18:37
Помогаю со студенческими работами здесь

Создание столбца ADOTable на основе хранимой процедуры SQL Server
Здравствуйте! Вопрос такой: в базе данных в формате mdb имеется таблица P поставщиков со...

Передача в Recordset результата работы Хранимой процедуры (SQL Server 2012)
Всем привет! Не получается вернуть в Recordset результат из Хранимой процедуры, которая была...

MS SQL Неправильное имя хранимой процедуры при подключении из Access
Подключаюсь к MS SQL 2000 из MS Access 2000 (adp-проект). В окне 'хранимые процедуры' вижу примерно...

Вызов выходных параметров из процедуры MS SQL
Написал хранимую процедуру CREATE PROCEDURE zad5 @kodskw char(50),@d1 DATETIME,@d2 DATETIME,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru