Microsoft Access 掲示板

OLEオブジェクトのアプリが閉じたときに、連結オブジェクトフレームのLockedをTrueにしたい。 / 2

10 コメント
views
4 フォロー
2

連結オブジェクトフレームでOLEオブジェクトを開いて編集したり閉じるときに更新時イベントが発生するようです。
閉じるときには、Code引数が2になるようです。
上記を利用して閉じたことを検知できそうです。

ただし、更新時イベントでは、更新中なので Locked = True にはできないので、タイマー時イベントで時間を遅らせてロックするようします。

簡単なサンプルの実験では下記のようなコードでうまくいっているようです。
連結オブジェクトフレームの名前は xlsData としています。

Private Sub Form_Timer()
    Me.TimerInterval = 0 'タイマー時イベント停止
    Me.Refresh           'レコード保存
    Me.xlsData.Locked = True
End Sub

Private Sub xlsData_Updated(Code As Integer)
    Select Case Code
    Case 0, 1
        Me.xlsData.Locked = False
    Case 2
        Me.TimerInterval = 10 '0.01秒後にタイマーイベント発動
    End Select
End Sub

連結オブジェクトフレームは普段使ったことがなく、今回、初めて簡単なサンプルで実験しただけなので、実際に使うときはしっかりと動作検証してから使ってください。

通報 ...