Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сопоставить результат из ХП к Form.RecordSource? / 24 сообщений из 24, страница 1 из 1
06.10.2004, 16:54:30
    #32726507
Март
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
Привет, подскажите, как сопоставить результат из хранимой процедуры к 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
06.10.2004, 17:02:28
    #32726532
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
сама процедура как возвращает параметр?
select или output?
...
Рейтинг: 0 / 0
06.10.2004, 17:08:28
    #32726541
Март
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
select
...
Рейтинг: 0 / 0
06.10.2004, 17:12:55
    #32726552
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
так не пробовал?
Код: 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
06.10.2004, 17:14:13
    #32726557
Март
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
typemismatch
...
Рейтинг: 0 / 0
06.10.2004, 17:14:40
    #32726559
Март
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
2 Витал
typemismatch
...
Рейтинг: 0 / 0
06.10.2004, 17:15:33
    #32726563
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
Пардон-с

Код: 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
06.10.2004, 17:17:26
    #32726569
Март
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
Form.Recordset - "Object doesn't support this method"
...
Рейтинг: 0 / 0
06.10.2004, 17:21:31
    #32726578
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
Forms![frmAnketa].![inc_frmEmployeeAns].RecordSource
...
Рейтинг: 0 / 0
06.10.2004, 17:24:36
    #32726595
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
У меня работает. Попробуй

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

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

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

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

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

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

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

сделал так:
из каждой хранимки инсерт во временную таблицу
открываю рекордсетом 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
07.10.2004, 11:10:43
    #32727488
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
АлексейКиз каждой хранимки инсерт во временную таблицу
открываю рекордсетом join между временными таблицами.
Это лучше сделать в отдельной ХП на SQL-сервере
...
Рейтинг: 0 / 0
07.10.2004, 11:20:49
    #32727518
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сопоставить результат из ХП к Form.RecordSource?
2 Bagin

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

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


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