4

ユーザー フォームのクラス モジュールで宣言されている ADO レコードセット変数があります。レコードセットはフォームの Activate イベントで開かれ、次のようなコードを使用してフォームの Terminate イベントで閉じようとしています。

Private Sub UserForm_Terminate()

If VersionIsReleased Then
    ThisWorkbook.Parent.Quit
Else

    If Not m_rs Is Nothing Then

        If m_rs.State = adStateOpen Then
            m_rs.Close
        End If

        Set m_rs = Nothing
    End If

    Close_CN g_cn
    ThisWorkbook.Application.Visible = True
End If

End Sub

この行m_rs.Closeは、「このコンテキストでは操作は許可されていません。」という実行時エラーを生成します。なぜこれが起こるのですか?

4

1 に答える 1

5

このエラーは、レコードセットを閉じようとしたときに編集中の場合に発生する可能性があります。使用AddNewまたは変更しFields().Valueた場合はUpdate、閉じる前に編集を保存してください。EditModeプロパティを調べて、レコードセットの状態を確認できます。

于 2013-04-16T15:08:29.890 に答える