ACCESSでリレーションを張ったときに「未定義」になる原因がやっとわかった。memorandumsスマートフォン用の表示で見るmemorandums日々の作業ログです。ACCESSでリレーションを張ったときに「未定義」になる原因がやっとわかった。情けない2017-10-02ACCESSでリレーションを張ったときに「未定義」になる原因がやっとわかった。情けないoffice2年生対象のデータベース演習という科目をサブとして担当しています。サブというのは授業計画などはメインの先生(講義科目も担当されている先生)にお任せして演習授業で学生指導などを行うという意味です。授業ではRDBの基礎を学習しSQLの習得がメインとなっています。メインの先生のお考えで、いきなりテーブル操作をSQLで勉強するより、テーブルを視覚的にあらわすACCESSを最初にやった方がよい、という方針で最初の3、4回程度でACCESSの初歩を学習します。これまで5、6年くらい担当してきたのですが、他のOffice製品に比べるとACCESSは操作上の縛り(エラーが表示されて進めなくなるケース)があるのですが、前述のように学習のメインではないので、対処療法的なことで逃げてきました。今年も後期から本科目がスタートし、本日、第2回目でACCESSの操作方法の基礎を演習したのですが、タイトルのような事例が発生しました。これは毎年、発生するのですが、どういうわけかこの原因を調べずにきました。さきほど帰りの電車で調べてみたらわかったんですね。早く調べればよかった。2つのテーブル間でリレーションを張ったときに「未定義」と表示されることがあります。ぐぐると対処方法がすぐに見つかります。対処方法:インデックスを「はい(重複なし」」にしろでも、なぜ未定義になるかはなかなか見つかりませんでしたが、やっと以下を見つけました。detail.chiebukuro.yahoo.co.jp結合したフィールドの少なくともどちらか一方は主キーである必用があります。これでわかる方は以下を読む必要はありません。以下の例で再現してみました。IDを除くすべての項目は「短いテキスト型」です。テーブル1のaとテーブル2のaをリンクすると以下のように「未定義」になります。この状態で相互参照をチェックすると以下のエラーメッセージが表示されます。このメッセージを何度みたことか。そのときになって思い出します。そのときは「インデックスなんて張ってないしなんでこんなメッセージが表示されるのかな?内部状態がおかしいのだろうか?」と思っていました。上記の知恵袋の回答をみればこのメッセージの意味もよくわかります。主キーに設定していない項目はデフォルトではインデックスは「いいえ」になります。主キーでない項目にインデックスを張る意味はありません。逆に、主キーに設定すると自動的にインデックスは「はい(重複なし)」に設定されます。ぐぐったら出てくる対処療法の「インデックスはっとけ」というのは1つの手であって、主キーとして設定されていない項目であってもインデックスを「あり(重複なし)」としていればユニークな項目として認識されるため「一対多」になるわけですね。上記の例のテーブル1のaとテーブル4のaの間にリレーションを張ると、「1対多」と表示されます。テーブル4のaは主キーなのでインデックスは「あり(重複なし)」です。これは当然うまく行きます。主キーでもない項目間にリレーションを張ろうとするのか?一言で言えば、主キーを設定し忘れた項目間でリレーションを張ろうとした、が思いつきます。本当かどうかは実際に起きたときに確認してみないとわかりませんが。あと、上記の例のテーブル1のaとテーブル3のaを結んだときにも「未定義」になります。cの複合キーなのですが、この場合、aのインデックスは「いいえ」となるためてす。複合キーでは単一項目にインデックスを貼っても意味ないですからね。当然の動作と思います。いうことで次週より明確な対応ができますね。20:09ACCESSでリレーションを張ったときに「未定義」になる原因がやっとわかった。情けない広告を非表示にする関連記事2017-05-08ControlP5のsetTextでjava.lang.StringIndexOutOfBounds...Processingはプログラミングでアニメーションやインタラクティ...2017-02-08非常勤先の定期試験の採点を終えて非常勤講師として、ある看護学校の科目を担当しています。授業...2017-01-17NHKニュースのRSSからXMLを取得してProcessingでパースするサンプル卒業研究も大詰めです。sampleを10.9でビルドし...Perfumeの有名なサイトがありましたね。»プロフィールid:ke_takahashiソフトウェア開発、工作、面白ガジェットに興味があります。(1)はてなブログをはじめよう!ke_takahashiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。