powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сопоставить результат из ХП к Form.RecordSource?
24 сообщений из 24, страница 1 из 1
Как сопоставить результат из ХП к Form.RecordSource?
    #32726507
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, подскажите, как сопоставить результат из хранимой процедуры к Form.RecordSource

Private Sub Form_Current()
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
Dim prm As ADODB.Parameter
Dim SQLstr As String

If formIsLoaded("frmAnketa") Then
'On Error GoTo Err_OLEDBAddHandler

Set rst = New ADODB.Recordset
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = CurrentProject.Connection

cmd.CommandText = "uspAnswers_Done_ToDo"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Refresh

cmd.Parameters("@AnketaSectorID") = CStr(Nz(Me.AnketaSectorID.Value))
Set rst = cmd.Execute

Forms![frmAnketa].Controls![inc_frmEmployeeAns].Form.RecordSource = ???

Set rst = Nothing
Set cmd = Nothing
End If
'------
Exit Sub
Err_OLEDBAddHandler:
For Each errLoop In cmd.ActiveConnection.Errors
errStr = errLoop.Description
errCode = errLoop.Number
Next
cmd.ActiveConnection.Errors.Clear


Set rst = Nothing
Set cmd = Nothing
End Sub
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726532
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сама процедура как возвращает параметр?
select или output?
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726541
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726552
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так не пробовал?
Код: plaintext
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.
Private Sub Form_Current()
Dim rst As ADODB.Recordset
Dim SQLstr As String

If formIsLoaded("frmAnketa") Then
         'On Error GoTo Err_OLEDBAddHandler 
 
        Set rst = New ADODB.Recordset
        SQLstr = "EXEC uspAnswers_Done_ToDo '" & CStr(Nz(Me.AnketaSectorID.Value)) & "'"

        rst.Open SQLstr, CurrentProject.Connection
        
        Forms![frmAnketa].Controls![inc_frmEmployeeAns].Form.RecordSource =  rst
        
        Set rst = Nothing
        Set cmd = Nothing
    End If
 '------ 
Exit Sub
Err_OLEDBAddHandler:
    For Each errLoop In cmd.ActiveConnection.Errors
        errStr = errLoop.Description
        errCode = errLoop.Number
    Next
    cmd.ActiveConnection.Errors.Clear
    
    
    Set rst = Nothing
    Set cmd = Nothing
End Sub
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726557
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
typemismatch
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726559
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Витал
typemismatch
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726563
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон-с

Код: plaintext
Set Forms![frmAnketa].Controls![inc_frmEmployeeAns].Form.Recordset =  rst
или без рекордсетов

Код: plaintext
1.
SQLstr = "EXEC uspAnswers_Done_ToDo '" & CStr(Nz(Me.AnketaSectorID.Value)) & "'"
Forms![frmAnketa].Controls![inc_frmEmployeeAns].Form.RecordSource = SQLstr 
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726569
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Form.Recordset - "Object doesn't support this method"
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726578
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Forms![frmAnketa].![inc_frmEmployeeAns].RecordSource
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726595
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня работает. Попробуй

Set Forms("frmAnketa").inc_frmEmployeeAns.Form.RecordSet

Это ведь субформа?
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726596
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То же самое.
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726602
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, субформа. Хм, странно.
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726617
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set Forms("frmAnketa").inc_frmEmployeeAns.Form.RecordSet = rst? И это не проходит?

Широкое плечепожатие...

Надеюсь ADO подключено (галка в References стоит)?
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726621
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй тогда с RecordSource (17-15 писал)
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726622
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, подключено, работает. Сама ХП тоже рабочая.
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726625
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже не работает. Во вьюхе ХП нельзя ведь вызвать, чтобы из не по select данные забрать?
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726631
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, идти надо. Может завтра подключитесь к форуму в 10.00 по Москве?
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32726652
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как получиться.
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32727206
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Посмотрите эти топики, возможно поможет:

/topic/122733&pg=-1
и
http://am.rusimport.ru/MSAccess/f2.aspx?type=1&id=20841&page=-1
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32727332
Март
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, сработало
Forms![frmAnketa].Controls![inc_frmEmployeeAns].Form.RecordSource = "exec uspAnswers_Done_ToDo '" & CStr(Nz(Me.AnketaSectorID.Value)) & "',Null,'users'"

