|
|
|
| На закрытие формы запоминаю ключевое поле текущей записи
Private Const CURRENT_PERSONNEL As String = "CurrentPersonnel"
Private Sub Form_Close()
Dim strString As String
Dim prp As Object
Dim obj as Object
strString = Trim(str(PersonnelID))'Текущее значение ключевого поля
Set prp = CurrentDb.Containers("Forms").Documents(Me.Name).CreateProperty(prp)
prp.Name = CURRENT_PERSONNEL
prp.Type = dbText
prp.Value = strString
CurrentDb.Containers("Forms").Documents(Me.Name).Properties.Append prp
End Sub
|
Код - Работает - без проблем
Теперь пытаюсь создать объект для передачи и обработки во внешней процедуре
Private Sub Form_Close()
Set obj=CurrentDb.Containers("Forms").Documents(Me.Name)
Set prp = obj.CreateProperty(prp)
prp.Name = CURRENT_PERSONNEL
prp.Type = dbText
prp.Value = strString
obj.Properties.Append prp
End Sub
|
На последней строке пишет "объект задан неверно или более не существует"
Выручайте. | |
|
| |
|
|
|
| что во "внешней процедуре", выносите код за пределы модуля формы? | |
|
| |
|
|
|
| <выносите код за пределы модуля формы> Да, это так.
Public Property Let DbProperty(obj As Object, strPrpName As String, ByVal vNewValue As String)
|
обычная процедура добавления свойства | |
|
| |
|
|
|
| странно. если передать CurrentDb.Containers("Forms").Documents(Me.Name), то не ругается. Если передать obj, то выдаёт ошибку. | |
|
| |
|
|
|
| что-то не пойму....
Вы создаете свойство DbProperty, на уровне модуля формы? | |
|
| |
|
|
|
| <Вы создаете свойство DbProperty, на уровне модуля формы?>-нет. Процедура одна, для всех форм, в отдельном модуле | |
|
| |
|
|
|
| на закрытие я хочу
DbProperty(obj, CURRENT_PERSONNEL)=strString
а на загрузку
strString=DbProperty(obj, CURRENT_PERSONNEL)
<<>>
Вот что получил. Если если передать CurrentDb.Containers("Forms").Documents(Me.Name), то работает. Если Set obj=CurrentDb.Containers("Forms").Documents(Me.Name), и передать obj, то выдаёт ошибку. Ничего не понял. | |
|
| |