powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выполнение нескольких хранимых процедур (Access & SQL)
5 сообщений из 5, страница 1 из 1
Выполнение нескольких хранимых процедур (Access & SQL)
    #39429430
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ниже приведенном коде, 1-ый и 2-ой блок по отдельности работают,
но как только пытаюсь их вместе включить, появляется следующая ошибка " Object variable or With block variable not set ".
Не понимаю, что здесь может мне мешать.

Private Sub cmd_add_Click()
Код: vbnet
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.
Private Sub cmd_add_Click()
On Error GoTo Er
Dim idpath As String
idpath = Forms![gamokvleva_add]![idpatient_history]
Dim t As Currency
t = Nz(DMax("nomer", "dbo_baza", "id_patient_history=" & idpath), 0) + 1

' ----------------------------------------  1-ый блок
Call OpenProcSql_In
If (Forms![gamokvleva_add]![check_other] = -1) Then
    qdf.SQL = "Exec proc_insert_baza_1 @idpathistory=" & idpath & ", @nomer=" & t & ", @idregtest=" & Me.id_registration_test
Else
    qdf.SQL = "Exec proc_insert_baza_2 @idpathistory=" & idpath & ", @nomer=" & t & ", @idregtest=" & Me.id_registration_test
End If
qdf.ReturnsRecords = False
Call OpenProcSql_Out


' ---------------------------------------- 2-ой блок
Call OpenProcSql_In
If Forms![gamokvleva_add]![numsqesi] = 1 Then
   qdf.SQL = "EXEC proc_insert_bazapatienttests_1 @idpathistory=" & idpath & ", @idregtest=" & Me.id_registration_test
Else
   qdf.SQL = "EXEC proc_insert_bazapatienttests_2 @idpathistory=" & idpath & ", @idregtest=" & Me.id_registration_test
End If
qdf.ReturnsRecords = False
Call OpenProcSql_Out


' ---------------------------------------- 
Call OpenProcSql_In
    Dim rst As DAO.Recordset
    Set dbsReport = CurrentDb
    Set qdf = dbsReport.QueryDefs("sproc_summa_idpathistory_fasi")
        qdf.SQL = "EXEC proc_summa_idpathistory_fasi @idpathistory=" & idpath
        qdf.ReturnsRecords = True
    Set rst = qdf.OpenRecordset(dbOpenSnapshot)
Dim dsumma As Currency
dsumma = rst.Fields(0)
Call OpenProcSql_Out

    Dim t1 As Currency
        t1 = dsumma - (dsumma * (Nz(Forms![registratura_newedit]![procent]))) / 100
    Call OpenProcSql_In
    If (Nz(Forms![registratura_newedit]![procent]) = 0) Then
        qdf.SQL = "EXEC proc_update_gamokvleva_add_1 @idpatienthistory=" & idpath & ", @salarostanxa=" & t1
    Else
        qdf.SQL = "EXEC proc_update_gamokvleva_add @idpatienthistory=" & idpath & ", @salarostanxa=" & t1
    End If
    Call OpenProcSql_Out
    
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_select_baza")
    qdf.SQL = "EXEC proc_select_baza @idpathistory=" & idpath
    qdf.ReturnsRecords = True
    Forms![registratura_newedit]![registratura_newedit_subform].Form.RecordSource = "sproc_select_baza"
    Forms![registratura_newedit]![salaros_tanxa].Requery
    Forms![registratura_newedit]![baratis_tanxa].Requery
    
Ex: Exit Sub
Er: MsgBox Err.Description
    Resume Ex
End Sub



OpenProcSql_In /// OpenProcSql_Out

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public qdf As QueryDef
Public frm As Form
Public dbsReport As DAO.Database
Public rstReport As DAO.Recordset

Function OpenProcSql_In()
    qdf.Connect = "ODBC;" & _
            "Driver={SQL Server Native Client 11.0};" & _
            "Server=SQL;" & _
            "Database=HHHHH; UID=SSS; PWD=PPPPPPPPP;" & _
            "Trusted_Connection=yes;"
End Function

Function OpenProcSql_Out()
    qdf.ReturnsRecords = False
    qdf.Execute dbFailOnError
    Set qdf = Nothing
    Set dbsReport = Nothing
End Function


...
Рейтинг: 0 / 0
Выполнение нескольких хранимых процедур (Access & SQL)
    #39431449
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NickBell,
попробуйте так
Код: vbnet
1.
2.
3.
4.
Function OpenProcSql_Out()
    qdf.ReturnsRecords = False
    qdf.Execute dbFailOnError
End Function



функции OpenProcSql_In и OpenProcSql_Out в том же модуле , что и cmd_add_Click ?
...
Рейтинг: 0 / 0
Выполнение нескольких хранимых процедур (Access & SQL)
    #39431723
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NickBell,
вообще , не понятно, как оно у вас работало ? где в 1-м и 2-м блоке SET qdf = ... ?
...
Рейтинг: 0 / 0
Выполнение нескольких хранимых процедур (Access & SQL)
    #39432409
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimportNickBell,
попробуйте так
Код: vbnet
1.
2.
3.
4.
Function OpenProcSql_Out()
    qdf.ReturnsRecords = False
    qdf.Execute dbFailOnError
End Function



функции OpenProcSql_In и OpenProcSql_Out в том же модуле , что и cmd_add_Click ?


Функции OpenProcSql_In и OpenProcSql_Out находятся в отдельном модуле и он является общим для всех остальных.

Сейчас к сожалению не могу попасть на сервер, чтобы проверить кое-что.
...
Рейтинг: 0 / 0
Выполнение нескольких хранимых процедур (Access & SQL)
    #39432439
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае SET qdf ничего не присваивала, у меня он и без этого работал для одной операции, хотя сейчас он не сработал, как только вы удивились ... )
Сейчас уже ночь, лучше завтра продолжу проверку.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выполнение нескольких хранимых процедур (Access & SQL)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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