システムwiki

フィールドを新しいフィールドに結合する

Z_A_S 解決済 最終更新日:2022-05-28 05:50

携帯電話用のフィールドと自宅電話用のフィールドがあります.それらを「電話」という1つのフィールドにまとめたいと思います.どうすればよいですか?例:

携帯電話

自宅の電話

8881111111

9996666666

5553333333

5558888888

これにまとめたい:

電話

8881111111; 9996666666

5553333333; 5558888888

ご覧のとおり、各数字の間にセミコロンとスペースがあります.

返信リスト(回答:7)

7 #
HansVMV

それらをtableの1つのフィールドに結合することはお勧めしません.もちろん、tableに基づいたクエリで結合された電話番号を返し、それをレポート(および必要に応じてフォーム)に使用することもできます:

電話:[携帯電話]&"; "&[自宅の電話]

別の方法として、メインtableのIDフィールドのメインtableにリンクされた別のtableに電話番号を保存し、さらに電話番号タイプのtableを保存することもできます.

それが価値があるかどうかを決めるのはあなた次第です.

応答7# ->にスキップ
6 #
Z

ああ.はい.私のデータベースは実際にはデータベース設計基準に準拠していないことを知っています.私はあなたがするようにtableにラベルを付けたほうがよいことを知っています.しかし、私の状況では、フィールドを1つにまとめるのが最善だと思います.それは私のフォームを他の何よりもすっきりさせるためのものです.

応答6# ->にスキップ
5 #
HansVMV 1

前述したように、表示目的で電話番号を連結するクエリを作成できます.

連結された値をユーザーに直接入力させると、間違いの原因になります.

しかし、本当にやりたいのであれば:

  • デザインビューでtableを開きます.

  • 長さ22のPhoneという名前のショートテキストフィールドを追加します(より多くの電話番号、または国コードを含む電話番号を入力できるようにする場合は、それより長くします).

  • tableデザインを閉じて保存します.

  • Phoneフィールドの値を[CellPhone]&";に更新する更新クエリを作成します. "&[自宅の電話]

  • 更新クエリを実行します. その後、破棄できます.

  • デザインビューでtableを再度開き、[携帯電話]フィールドと[自宅の電話]フィールドを削除します.

  • tableデザインを閉じて保存します.

  • 表に基づいてフォームとレポートを編集し、携帯電話と自宅の電話の代わりに[電話]フィールドを使用します.

しかし、それでも悪いデザインです!再考してください.

応答5# ->にスキップ
4 #
Z

再考しますが、データベースをスローダウンする可能性を除けば、マイナス面は何でしょうか?

応答4# ->にスキップ
1 #
Imb

こんにちはZ_A_S、

別のTelephone_tblを使用することが物事を遅くしているとは思わない.

何らかの理由で3つまたは4つの電話番号が必要な場合に、どのような問題が発生するか想像してみてください.非現実的ではありませんが、人に関連付けられている電話の数が6を超えるApplicationがいくつかあります.

ハンスとは異なり、PhonetypeIDの代わりに、電話の目的の説明を使用します.ホームジェネラル、ホームソン、ワークセクレタリー、ワークライブラリーなど

ハンスが述べたように、フィルタリングは重要です.フィルタリングの私のお気に入りの方法は、たとえばで終わる電話番号を検索することです.8515、最小限の入力作業で小さな事前選択を行います.したがって、エラーが発生しにくく、地域、国内、または国際番号に依存しません.すべての数値を1つのフィールドに連結すると、これは困難になります.

これを使用して、1回の検索で100を超えるさまざまなApplicationの番号を検索し、その番号を以前に見た場所を調べることもできます.

Imb.

応答4# ->にスキップ
2 #
Scottge

リレーショナルデータベースの設計に関する規則は、50年前に最初に発表されました.その時以来、それらはほとんど変わっていません.これは、これらのルールがデータの保存に最も効率的であることが証明されているためです.

データ表示とデータストレージを混同しないでください.フォームを整理するための理由だとおっしゃいました.繰り返しますが、2つの電話番号を一緒に保存せずに一緒に表示することができます.それらを一緒に保存することは非効率的で混乱を招きます.#が1つしかない場合、どれがどれであるかをどのように知ることができますか.自分に有利に働き、正規化のルールに従ってください.

応答4# ->にスキップ
3 #
HansVMV

「1112223333;」の形式で電話番号を入力します. 4445556666 ":

  1. 単一の電話番号を入力するよりもエラーが発生しやすいです.

  2. 電話番号の並べ替えとフィルタリングがより困難になります.