Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: VBA-2003
 
 автор: alecks_lp   (18.02.2008 в 10:52)   личное сообщение
 
 

На закрытие формы запоминаю ключевое поле текущей записи

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


На последней строке пишет "объект задан неверно или более не существует"
Выручайте.

  Ответить  
 
 автор: osmor   (18.02.2008 в 11:09)   личное сообщение
 
 

что во "внешней процедуре", выносите код за пределы модуля формы?

  Ответить  
 
 автор: alecks_lp   (18.02.2008 в 11:55)   личное сообщение
 
 

<выносите код за пределы модуля формы> Да, это так.

Public Property Let DbProperty(obj As Object, strPrpName As String, ByVal vNewValue As String)

обычная процедура добавления свойства

  Ответить  
 
 автор: alecks_lp   (18.02.2008 в 12:04)   личное сообщение
 
 

странно. если передать CurrentDb.Containers("Forms").Documents(Me.Name), то не ругается. Если передать obj, то выдаёт ошибку.

  Ответить  
 
 автор: osmor   (18.02.2008 в 12:06)   личное сообщение
 
 

что-то не пойму....
Вы создаете свойство DbProperty, на уровне модуля формы?

  Ответить  
 
 автор: alecks_lp   (18.02.2008 в 12:15)   личное сообщение
 
 

<Вы создаете свойство DbProperty, на уровне модуля формы?>-нет. Процедура одна, для всех форм, в отдельном модуле

  Ответить  
 
 автор: alecks_lp   (18.02.2008 в 12:21)   личное сообщение
 
 

на закрытие я хочу
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, то выдаёт ошибку. Ничего не понял.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList