powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Мелкие вопросы по SQL и Access
9 сообщений из 9, страница 1 из 1
Мелкие вопросы по SQL и Access
    #39402799
accsqlnew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть процедура с именем: sproc_select_currentorganization
Код: vbnet
1.
EXEC proc_select_currentorganization @idorganization=%



@idorganization int

В коде пишу:
Код: vbnet
1.
2.
      qdf.SQL = "EXEC proc_select_currentorganization @idorganization=" & Forms![organization_sia]![organization_sia_subform].Form![id_organization]
      Me.RecordSource = "sproc_select_currentorganization"


Высказывает ошибка, что не может конвертировать nvarchar в int
Но у меня это числовой параметр и я никак не могу найти в интернете информацию чем заменить %.
Где-то было об этом (
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39402805
accsqlnew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Run-time error ‘3146’ODBC – call failed
[Microsoft][ODBC SQL Server Driver][SQL Server]
Error converting data type nvarchar to int. (#8114)
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39402842
accsqlnew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
Private Sub cmd_edit_Click()
        DoCmd.OpenForm "organization_newedit",,, "id_organization=" & Me.id_organization
End Sub



Вышеуказанный код я хочу заменить на следующий. Понимаю, что-то не то делаю, может кто объяснит мне, в чем дело?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub cmd_edit_Click()
    Call DaoOdbcIn
        qdf.SQL = "EXEC proc_select_currentorganization @idorganization=" & Me.id_organization
        qdf.ReturnsRecords = True
        Set rstReport = qdf.OpenRecordset()
        rstReport.MoveFirst
        DoCmd.OpenForm "organization_newedit"
                    Forms![organization_newedit].RecordSource = "sproc_select_currentorganization @idorganization=" & Me.id_organization
      Call DaoOdbcOut
End Sub




В хранимой процедуре:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Procedure [dbo].[proc_select_currentorganization]
	@idorganization int 
AS
SELECT		id_organization,
		organization,
		address
FROM		organization
WHERE		id_organization=@idorganization



Код: vbnet
1.
EXEC proc_select_currentorganization @idorganization=%
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39402886
так сделай

В хранимой процедуре:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Procedure [dbo].[proc_select_currentorganization]
	@idorganization int 
AS
SELECT		id_organization,
		organization,
		address
FROM		organization
WHERE		id_organization=@idorganization or @idorganization=0



Код: vbnet
1.
EXEC proc_select_currentorganization @idorganization=0
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39402914
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
qdf.SQL = "EXEC proc_select_currentorganization " & Me.id_organization
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39402935
accsqlnew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас выскакивает такая ошибка.
авторRun-time error ‘2580’:
The record source ‘sproc_select_currentorganization @idorganization=42’ specified on this form or report does not exist.

Форма organization_newedit имеет пустой источник изначально. Получается, он не успевает присвоить с конкретным источником.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub cmd_edit_Click()
    Call DaoOdbcIn
        qdf.SQL = "EXEC proc_select_currentorganization @idorganization=" & Me.id_organization
        qdf.ReturnsRecords = True
        Set rstReport = qdf.OpenRecordset()
        rstReport.MoveFirst
        DoCmd.OpenForm "organization_newedit"
                    Forms![organization_newedit].RecordSource = "sproc_select_currentorganization @idorganization=" & Me.id_organization
      Call DaoOdbcOut
End Sub
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39403608
пв
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
DoCmd.OpenForm "organization_newedit"


В organization_newedit на Open
Код: vbnet
1.
2.
me.recordsource="exec proc_select_currentorganization @idorganization=" _
& Forms("organization_sia").controls("organization_sia_subform").Form.recordset.fields("id_organization")


зы. если id_organization - поле источника данных

?
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39404945
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
accsqlnew,

Если я правильно понял, то Вам нужны записи только по одной, указанной или по всем организациям?
Тогда переделайте хранимую процедуру вот так.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Procedure [dbo].[proc_select_currentorganization]
	@idorganization int = Null
AS
SET NOCOUNT ON; -- На всякий случай.

SELECT		id_organization,
		organization,
		address
FROM		organization
WHERE		id_organization=@idorganization OR @idorganization Is Null


Ну и в VBA слегка переделайте свой код примерно так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim ID_Organization As String
ID_Organization = Forms![organization_sia]![organization_sia_subform].Form![id_organization] & ""
Select Case ID_Organization
Case "", "%"
    qdf.SQL = "EXEC proc_select_currentorganization"
Case Else
    qdf.SQL = "EXEC proc_select_currentorganization @idorganization=" & ID_Organization
End Select
...
Рейтинг: 0 / 0
Мелкие вопросы по SQL и Access
    #39405080
accsqlnew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
studieren,

Наконец получилось вызвать на форме нужную запись, осталось разобраться с тем, как на форме получить новую запись.

Спасибо за помощь.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Мелкие вопросы по SQL и Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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