- ベストアンサー
ACCESSのテーブルのデータで、先頭に「000」を付与するほう右方
会社の上司からこのような相談を受けました。 バージョンはOFFICE2003を使用しています。 EXCELのデータをACCESSのテーブルにインポートしました。 このデータには、「000123」と先頭に0が付く6桁のコードのデータもあり、EXCEL上では文字列として認識されていました。 このデータをインポートしたところ、ACCESS上では「123」というように表示されています。 データ形式を「テキスト型」に直しましたが、コードは直りません。 データの量が多いため、なるべく簡単に訂正する方法が知りたいとのことでした。 よい方法があれば、ご教授をお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
更新クエリで行なう場合 フィールドの一覧に該当のフィールド名をセット 更新欄に Format(CLng([フィールド名]),"000000") として更新すれば お望みの状態になります。 インポートし直すなら、 現テーブルのレコードを削除して、EXCELのインポートでインポート先を今のテキスト型に設定したテーブルに直接インポートするか EXCELのレコードの先頭(1行目がフィールド名なら2行目)に テキスト型のセルには「A」、数値型のセルには「9」、日付型のセルには日付をセットして新規テーブルにインポートしてください。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
私も下記やってみました。 エクセルSheet1 A1:C6 A列は書式を文字列にして、データを入力しました。 第1行目はフィールド名にしておいたほうが良さそう。 番号 コード 計数 000123 a 1 002345 b 24 000012 c 3 002349 d 4 012345 e 56 ーー アクセスのメニューの方のファイル 外部データの取り込み インポートエクセルのファイル名の指定 ウイザードの画面に入り Sheet1など指定 つぎへ 先頭行はフィールド名次へ新規テーブルに保存 で結果 ID 番号 コード 計数 1 000123 a 1 2 002345 b 24 3 000012 c 3 4 002349 d 4 5 012345 e 56 と先頭の0-0は除かれていません。 もう一度やってみてください。2002です。 (途中データ型がグレイアウトしているのが気になったが) >簡単に訂正する方法が知りたいとのことでした モジュールを組むとか、クエリでFormat関数で整形するとかあると思うが、もう一度上記のようにやってみてください。 http://www.accessclub.jp/actips/tips_115.htm など >会社の上司からこのような相談を受けました。 回答者には関係ないこと。書かないでも良いこと。
お礼
ご回答ありがとうございます。 Formatを用いた方法でひとまず解決いたしました。
- CHRONOS_0
- ベストアンサー率54% (457/838)
>「000123」と先頭に0が付く6桁のコードのデータもあり 付かないものもあるのでしょうか? その場合はもう一度インポートしなおす必要がありますね インポート時に[標準]ではなく[テキスト]を指定すれば Excelデータのとおりインポートできます そうではなく全て頭に0をつけて6桁にすればいいいのであれば 頭に0をたくさんつけて右の6個を取り出せばいいですね Left("000000" & フィールド名,6)
お礼
ご回答ありがとうございます。 Formatを用いた方法でひとまず解決いたしました。
#1です。 エクセルから直接インポートせず、一旦CSVファイルに落としてから、アクセスにインポートする手も有ります。
お礼
ご回答ありがとうございます。 Formatを用いた方法でひとまず解決いたしました。
インポートする際に、フィールド毎に取り込むデータ形式を選択できますし、フィールド形式を設定したインポート用のテーブルを予め用意したり、 インポート定義を保存して、インポートの際に、その定義を呼び出す等、 方法は有ります。 インポートの都度、新規テーブルへ何も指定せず漫然とインポートしている限り同じ事が起こります。
お礼
ご回答ありがとうございます。 Formatを用いた方法でひとまず解決いたしました。
お礼
ご回答ありがとうございます。 Formatを用いた方法でひとまず解決いたしました。