Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No31687.頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける

タイトル頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける
記事No: 31687
投稿日: 2007/09/11(Tue) 18:12
投稿者: 鷹友
OS:Windows2000
Access Version:Access2000
鷹友と言います。よろしくお願いします。
CSVファイルで頭0から始まる数値だけのテキスト項目を、テーブルのテキスト項目に
インポートすると、テーブルのテキスト項目には頭の0がサプレスされて(抜けて)
入ってしまいます。
やり方は、
DoCmd.TransferText acImportDelim,,テーブル名,CSVファイル名,True
で行っています。
これは裏中間でExcelが介在して、0サプレスした値をAccessに渡されるから仕方ないので
しょうか?
調べたところ、これを回避するには文字列項目と定義したExcelファイルを下記のように
インポートするしかないかもと思っているのですが・・・
DoCmd.TransferSpreadsheet acImportDelim,,テーブル名,Excelファイル名,True

Excelファイルにするのは手間がかかり、できたらCSVファイルでインポートしたいのですが。
いい知恵があれば教えてください。

また、ダメならExcelと別の回避策として、テキスト項目で数値だけの場合は頭の0を
禁止して運用することなども考えております。

タイトルRe: 頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける
記事No: 31688
投稿日: 2007/09/11(Tue) 21:42
投稿者: やまざる
> CSVファイルで頭0から始まる数値だけのテキスト項目を、テーブルのテキスト項目に
> インポートすると、テーブルのテキスト項目には頭の0がサプレスされて(抜けて)
> 入ってしまいます。

> Excelファイルにするのは手間がかかり、できたらCSVファイルでインポートしたいのですが。
> いい知恵があれば教えてください。
>

桁数は決まっているのでしょうか?

決まっていれば、Access上で、Format関数を使い、削除された0 を復活できると思いますが?

タイトルRe^2: 頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける
記事No: 31692
投稿日: 2007/09/12(Wed) 09:59
投稿者: 鷹友
> > CSVファイルで頭0から始まる数値だけのテキスト項目を、テーブルのテキスト項目に
> > インポートすると、テーブルのテキスト項目には頭の0がサプレスされて(抜けて)
> > 入ってしまいます。
>
> > Excelファイルにするのは手間がかかり、できたらCSVファイルでインポートしたいのですが。
> > いい知恵があれば教えてください。
> >
>
> 桁数は決まっているのでしょうか?
>
> 決まっていれば、Access上で、Format関数を使い、削除された0 を復活できると思いますが?

いえ、残念ですが桁数は決まっておりません。

タイトルRe: 頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける
記事No: 31689
投稿日: 2007/09/12(Wed) 08:46
投稿者: 門戸厄神
> これは裏中間でExcelが介在して、0サプレスした値をAccessに渡されるから仕方ないので
> しょうか?
インポート定義を作ってフィールドのデータ型をテキスト型と定義してやれば大丈夫ですよ。

それから、Excelは介在などしておりません(^^;
拡張子csvがExcelと関連付けされているのでcsvファイルのアイコンがExcelのアイコン風に
表示されているのを勘違いされているのだと思います。

タイトルRe^2: 頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける
記事No: 31693
投稿日: 2007/09/12(Wed) 10:17
投稿者: 鷹友
> > これは裏中間でExcelが介在して、0サプレスした値をAccessに渡されるから仕方ないので
> > しょうか?
> インポート定義を作ってフィールドのデータ型をテキスト型と定義してやれば大丈夫ですよ。

門戸厄神さん  回答ありがとうございます。
「インポート定義を作って」とありますが、
手動で<ファイル>−<外部データの取込>-<インポート>
からテキスト項目のフィールド型をテキストにするという意味でしょうか。
もし、そうなら、この手動の作業をすべて自動化してワンタッチでやりたいのですが。

自動でやるやり方という意味なら、インポート定義の作り方がよくわからないので、
どこを見ればわかるか教えていただけませんか。


>
> それから、Excelは介在などしておりません(^^;
> 拡張子csvがExcelと関連付けされているのでcsvファイルのアイコンがExcelのアイコン風に
> 表示されているのを勘違いされているのだと思います。

そうですか。了解いたしました。

タイトルRe^3: 頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける
記事No: 31694
投稿日: 2007/09/12(Wed) 10:44
投稿者: 鷹友
> 自動でやるやり方という意味なら、インポート定義の作り方がよくわからないので、
> どこを見ればわかるか教えていただけませんか。
>

鷹友です。
手動で<ファイル>−<外部データの取込>-<インポート>
でインポート定義を作成したあと、[設定]でインポート定義ウインドウが
表示され、[保存]でこのインポート定義を名前を付けて保存することが
できました。
で、このインポート定義をプログラムのなかで
(DoCmd.TransferText)
どう使えばよいのかがわかりません。
教えていただけませんか。

タイトルRe^4: 頭0の数値のテキストデータがあるCSVファイルをインポートすると頭0が抜ける
記事No: 31695
投稿日: 2007/09/12(Wed) 11:43
投稿者: 鷹友
鷹友です。

> で、このインポート定義をプログラムのなかで
> (DoCmd.TransferText)
> どう使えばよいのかがわかりません。

すみません。見落としておりました。
DoCmd.TransferText acImportDelim, インポート定義名, テーブル名, CSVファイル名, True
でいいはずですね。

うまくいきました。
ありがとうございました。


このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています


 

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