- ベストアンサー
アクセスのエラーメッセージについて
- アクセスのエラーメッセージについて教えてください。
- 売上管理フォーム作成中にエラーメッセージが表示されました。
- リレーションシップ設定時のエラーメッセージが理由不明でした。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(1): 同一モジュール内に「終了_Click」というプロシージャが複数あるのではないでしょうか。 (オートフォームで作成したのに、なぜそういうことになったのかはわかりませんが(汗)) VBE画面(コード編集画面)を開いたら、キーボードのCtrl+Fキーなどで検索画面を出し、 『検索する文字列(F)』に「終了_Click」を、『対象』に「カレント モジュール(M)」をそれぞれ 指定して検索してみて下さい。 (2): 例えば以下の2つのテーブルがあって、それぞれの『MID』フィールドに、参照整合性ありで 「一対多」のリレーションシップを設定していた場合、 『種別』テーブル: MID 種別名 1 果物 2 野菜 3 魚介 『詳細』テーブル: ID MID 品名 1 1 りんご 2 1 みかん 3 2 大根 4 2 人参 5 3 ブリ 6 3 マグロ 「一対多」の「一」側である『種別』テーブルで、「野菜」のMIDを「2」から「0」に編集したり、 「野菜」のレコードを削除したりしようとすると、ご質問の場合と同様のエラーが発生します。 ただ、このエラーは、新規レコードへの入力時には発生しないはずなので・・・「新規レコード のように見えて実際は新規ではない(=空白に見えるデータが入った)レコード」がある、 のかもしれません。 (・・・この場合、「そのデータとリレーション関係にあるデータ」というのの正体が不明ですが(汗)) とりあえず、そのフォームを開いたときに確実に新規レコードになるようにするには、 a)フォームをデザインビューで開き、プロパティシートの『データ』タブで『データ入力用』 を「はい」にするか、 b)フォームを開く時にデータ入力モードを指定する ・マクロであれば、マクロのデザインビューで『フォームを開く』アクションの行を選択し、 左下の『データモード』で「追加」を選択 ・VBAであれば、「DoCmd.OpenForm」の5番目の引数(DataMode)に「acFormAdd」を指定 のいづれか都合のよい方を行います。 (「既存データを表示した上で新規レコードに移動」という方法もありますが、非効率なので 割愛) なお、上記のようなテーブル関係にある場合は、フォームのレコードソースは「多」側の 『詳細』テーブルを使用し、『種別』テーブルの情報はコンボボックスで表示、という形に した方が、(既存データの編集時も含めて)今回のようなエラーを起こさないですみます ので、参考まで。
お礼
DexMachina様 とても丁寧な解答ありがとうございました 出来上がったテキストボックスを一度消して作り直したので 新規ではないからエラーが出たのでしょうか? テキストボックスの名前が違っていました とても分かりやすい解答をいただき助かりました ありがとうございました