Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
テーブルで定義されたフィールドの0埋め方について
投稿日時: 18/07/26 10:58:25
投稿者: けん太

取り込むデータはCSV形式です。
内容は、下記のようになっています。
 
AA,123,BB,4567
CC,00456,CCC,000789
 
 
これを、インポートでテーブルに取込を行い、
数値に見える部分は、決まった数の0で充填を行いたい。
(決まった桁数となるようにしたい)
 
AA,0000123,BB,004567
CC,0000456,CCC,000789
 
 
どのようにすれば、良いでしょうか?
formatを定義しましたが、上手くいきませんでした。

回答
投稿日時: 18/07/26 11:28:56
投稿者: sk

引用:
数値に見える部分は、決まった数の0で充填を行いたい。

1.「決まった数」の分の "0" を、任意のフィールドの値の
   左側に文字列連結させる。
 
2. Right 関数によって 1 の文字列の右側から
   「決まった数」の長さの文字列を取得する。
 
引用:
AA,123,BB,4567

引用:
AA,0000123,BB,004567

(クエリでの記述例)
--------------------------------------------------------------------
 
Right(String(7,"0") & [テーブル名].[フィールド名],7)
 
--------------------------------------------------------------------

回答
投稿日時: 18/07/26 12:00:48
投稿者: Suzu

その処置をとりえるフィールドのデータ型は何でしょう?
 
数値型であれば、データとしては無理。
                見せ方としてならば書式設定で「00000〜 」の様にすれば良いでしょう。
 
文字列型フィールドの場合は既にskさんから回答がありますね。

投稿日時: 18/07/26 12:06:58
投稿者: けん太

SKさん
 
ありがとうございます。
インポートで取込を行いましたが、テーブルにうまく反映されません。
 
定義先は、テーブル定義の入力規則に記載しております。

回答
投稿日時: 18/07/26 13:56:40
投稿者: sk

引用:
インポートで取込を行いましたが、テーブルにうまく反映されません。

テキスト変換によるインポートを実行するタイミングでは、
ゼロ埋め処理を行なうことは出来ません。
 
インポートを実行した後で、更新クエリ等によって
ゼロ埋め処理を実行して下さい。
 
引用:
定義先は、テーブル定義の入力規則に記載しております。

フィールドの[入力規則]プロパティの役割は、
例えばテーブルをデータシートビューで開いた状態で
そのフィールドに対する入力操作が行なわれた際に、
一定の入力規則(条件)に反する値が入力されたら
エラーメッセージを返して入力そのものを禁止することにあります。
 
フィールドに格納されている実際の値を書き換えたり、
見た目上のテキストの書式をどうにかしたりするために
あるわけではありません。

回答
投稿日時: 18/07/26 14:13:33
投稿者: sk

補足:

引用:
取り込むデータはCSV形式です。
内容は、下記のようになっています。
  
AA,123,BB,4567
CC,00456,CCC,000789

なお、Suzu さんがご指摘されたように、インポート先の
フィールドのデータ型がテキスト型ではなく数値型であるならば、
値そのものを前ゼロ埋めすることは出来ません
 
そのフィールドの[書式]プロパティに "0000000" のような
カスタム書式を設定して、テキストの見た目を整えるしかありません。
 
また、「 CSV ファイルに格納されている実際の値が
"0000123" のようなゼロ埋めされた文字列でありながら、
実際にインポートを実行すると、"123" のような
前ゼロが飛んだ文字列がテキスト型のフィールドに格納されてしまう」
といった問題が生じているなら、それはインポート定義における
データ型の指定が誤っているか、インポート定義を使用せずに
インポートを実行しているかのいずれかが原因でしょう。
(それは「インポート後の前ゼロ埋め」とは別の問題である)

投稿日時: 18/07/26 14:18:07
投稿者: けん太

skさん、Suzuさん
 
ご指導、ありがとうございました。
インポートのタイミングでは、不可との事、ありがとうございます。
クエリで対応いたします。