電子書籍の厳選無料作品が豊富!

Windows98 ACCESS2000を使用しています。
よく強制終了になったり、"2486 現在このアクションは実行出来ません"などのエラーが頻繁に出て困っています。
削除をした後にエラーになる事が多いので、多分これが原因なのではと思います。
顧客情報フォームというメインフォームに、支店、事業概要、賃金…などの複数のタブがあり、それぞれにサブフォームとサブフォームに対して登録ボタンと削除ボタンが貼り付けてあります。

Private Sub cmd支店削除_Click()

Dim rs As DAO.Recordset

If Me!sub支店.Form.Recordset.recordcount = 0 Then
MsgBox ("削除するレコードはありません。")
Exit Sub
End If

Set rs = Me!sub支店.Form.Recordset.Clone
rs.Bookmark = Me!sub支店.Form.Bookmark

ret = MsgBox("表示中のレコードを削除します。よろしいですか?", _
vbOKCancel + vbQuestion + vbDefaultButton2, "削除")
Select Case ret
Case vbOK
rs.Delete
Me!sub支店.Form.Requery
Case vbCancel
End Select

rs.Close: Set rs = Nothing

End Sub

Private Sub cmd支店登録_Click()

If IsNull(Me!cbo顧客.Value) Then
MsgBox "顧客名を選択して下さい。"
Exit Sub
Else
DoCmd.OpenForm "F支店登録", acNormal
End If

End Sub
という風に書いてあるのですが、たくさんサブフォームがあるのでブックマークのつけ方がおかしいのでは?と思うのですがさっぱり分かりません。よろしくお願いします。

A 回答 (3件)

Accessのデータベースウィンドウが表示される状態で起動して


メニュー→ツール→マクロ→VisualBasic Editor
を起動させてメニューにあるデバッグのプルダウンメニューにそのデータベース名のコンパイルと表示されますのでコンパイルすれば断ち切れているイベントがメッセージと一緒に出てコンパイル出来ない記述がマーキングされます。
そのイベントが必要でなければ削除して修正が必要でなれば修正して再コンパイルしていけば不必要な記述は除いていけます。

この回答への補足

コンパイルは終了しました。
でもやはり削除を繰り返すと突然、「現在実行しているコードはリセットされます」というエラーメッセージが出て、強制終了になってしまいます。

タブの中にサブフォームが2つあったりするので、もしかするとどのレコードを削除すればいいのか判断出来ていないのでしょうか?

補足日時:2002/06/25 15:51
    • good
    • 0

よくわかりませんが


>Me!sub支店.Form.Requery
もし関連するサブフォームがあるなら全てRequeryする必要があるんじゃないでしょうか。

この回答への補足

お返事ありがとうございました。
いろいろとしてみたのですが、やはり駄目でした。
強制終了になるのは、タブにサブフォームが2つ以上表示している場合になっていると思われるので、もしかしたらサブフォームのデータをクリックしないで、削除ボタンをクリックしたために、どのレコードがカレントレコードなのか判断できずにエラーになっているのでは?と思ったのですが、削除ボタンをクリックした時にどのサブフォームにフォーカスがあって、カレントレコードがどれなのか分かる方法はあるでしょうか?

補足日時:2002/06/26 15:22
    • good
    • 0

削除によってメソッドやデータメンバが途切れている状態なのではないでしょうか?


一度全てコンパイルしてみてはどうでしょう。

この回答への補足

お返事ありがとうございます。
>一度全てコンパイルしてみてはどうでしょう。
コンパイルの仕方がどうしたらいいのかよく分からないのですが、よろしければ教えて頂けないでしょうか?

補足日時:2002/06/25 12:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す