Почему раньше не работало? Х.знает. Видно был конец рабочего дня :)
Хм, вопрос в QueryAnalizer отрабатывает за доли секунды, а в Акцеце пашет 2 секунды, что так медленно визуальные компоненты отрабатывают?
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32727472
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бесплатная идея:
а еще можно из хранимой процедуры слить данныее во временную таблицу
и прецепить ее через рекордсет.

на днях понадобилось получить в форму результат
сопоставления результатов нескольких хранимок в одной форме,
причем предполагается модификация алгоритма в этих хранимках

сделал так:
из каждой хранимки инсерт во временную таблицу
открываю рекордсетом join между временными таблицами.
назначаю рекордсет форме.


Код: plaintext
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.
Private Sub Form_Open(Cancel As Integer)
Dim IdPlaning
Dim prj
Dim OA
Dim SumRS As New ADODB.Recordset


If Not IsNull(Me.OpenArgs) Then
OA = Split(Me.OpenArgs, "<next>", , vbTextCompare)
IdPlaning = OA( 0 )
prj = OA( 1 )
Else
Cancel = True
Exit Sub
End If


Conn.Open (CurrentProject.connection.ConnectionString)
Conn.Execute "create table #tmp_grafik (dolid int , sort_order int , findepid int  ,dolzhnost_name varchar(50), findep_name varchar(50), sumh int )"
Conn.Execute "create table #tmp_bg (dolid int ,  findepid int  , sumh int )"
Conn.Execute "create table #tmp_all_records (dolid int ,  findepid int   )"

Conn.Execute "insert into #tmp_bg (dolid ,  findepid , sumh ) select dolid , findep_id, sum(btime) from ts2.dbo.project_current_ver_time where btime <> 0 and prj ='" & prj & "' group by dolid , findep_id "
Conn.Execute "insert into #tmp_grafik (dolid, sort_order, findepid ,dolzhnost_name, findep_name, sumh ) exec dbo.pltime_by_dol  " & IdPlaning

Conn.Execute "insert into #tmp_all_records (dolid, findepid ) select dolid, findepid from  #tmp_bg union select dolid, findepid from  #tmp_grafik   "

RS.Open "select  dolzhnost_name, namefingroup  ,ar.* , (select sum(g.sumh) from  #tmp_grafik g where g.dolid = ar.dolid and g.findepid = ar.findepid ) as sum_grafik ,(select sum(bg.sumh) from  #tmp_bg bg where bg.dolid = ar.dolid and bg.findepid = ar.findepid ) as sum_bg   from #tmp_all_records ar " & _
" left join dbo.kadr_dozhnost on ar.dolid = id_kadr_dolzhnost " & _
" left join dbo.finctrl_fingroup on ar.findepid =idfingruop  order by findepid, sort_order", Conn, adOpenKeyset, adLockReadOnly
 
SumRS.Open "select (select sum(g.sumh) from  #tmp_grafik g  ) as sum_grafik ,(select sum(bg.sumh) from  #tmp_bg bg ) as sum_bg ", Conn, adOpenStatic, adLockReadOnly
Me.Isum_grafik = SumRS!sum_grafik
Me.Isum_bg = SumRS!sum_bg
SumRS.Close
Set SumRS = Nothing
 
 Do While RS.State And adStateFetching
    DoEvents
 Loop
RS.ActiveConnection = Nothing
Set Me.Recordset = RS
Conn.Close
Set Conn = Nothing

End Sub
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32727488
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКиз каждой хранимки инсерт во временную таблицу
открываю рекордсетом join между временными таблицами.
Это лучше сделать в отдельной ХП на SQL-сервере
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32727518
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Bagin

безусловно, только иногда бывает нужно сохранить логику в клиентской части

это как раз пример этого случая
...
Рейтинг: 0 / 0
Как сопоставить результат из ХП к Form.RecordSource?
    #32727738
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторэто как раз пример этого случая
Все равно изврат
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сопоставить результат из ХП к Form.RecordSource?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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