Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


821 / 2272 ツリー ←次へ | 前へ→

【9935】CSVデータの取込時のエラー 探検 07/10/22(月) 16:28 質問[未読]
【9936】Re:CSVデータの取込時のエラー 小僧 07/10/22(月) 16:53 回答[未読]
【9940】Re:CSVデータの取込時のエラー 探検 07/10/23(火) 8:54 お礼[未読]
【9941】Re:CSVデータの取込時のエラー 探検 07/10/23(火) 9:41 お礼[未読]

【9935】CSVデータの取込時のエラー
質問  探検 E-MAIL  - 07/10/22(月) 16:28 -

引用なし
パスワード
   CSVデータをテーブルに取り込みを、

  DoCmd.TransferText acImportDelim, , _
           "テーブルA", "C:\fileB.csv", True

で行っています。

実行すると、処理は完了するのですが、「fileB_インポート エラー」
が作成され、内容を見ると「データ型の変換エラー」となっていて、
残業時間のフィールドがエラーの出た人については取り込まれていま
せんでした。

エラーになった人を見ると、CSVデータで「33:00:00」等となっており
24:00:00を超える人についてエラーが表示されていました。

テーブルAの「残業時間」のフィールドはテキスト形式になっており、
書式や定型入力、入力規則は空白になっていて特に指定していません。

CSVデータ側は残業時間は60進で登録されており、CSV側を変更する
ことはできないので、アクセス側で取り込むような形式はとれないで
しょうか。

良い案があったら教えてください。

【9936】Re:CSVデータの取込時のエラー
回答  小僧  - 07/10/22(月) 16:53 -

引用なし
パスワード
   ▼探検 さん:
こんにちは。

>CSVデータをテーブルに取り込みを、
>
>  DoCmd.TransferText acImportDelim, , _
>           "テーブルA", "C:\fileB.csv", True
>
>で行っています。

インポート定義を作り、
TransferTextメソッドの第2引数に指定してあげれば取り込めるかと思われます。


インポート定義の作り方については

h tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=8467;id=access
(直リンク禁止ですので補完して下さい)


こちらの中ほどをご参考にされてみて下さい。


>CSVデータで「33:00:00」等となっており
>CSVデータ側は残業時間は60進で登録されており、
>CSV側を変更することはできないので、


こちらについてですが、テキスト型のままですと
日付計算をする際に、とても手間が掛かる事になってしまうかもしれません。

(9月30日 26:00 ⇒ 9月31日 2:00 ではない、とか…)

データをCSVから取り込むのは1回ですが、
(日1回、月1回など)

何度も参照や更新をするような仕様でしたら
Accessのデータとしては日付型で持っておいたほうが
後々楽になるかもしれませんね。

【9940】Re:CSVデータの取込時のエラー
お礼  探検 E-MAIL  - 07/10/23(火) 8:54 -

引用なし
パスワード
   ▼小僧 さん:
おはようございます。

参照先を見てみて試してみます。
ありがとうございます。

レスが遅くなり申し訳ありませんでした。

>>CSVデータで「33:00:00」等となっており
>>CSVデータ側は残業時間は60進で登録されており、
>>CSV側を変更することはできないので、
>
>
>こちらについてですが、テキスト型のままですと
>日付計算をする際に、とても手間が掛かる事になってしまうかもしれません。
>
>(9月30日 26:00 ⇒ 9月31日 2:00 ではない、とか…)
>
>データをCSVから取り込むのは1回ですが、
>(日1回、月1回など)
>
>何度も参照や更新をするような仕様でしたら
>Accessのデータとしては日付型で持っておいたほうが
>後々楽になるかもしれませんね。

ご心配ありがとうございます。
説明が足りなくて申し訳ありません。
月単位の集計をAccessに取り込むので、日付の計算は行いません。
テキストの形で時間数の計算を行う関数は他のツリーで参照先が張られていたところを参考に作っています。

【9941】Re:CSVデータの取込時のエラー
お礼  探検 E-MAIL  - 07/10/23(火) 9:41 -

引用なし
パスワード
   小僧さんありがとうございます。

参照先の方法で試した結果、エラーが出なくなり、33:00:00のデータも
無事取り込むことができるようになりました。

助かりました。ありがとうございます。

821 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free