Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : Access 2016)
フィールドにルックアップの設定の仕方
投稿日時: 20/05/18 14:51:10
投稿者: Cyber033

フィールドに後からデータ型をルックアップフィールドの設定した場合、すでに入力
済のフィールドデータは無くなってしまいますが、そのすでに入力済のフィールド値
は残してルックアップフィールドに設定する方法はあるのでしょうか。

回答
投稿日時: 20/05/29 10:06:07
投稿者: sk

引用:
フィールドに後からデータ型をルックアップフィールドの設定した場合、
すでに入力済のフィールドデータは無くなってしまいます

「なくなっている」のではなく、「見えなくなっている」だけでしょう。
 
・そのフィールドの表示コントロールがコンボボックスであり、
 [列幅]プロパティの設定によってリストの 1 列目(連結列)の値を
 表示しないようになっている(リストの 2 列目の値を表示している)。
 
・コンボボックスの値集合ソースであるテーブルに
 主キーの値が連結列の値とマッチするレコードが 1 件もないか、
 もしくは主キーではないフィールドをコンボボックスの連結列として指定している。

投稿日時: 20/06/01 10:27:23
投稿者: Cyber033

テーブルのフィールドにドロップダウンリスト表示するテーブルを指定し、実際にその
リストが表示され、最後に保存するときに〇〇件のデータが失われましたと表示され
データシートビューを開くとルップアップ設定したフィールドデータが全部なくなって
います。それでもデータがなくなっているのではなく、見えなくなっているのでしょうか。

回答
投稿日時: 20/06/01 10:58:44
投稿者: sk

引用:
テーブルのフィールドにドロップダウンリスト表示するテーブルを指定し、
実際にそのリストが表示され、最後に保存するときに〇〇件のデータが
失われましたと表示されデータシートビューを開くとルップアップ設定した
フィールドデータが全部なくなっています。

例えば、「元はテキスト型のフィールドだったが、結合先のテーブル側の
主キーのデータ型に合わせて、テキスト型から数値型に変更された
ということであれば、そのフィールドに対して「数値型に変換できない文字列」が
格納されていた場合にデータの欠落が発生します。
 
もしそうだとすると、まずテーブル設計が全体的に誤っているのではないかと。
 
引用:
それでもデータがなくなっているのではなく、見えなくなっているのでしょうか。

とりあえず、そのフィールドの値が Null であるレコードを抽出する
選択クエリの実行結果を確認してみて下さい。

投稿日時: 20/06/01 11:34:03
投稿者: Cyber033

ご指摘の通りはじめフィールドのデータ型はテキストにしてあり、そのフィールドに
テキストを書き込んだ後に、ルックアップ設定にした方が入力しやすいことに気づき
後からデータ型をルップアップ設定をしました。データが無くなったフィールドに
リスト選択して入力したデータはテキストであり、ルックアップ設定すれば数値型となる
のは理解できません。この数値型というのはリストのIDのことを言っているのでしょうか。
 
 
 
 

回答
投稿日時: 20/06/01 12:07:29
投稿者: sk

引用:
ご指摘の通りはじめフィールドのデータ型はテキストにしてあり、そのフィールドに
テキストを書き込んだ後に、ルックアップ設定にした方が入力しやすいことに気づき
後からデータ型をルップアップ設定をしました。

ルップアップウィザードは、単にフィールドのルックアップの設定を
行なうだけでなく、リレーションシップの設定も同時に行ないます
 
そして、データ型が異なるキー同士でリレーションシップを設定することは、
データベース設計の原則上において不可能です。
 
今回の場合は 1対多のリレーションシップが設定されているわけですが、
既に定義済みである 1 側のテーブルの主キーのデータ型に合わせる形で、
多側の(つまりデザイン中の)テーブルのフィールド(外部キー)の
データ型が決定されることになります。
 
引用:
この数値型というのはリストのIDのことを言っているのでしょうか。

1側のテーブルの主キーとして定義されているのが
フィールド[ID]なのであれば、そういうことです。
 
[ID]とは別に、一意な値が格納されている(多側のテーブルの外部キーと
同じ値が格納されている)テキスト型のフィールドが定義されているのであれば、
そのフィールドを主キーにしておけばよろしいでしょう。

トピックに返信