- ベストアンサー
ACCESSでの桁数のあわせ方
EXCELで (1)ERPソフトからの抽出データと (2)手入力で管理しているデータ をACCESSで取り込んで、加工をします。 それぞれ入力方法が (1)のERPからのデータは必ず10桁(0000012345とか0000000123)で (2)は有効分(12345とか123) となっていますのでACCESSへ、インポートする際に 桁数が異なってしまい、クエリーで結び付けられません。 そこで、(2)のデータを(1)のように必ず10桁にして 桁数あわせに0が入るといった方法、つまり12345なら0000012345、123なら0000000123と変換させる 方法はありませんでしょうか。 出来れば、(2)をACESSで取り込んでからACCESSで処理をしたいです。
- haase
- お礼率84% (11/13)
- その他(データベース)
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
format関数を使用してクエリーで変換するのがよいかと思います。 変換したいフィールドを「顧客コード」とします。 更新クエリーでフィールドに「顧客コード」、 レコードの更新に「=format([顧客コード],"0000000000")」と入れます。 「!」実行ボタンで完了です。 10桁のものはそのまま、10桁以下のデータの頭にゼロが付く形となります。 その代わり、この式のままではブランクの場合も10桁のゼロで埋まってしまいます。
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
更新クエリ update T set [FLD] = right( '0000000000' & trim( [FLD] ), 10) を実行して、(2)のデータを整形しては。 (テーブル名とフィールド名はてきとーです)
お礼
ご回答ありがとうございます ただ、やり方を間違えているのか 出来上がったデータが「0」となってしまいました。 #1の方から教わった方法で求めていた結果を 出すことができましたので、その方法でやってゆきます。 どうもありがとうございました。
関連するQ&A
- 【Access2010】桁数バラバラの日付を統一
添付画像のような日付データ(ピリオド区切り)があります。 データ(csvファイル)は原則毎日インポートしているので、日付の異なるデータが混在することはほとんどありませんが、まれに多忙・有休などで数日間インポートしなかった場合は混在してしまいます。 その場合は、csvファイルをコピーして桁数ごとにインポート→桁数ごとの更新クエリーを実行し数字8桁にする→更新クエリーで日付型にしています。 <例1:「***.*.*」の場合(日付更新用へ)> 桁数ごとの更新クエリー → Left$([日付],4) & "0" & Mid$([日付],6,1) & "0" & Right([日付],1) <例2:「***.**.**」の場合(日付更新用へ)> 桁数ごとの更新クエリー → Left$([日付],4) & Mid$([日付],6,2) & Right([日付],2) <共通> 日付型への更新クエリー → Left$([日付更新用],4) & "/" & Mid$([日付更新用],5,2) & "/" & Right$([日付更新用],2) 実行すべき桁数ごとの更新クエリーを間違えるとインポート作業からやり直さなければならず、非常に面倒です。 桁数が違っても同じクエリーで数字8桁にする方法はありませんか?フィールド・クエリーの追加はいくらでも可能です。
- ベストアンサー
- Access(アクセス)
- 【Access97】指定した桁数で区切りたい
txtファイルをAccessへインポートした後、項目毎に区切るためにMid関数を使用していますが、全角文字を2桁として認識してくれず区切り位置がおかしくなってしまいます。 同様の作業をExcelでやっても同じでした(添付画像参照、データは一部項目のみ抜粋)。 項目数=30個、桁数=一行につき255桁(固定)、1つのtxtファイル内のデータ行=200行以上、そのtxtファイル数が数十個あるので毎回Excelの『区切り位置指定ウィザード』を使用するのも大変です。 何とかAccessの更新クエリーで作業したいのですが、指定した位置で区切る方法、もしくは全角文字を2桁として認識させる方法はありませんか?
- ベストアンサー
- その他MS Office製品
- アクセスで桁数を増やしたい
アクセスで桁数を増やしたい 従業員のデータベースをアクセスで作成しているのですが、 諸般の事情と従業員の出入りが激しいので桁数を増やしたいのですが、 方法がわかりませんのでお願いします 今現在は、 従業員の個人コードを10001の5桁で管理しておりますが、 それを、7桁にしたいのです。 最初の1は、部署を表し、0001は、個人コードです。 部署 1を11と2桁にし 個人コード0001の4桁を00001の5桁にしたいのです たとえば 旧個人コード 新個人コード 最初の1を11に 10001 1100001 1を11に 12222 1102222 2を12に 23333 1203333 3を13に 32222 1302222 4を21に 43333 2103333 5を22に 51234 2201234 6を31に 68888 3108888 7を41に 70001 4100001したいのです このフィールドのデータ型は数値型で主インデックスです OSはXP ソフトはオフィス2003です。
- 締切済み
- オフィス系ソフト
- CSVデータをアクセスにインポートしてから
CSVデータをアクセスにインポートしてクエリーを作ります。 例 100021 n1100 01 15桁をテキストでインポートします。 この15桁が一つのフィールドになります。 この下二桁 01 だけを一つのフィールドに抽出する事はできるでしょうか? わかりにくくて申し訳ございません・・・・
- ベストアンサー
- Windows NT・2000
- Access97のクエリーについて
Access97のクエリーで次のようなデータ抽出をしたいのですが、設定方法が良く分かりません。 1.約20000レコードのCSVファイルを外部データ のインポートでTDLを作成。 2.重複クエリーを走行すると、約10000レコードが 重複していた。 3.作成したTBLから重複者がいないデータを抽出した い。 イメージ: 処理前 a,2222,111,1,1234567 a,1111,100,1,0001234 b,0001,234,1,5555511 c,0003,001,1,0005555 c,0005,201,1,3345678 ↓(クエリー) 処理後 a,1111,100,1,0001234 b,0001,234,1,5555511 c,0003,001,1,0005555 どのような、関数、クエリーを使えば実現できるのでしょ うか。ご教示の程よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ACCESS のインポート
ACCESS 2003をかじり始めた初心者です。 2つのテーブルから作ったクエリのデータにEXCELデータをインポートしようと思いましたが、インポートウィザードではインポート先としてテーブルを要求して来るようです。どうすれば良いのでしょうか。クエリをテーブルに変換する方法があればいいのかも知れませんが。
- ベストアンサー
- オフィス系ソフト
- ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出
ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出したいのですが、方法はありますか? LONG項目の先頭から30桁分の文字を抽出し、CHAR項目に入力したいのですが。 会社で使用しているERPパッケージでLONG項目があり、どうしてもこの項目から文字が抽出したいのです。 回答のほど宜しくお願いします。
- ベストアンサー
- その他(データベース)
- ACCESS2000 で困っています・・・
ACCESS2000 での質問です。 2種類のデータをインポートして、あるフィールドの差分を抽出したいと思っています。 しかし、2種類のデータには問題があり、 片方のフィールドは、「0001,0002,0003,M001,M002」と「0」が先頭にはいっていて4桁になっているデータなのですが、 もう片方のフィールドには「0」がなく、「1,2,3,M001,M002」となっています。 この「0001,0002,0003」と「1,2,3」は同じ数字(データ)なのですが、当然同じ文字列とは認識してくれません。 こういう場合、インポートする時になにかすれば同じ型になるのでしょうか? それとも、インポート後(クエリを行う場合など)、データが一致するよう認識するようにできないでしょうか? アドバイスよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセスのフォームで、桁数を指定したい。
例)「1」の場合でも、3桁の設定で「001」としたい。 エクセルで言うところの書式設定でユーザー定義で桁数を指定できるように、アクセスのフォームで指定できないでしょうか? その数値を最終的にバーコード化したいのですが、その桁数が違ってしまって、表現したいバーコードが再現できないのです。 ちなみにテーブル、クエリでは書式の設定で(表面だけかも知れませんが)表示できています。 どなたかよろしくご教授のほどよろしくお願いします。
- 締切済み
- オフィス系ソフト
- accessで対象データの抽出を行うクエリを作成しています。データ範囲
accessで対象データの抽出を行うクエリを作成しています。データ範囲 0~1000 等で抽出したいのですが、元のデータは、 01 、 854、 0854 、0001 等、まちまちであり、 between 0 and 1000で指定すると、01 や 854 が抽出されません。 どのようにしたらよいでしょうか? あるいは元のデータの桁を4桁にあわせればよいと思うのですが、どのようにして4桁に合わせればよいのでしょうか? よい方法を教えていただきたいです。
- ベストアンサー
- その他([技術者向] コンピューター)
お礼
早速教わった通りにやってみました。 期待していたデータが出来ました。 どうもありがとうございました。