はじめに

どうも、きいちろーです。

私最近、パソコンでのお困りごとを解決するためのサブスクサービスを始めようと思い、その管理をAppSheetでやろうとしたのですが、ちょっと困ったことが起こりました。

なんと!入力用のプルダウンのリストがIDで表示されてしまい、わけがわからなくなってしまったのです。

本来であれば「きいちろー」や「花子」などとリスト表示したいのに「E0C5AAB8」「7GDA965E」とIDで表示されてしまったのです。

いつもならちゃんと表示されるのになぜ?と思い、数時間沼にはまったところ意外なところに原因がありました。

結論を言うと、参照先が間違ってたからだったんです。

今日はそれを記事に書こうと思います。

問題点

今回のテーブル構成を簡単に書くと、customer、staff、follower、followの4つのテーブルとなります。

customerでは顧客を管理し、staffではスタッフを管理し、followerでは顧客に対してどのスタッフが対応するのかを管理し、followではスタッフがどの顧客にどんなフォローをしたのかを日々記録するというものです。

customerのイメージ。

staffのイメージです。

followerのイメージです。

followのイメージですが、このとき問題になったのはこのfollow_Formのstaff_idでした。

staff_idに入力しようとするとIDが表示されてしまい、これでは誰が誰なのかわかりません。怪しいエクスクラメーションマークまで出てしまっています。

本来であればこのようにスタッフの名前が出るようにしたいのですが、これは設定を間違えてたために起こった問題だったんです。

原因

原因の follow テーブルの Culumn を見てみます。

ここで staff_id の詳細を見てみます。

このときの Type Details の Source table に注目すると、follower となっています。

follower のテーブルを確認すると staff_id しか載せておらず、スタッフの名前などわかるはずがありません。

スタッフの名前が載っているのはもちろん staff テーブルですので、参照先は staff にするのが正解となります。

そこで 先ほどのfollow テーブルの staff_id の Source table を follower から staff に変えたところ、不具合が解消されました。

ちなみに follow テーブルの staff_id の Valid If はこのような Select 関数を使っていました。

これの follower[staff_id] につられて Source table を follower にしてしまったようです。

もちろんですが、 staff テーブルの LABEL は id ではなく name にチェックをいれてます。

みなさんも気を付けてください。