With block variable not set. Ошибка в процедуре.

Промешан
Дата: 29.12.2011 16:54:09
MSA2010, ADODB.Connection

1. Насколько правильно вызывать метод формы через имя модуля формы?
2. Почему происходит ошибка в модуле Form_FSmeta в методе GetList, на последней строке (Me.Recordset)?
дебагер показывает что rst = Nothing.
Программист-Любитель
Дата: 29.12.2011 16:55:21
1. см. ФАК
2. см. ФАК
Промешан
Дата: 29.12.2011 16:59:05
Программист-Любитель
1. см. ФАК
2. см. ФАК
Какой именно?
Guest33
Дата: 29.12.2011 17:23:10
2. Во-первых,
set Me.Recordset = Rst

Во-вторых при получении рекордсета из ХП иногда надо использовать НекстРекордсет: 11617053
1. У метода ДоКмд.ОпенФорм есть последний аргумент ОпенАргс
автор
OpenArgs Optional Variant. A string expression. This expression is used to set the form's OpenArgs property. This setting can then be used by code in a form module, such as the Open event procedure. The OpenArgs property can also be referred to in macros and expressions.

Процедуру ГетЛист лучше вызывать из процедуры загрузки формы ФСмета, а необходимые параметры передавать через ОпенАргс (в виде строки, которую можно разделить на части методом Split (см f1))
Промешан
Дата: 29.12.2011 17:51:13
Guest33
2. Во-первых,
set Me.Recordset = Rst

Во-вторых при получении рекордсета из ХП иногда надо использовать НекстРекордсет: 11617053
1. У метода ДоКмд.ОпенФорм есть последний аргумент ОпенАргс
автор
OpenArgs Optional Variant. A string expression. This expression is used to set the form's OpenArgs property. This setting can then be used by code in a form module, such as the Open event procedure. The OpenArgs property can also be referred to in macros and expressions.

Процедуру ГетЛист лучше вызывать из процедуры загрузки формы ФСмета, а необходимые параметры передавать через ОпенАргс (в виде строки, которую можно разделить на части методом Split (см f1))

2. А ничего что дебагер показывает что rst = nothing?
1. Предполагал и даже прочитал про OpenArgs и даже попробовал, только в Form_Load не заходит :( Только в Form_Open, где пишет что неопределен метод или аргумент процедуры (я так понимаю что аргумент процедуры Cancel).

А если делать через OpenArgs, то к какому аргументу взывать в самой форме?
Guest33
Дата: 29.12.2011 18:17:06
1)
Private Sub Кнопка6_Click()
    DoCmd.OpenForm "t", , , , , , "klop" & Chr(160) & "toto"
End Sub

Private Sub Form_Close()
Debug.Print "3", Split(Me.OpenArgs, Chr(160))(0)
End Sub

Private Sub Form_Load()
Debug.Print "2", Split(Me.OpenArgs, Chr(160))(0)
End Sub

Private Sub Form_Open(Cancel As Integer)
Debug.Print "1", Split(Me.OpenArgs, Chr(160))(0)
End Sub

1             klop
2             klop
3             klop


2)
автор
А ничего что дебагер показывает что rst = nothing

Не знаю. У меня обычно бывает rst.state=0
Вставте цикл с НекстРекордсет из примера по ссылке и попробуйте. А вообще ХП возвращает набор?
Промешан
Дата: 29.12.2011 18:23:21
Guest33,

Благодарю за помощь с Set и OpenArgs (с ними завтра попробую, если что буду писать - в примере все предельно просто и доступно впрочем)
Рекордсет естественно возвращает набор, но все равно остается Nothing, хотя теперь и показывает данные на форме.
Пока не понятно почему в Form_Load не заходит, но завтра думаю с этим тоже разберусь.

Благодарю.
Guest33
Дата: 29.12.2011 18:27:38
автор
А ничего что дебагер показывает что rst = nothing

Наврал. Если Насинг, то он в цикл не войдет и некстрекордсет не сделает (что логично).
Разбирайтесь с хранимкой и открытием рекордсета.