幼稚園時代「何組」でしたか?

ACCESS2000 での質問です。
2種類のデータをインポートして、あるフィールドの差分を抽出したいと思っています。
しかし、2種類のデータには問題があり、
片方のフィールドは、「0001,0002,0003,M001,M002」と「0」が先頭にはいっていて4桁になっているデータなのですが、
もう片方のフィールドには「0」がなく、「1,2,3,M001,M002」となっています。
この「0001,0002,0003」と「1,2,3」は同じ数字(データ)なのですが、当然同じ文字列とは認識してくれません。
こういう場合、インポートする時になにかすれば同じ型になるのでしょうか?
それとも、インポート後(クエリを行う場合など)、データが一致するよう認識するようにできないでしょうか?
アドバイスよろしくお願いします。

A 回答 (4件)

#1です。


僕のと#3さんの回答は、テーブルの値は変更せず、選択クエリでフィールドの形式を揃えてから比較する方法で、
#2さんの回答は、片方のテーブルのフィールドの形式をもう一方のテーブルに合わせるように更新してから比較する方法です。
ご都合にあわせて、お好きな方法をお選びください。
頑張ってください(^o^)丿
    • good
    • 0

両方のデータをインポートして,2つのテーブルを作成します。



そして,マッチさせようとするフィールドの型や文字列の長さを変更したフィールドを新たにクエリーで作成します。

そうして新たに作成したクエリーを利用して,不一致クエリーを作成すれば,できます。

a b c d e <- フィールド名
0001,0002,0003,M001,M002

A B C D E <- フィールド名
1,2,3,M001,M002

例えば,フィールドaの「0001」を数値にします。
クエリーのデザインビューで
新フィールド名:cint([a]) とすれば,1となり,Aと比較可能です。
(Aが数値であることが条件です。文字列の場合は,
新フィールド名:format([a],"0") で大丈夫だと思います。)


フィールドAを「0001」とする場合は,
クエリーのデザインビューで
新フィールド名:format([A],"0000") とすれば,「0001」となり,aと比較可能です。
    • good
    • 0

インポート後、更新クエリを使う必要があると思います。



IIF(IsNumeric(Left([フィールド名],1)),
  Left([フィールド名],1) & Format(Mid([フィールド名],2),"000"),
  Format([フィールド名],"0000"))
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
選択クエリはよく使ってましたが、更新クエリは全く初めてなので、がんばってやってみます。
わからないことがあったら、またよろしくお願いします。

お礼日時:2004/10/22 17:10

Format([field1],"0000")


これで、「1」という値を持つfield1を"0001"として参照できます。
頑張ってくださいヽ(^。^)ノ
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Format([field1],"0000")
は、インポート時に設定するのでしょうか? それともクエリの抽出条件で設定するのでしょうか?
たいへん初歩的な質問で申し訳ありません。
よろしくお願いします。

お礼日時:2004/10/22 16:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報