Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9734 / 9994 ←次へ | 前へ→

【3396】Re:メイン&サブフォームの非保存終了
回答  クロ  - 04/9/3(金) 16:25 -

引用なし
パスワード
   横レス失礼します。

メインと各サブは「レシピ番号」でリンクされているのでしょうか?

リレーションシップを使ってはどうてしょうか?
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
1,226 hits

【3393】メイン&サブフォームの非保存終了 mako 04/9/3(金) 11:20 質問
【3394】Re:メイン&サブフォームの非保存終了 YU-TANG 04/9/3(金) 14:40 回答
【3395】Re:メイン&サブフォームの非保存終了 mako 04/9/3(金) 15:50 質問
【3396】Re:メイン&サブフォームの非保存終了 クロ 04/9/3(金) 16:25 回答
【3398】Re:メイン&サブフォームの非保存終了 mako 04/9/3(金) 17:19 発言
【3484】Re:メイン&サブフォームの非保存終了 mako 04/9/10(金) 13:47 お礼

9734 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078299
(SS)C-BOARD v3.8 is Free