LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Процедура...
 Тема: Процедура в качестве источника строк списка
 
 15.06.2007 21:08:23
Kirill1
1 сообщения


Тема: Процедура в качестве источника строк списка
Проект в Access 2002. В качестве источника строк списка (поля со списком, формы и т. п.) указываю:

ИмяПроцедуры @ИмяПараметра = ЗначениеПараметра

Наивно ожидаю, что сервер (MS SQL) вернет набор записей. Ес-но получаю, что не существует источника записей "ИмяПроцедуры @ИмяПараметра = ЗначениеПараметра". Книжки остались дома, в хэлпе ответа не нашел. Помогите, кто знает, как указать в свойстве "источник строк" процедуру и передать ей параметр.
Всем заранее спасибо.
Кирилл


P.S. Обсуждение разных тем
Автор: Kirill от 12.05.2004 11:43:42 Источник ...
 15.06.2007 21:08:23
JohnWinterbottom
1 сообщения


RE: Процедура в качестве источника строк списка
От:John Winterbottom (john@nomorespam.com)
Тема:Re: stored procedure with param. as recordscource for a combobox (adp)


View this article only
Группы новостей:comp.databases.ms-access
Дата:2002-02-13 07:40:19 PST


a) Set the RecordSource property to:

exec , , ...


b) IMO the above is *not* the best way - reason, if you do this your project
will start opening all sorts of connections to the server, (run Profiler
while opening a bound form which also contains a combo box to see what I
mean). It's better, (again, only my opinion), to open and close recordsets
yourself in code. Kind of negates one of the benefits of Access Projects but
that's how it is. Anyway, the second way is to use a callback function like
so:

Private Function fListFillCombo(ctl As Control, varID As Variant, lngRow As
Long, _
lngCol As Long, intCode As Integer) As Variant

Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
Dim rst As ADODB.Recordset
Static aData As Variant
Static lngRows As Long
Dim varret As Variant

On Error GoTo ErrHandler
Select Case intCode

Case acLBInitialize
Set cmd = New ADODB.Command
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = ""
Set prm = cmd.CreateParameter("@Param1", adInteger,
adParamInput, , Value)
cmd.Parameters.Append prm
Set rst = New ADODB.Recordset
rst.Open cmd, , adOpenForwardOnly, _
adLockReadOnly, adCmdStoredProc
If Not rst.EOF Then
aData = rst.GetRows()
lngRows = UBound(aData, 2) + 1
Else
lngRows = 0
End If
rst.Close
Set rst = Nothing
Set cmd = Nothing
varret = True



P.S. Обсуждение разных тем
Автор: John Winterbottom от 12.05.2004 14:34:39 Источник ...
 15.06.2007 21:08:23
All
4316 сообщения
1-ый


RE: Процедура в качестве источника строк списка
Вообще заполнение списков и для mdb проекта - "головная боль". Если их много на форме, то процесс открытия ее сильно замедляется. Поэтому списки заполнять лучше только по мере обращения к ним.


P.S. Обсуждение разных тем
Автор: Admin от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Процедура...
ПоискПоиск  Список форумовСписок форумов  
right