| 
    
     |  | 横レス失礼します。 
 メインと各サブは「レシピ番号」でリンクされているのでしょうか?
 
 リレーションシップを使ってはどうてしょうか?
 F料理名のレコードソースのテーブルをデザインビューで開き「レシピ番号」
 フィールドを主キーにしてください。(テーブル名を仮にT_料理名とします)
 
 F材料のレコードソースとなるテーブル名を仮に「T_材料」、F手順のレコー
 ドソースとなるテーブル名を仮に「T_手順」とします。
 
 メニュー>ツール>リレーションシップを開くとウィンドウが開きます。
 既に何かある場合は無視してください。(システム上のものなので)
 メニュー>リレーションシップ>テーブルの表示で「テーブルの表示」がでま
 すので、ここで「T_料理名」「T_材料」「T_手順」を選択して追加してくだ
 さい。
 
 主キーのある「T_料理名」の「レシピ番号」フィールドをドラッグアンドド
 ロップで「T_材料」の「レシピ番号」フィールドに落とすと「リレーション
 シップ」ダイアログが開きますので、「参照整合性」にチェックを入れて、
 「レコードの連鎖削除」にもチェックを入れて作成ボタンを押してください。
 
 「T_料理名」の「レシピ番号」フィールド側に「1」、「T_材料」の「レシ
 ピ番号」フィールド側に「∞」が付きます。同様に「T_手順」の「レシピ番
 号」フィールドのほうも作成して、リレーションシップウィンドウを閉じて
 保存してください。
 
 これで「T_料理名」の「レシピ番号」フィールドが削除されると自動的に
 「T_材料」「T_手順」の「レシピ番号」フィールドの同じ値のレコードが
 削除されます。
 
 よって「2」メッセージをオフにする処理を追加すると以下のようになります。
 
 Private Sub キャンセル_Click()
 On Error Resume Next
 DoCmd.SetWarnings False
 Echo False
 RunCommand acCmdUndo
 Echo True
 DoCmd.SetWarnings True
 End Sub
 
 以下の部分は先程のリレーションの「連鎖削除」で補えますので
 要らないかと思います。
 
 Me!F材料.SetFocus
 RunCommand acCmdUndo
 Me!F手順.SetFocus
 RunCommand acCmdUndo
 Me!キャンセル.SetFocus
 
 |  |