|
横レス失礼します。
メインと各サブは「レシピ番号」でリンクされているのでしょうか?
リレーションシップを使ってはどうてしょうか?
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
|
|