本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC2] フォームのレコードセットをすべて削除した時の動作

文書番号: 404046

最終更新日: 1998/02/03


この資料は以下の製品について記述したものです。

この記事は、以前は次の ID で公開されていました: JP404046

概要

[規定の入力モード / DefaultEditing] プロパティを 「レコードの追加禁止」 に設定したフォームで、そのフォームのレコードセットのレコードを、Delete メソッドを使用してすべて削除すると、フォーム上のコントロールをマウスで選択できなくなる現象が発生します。この現象と回避方法を紹介します。

現象

現象

[規定の入力モード / DefaultEditing] プロパティを 「レコードの追加禁止」 に設定したフォームを作成します。フォーム フッターにコマンド ボタンを配置し、 [クリック時/OnClick] プロパティに、下記のプロシージャを作成します。プロシージャでは、フォームのレコードセットからすべてのレコードを、Delete メソッドを使用して削除します。
フォームビューから、コマンド ボタンをクリックしてレコードセットのレコードをすべて削除すると、フォーム上に配置しているコントロールが、マウスで選択できなくなります。
  ----------------------------------------------------------
  Sub ボタン 0_Click()
      Dim rs As Recordset
      Set rs = Me.RecordsetClone
      For i = 1 To rs.recordcount
          rs.MoveFirst
          rs.Delete
      Next
  End Sub
  ----------------------------------------------------------

原因

レコードの追加を禁止したフォームに対して、レコードセットのレコードを Delete メソッドで削除した場合、すべてのレコードが削除されると、上記現象が発生します。

回避方法

レコードの削除を実行する際、モジュールではなく、マクロのアクションを使用します。 マクロのサンプル:
  ●マクロを作成する場合
    アクション     アクションの引数
    メッセージの設定   メッセージの表示: [いいえ]
    メニューの実行     メニューバー: [フォーム]、メニュー名: [編集]、
                       コマンド: [レコードの選択]
    メニューの実行     メニューバー: [フォーム]、メニュー名: [編集]、
                       コマンド: [削除]
  ●同じ動作をモジュールで DoCmd を使用して行う場合
  --------------------------------------------------------------------------
  Sub ボタン 0_Click()
    DoCmd メニューの実行 A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A
    _MENU_VER20
    DoCmd メニューの実行 A_FORMBAR, A_EDITMENU, A_DELETE_V2, , A_MENU_VER20
  End Sub
  --------------------------------------------------------------------------

Keywords: KBBUG KB404046
Technology: kbAccess200 kbAccessSearch

inserted by FC2 system