Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル入力済みデータに対するルックアップウイザードの適応
記事No172070
投稿日: 2017/10/18(Wed) 15:01
投稿者nobuya
解決済: ON
OS:windouws10
Access Version:2016

エクセル(2013)で管理していた会員情報をアクセス(2016)に移行を計画しております。
現在、テストを行っているのですが、インポート後のフィールドの設定でつまづきました。
エクセルの会員ステータスの区分で「在籍、退会、休会」をドロップダウンリストから入力していました。
このデータをアクセスにインポートした後で、同じようにリストから選択するために、ルックアップウイザードを使い、あらかじめ作成しておいたマスターを参照し、設定しましたところ「一部のデータが失われる可能性があります・・・・」のメッセージが表示され、そのまま進むと入力済みのデータが消失してしまいます。
そもそも、すでにデータが入っているフィールドにルックアップウイザードから設定変更はできないのでしょうか?
どうぞよろしくお願い申し上げます。

タイトルRe: 入力済みデータに対するルックアップウイザードの適応
記事No172071
投稿日: 2017/10/19(Thu) 15:03
投稿者mayu
解決済: ON
> すでにデータが入っているフィールドに
> ルックアップウイザードから設定変更はできないのでしょうか?

結論から申し上げると、出来ます。

# 3種類の値しか入力しないのでしたら、別テーブルのデータを参照せずとも
# 【 値リスト 】でいいのではないか、という回答を求めてはいませんよね。


   < T_status >         < T_excel >

   CID          会員ID 
  (主キー) 状態     (主キー)  会員名   状況
  ----------------    ----------------------------  
    1   在籍      0120    A    在籍
    2   退会      0029    B    在籍
    3   休会      3155    C    退会
               4411    D    在籍
               4901    E    休会

という構成( 甲 )で
 T_excel テーブルの{ 状況 }フィールドの値を
 T_status テーブルの{ 状態 }フィールドと同期させようとした
のでしたら

> 「一部のデータが失われる可能性があります・・・・」のメッセージが表示され、
> そのまま進むと入力済みのデータが消失してしまいます。

になるでしょう。
ルックアップを設定するのに 適切なフィールド構成は


   < T_status >         < T_excel >

   CID          会員ID 
  (主キー) 状態     (主キー)  会員名   状況
  ----------------    ----------------------------  
    1   在籍      0120    A     1
    2   退会      0029    B     1
    3   休会      3155    C     2
               4411    D     1
               4901    E     3

となります。( 乙 )

データベース設計では
T_status の{ 状態 }フィールドは、{ CID }フィールドに関数従属していると言い、
T_excel の{ 状況 }フィールドに入力すべき値は
関数従属が無い状態( すなわち主キー )が保証されている{ CID }の値になります。

( 乙 )の構成で { 状況 }フィールドに ルックアップ を設定すると
データが消失することもなく、見た目だけは( 甲 )になるでしょう。

このあたりは、MS-Access の機能というより 設計の理論になり、
正規化を含めた関係モデルを理解する必要があります。

タイトルRe^2: 入力済みデータに対するルックアップウイザードの適応
記事No172072
投稿日: 2017/10/19(Thu) 19:21
投稿者nobuya
解決済: ON
mayu 様
詳細でわかりやすいご説明を頂き誠にありがとうございました。
ご指導いただきました内容を参考にし、あらかじめエクセルファイルの区分を文字ではなく、
数値に置き換えてインポートするように致します。
この度は本当にありがとうございました。


> > すでにデータが入っているフィールドに
> > ルックアップウイザードから設定変更はできないのでしょうか?
>
> 結論から申し上げると、出来ます。
>
> # 3種類の値しか入力しないのでしたら、別テーブルのデータを参照せずとも
> # 【 値リスト 】でいいのではないか、という回答を求めてはいませんよね。
>
>
>    < T_status >         < T_excel >
>
>    CID          会員ID
>   (主キー) 状態     (主キー)  会員名   状況
>   ----------------    ----------------------------  
>     1   在籍      0120    A    在籍
>     2   退会      0029    B    在籍
>     3   休会      3155    C    退会
>                4411    D    在籍
>                4901    E    休会
>
> という構成( 甲 )で
> T_excel テーブルの{ 状況 }フィールドの値を
> T_status テーブルの{ 状態 }フィールドと同期させようとした
> のでしたら
>
> > 「一部のデータが失われる可能性があります・・・・」のメッセージが表示され、
> > そのまま進むと入力済みのデータが消失してしまいます。
>
> になるでしょう。
> ルックアップを設定するのに 適切なフィールド構成は
>
>
>    < T_status >         < T_excel >
>
>    CID          会員ID
>   (主キー) 状態     (主キー)  会員名   状況
>   ----------------    ----------------------------  
>     1   在籍      0120    A     1
>     2   退会      0029    B     1
>     3   休会      3155    C     2
>                4411    D     1
>                4901    E     3
>
> となります。( 乙 )
>
> データベース設計では
> T_status の{ 状態 }フィールドは、{ CID }フィールドに関数従属していると言い、
> T_excel の{ 状況 }フィールドに入力すべき値は
> 関数従属が無い状態( すなわち主キー )が保証されている{ CID }の値になります。
>
> ( 乙 )の構成で { 状況 }フィールドに ルックアップ を設定すると
> データが消失することもなく、見た目だけは( 甲 )になるでしょう。
>
> このあたりは、MS-Access の機能というより 設計の理論になり、
> 正規化を含めた関係モデルを理解する必要があります。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る