pickup

ACCESSのテーブルデータ、または、クエリのデータを、そのままCSVファイルにしたい時があります。

しかし、ある条件が、その作業を阻むときがあります。

今回も諦めていました。

目次

スポンサーリンク

ACCESSのデータをCSVファイルに出力するときの注意点

 

こんにちは。伊川(@naonaoke)です。

CSVファイルは、実務では必須ですね。

インポートしたり、エクスポートしたり、私は、CSVファイルを、扱わない日はないです。

しかし、CSVファイルは、Excelの形式に、紐づけされていることが多く、文字を扱う場合には、問題がありません。

しかし、数字や、日時を扱うときは、要注意です。

それは、正しく反映されないときがあります。

 

その正しく反映されないときに、ぶち当たりました。

 

何をやってもうまくいきませんね

そんな時の失敗談を記載します。

スポンサーリンク

このブログはこんな人にお勧め

今回のテーマ
  • 今、VBAでハマっている人
  • VBAで、2日以上悩んでいる人
  • 実行しても、正しく反映されず、VBAをやめようと思っている人

このブログを、読み終わるころには・・・・

このブログの結論
今まで、利用していなかった機能を見直してみましょう。
その見直しが、思いもよらず解決へ、つながります。
無理に、VBAを利用して難しく考えないようにしましょう。

 

スポンサーリンク

ACCESSから、16桁の数値を出力する

なぜ、16桁の数字なのか?

Naosuke
もちろん競馬です。

ACCESSから、抽出した、馬券の買い目を自動で抽出するからです。

もちろん、手動で買い目の入力してもいいのですが、ヒューマンエラーの恐れがあります。

事実、私は、入力間違いにより、万馬券を、2回のがしています。

もっとも、入力間違いにより、万馬券をGETしたこともあります。

 

しかし、絶対に妥協できません。

競馬となるとね。

ACCESSから、16桁の数値を出力する 作業手順 その1 CSVファイルを作成するコード

これは、意外とカンタンでした。

Sub CSVエクスポート()
DoCmd.TransferText _
TransferType:=acExportDelim, _
TableName:="Q_test1", _
FileName:="C:\Users\P125028\Desktop\20211201_" & Format(Date, "yyyymmdd") & ".csv"
End Sub

このコードを実行するだけなのです。

しかし、今回のように、16桁の数字の場合は、カンタンにはいかないのです。

ACCESSから、16桁の数値を出力する 作業手順 その2 実際に出力してみた

 

この数字の羅列をCSVで出力します。

数字が、左詰めなので、もちろん、ACCESSは、数字ではなく、文字列をして扱っています。

出力すると、上記のようになります。

Excelは、12桁以上の数字は、上記のように、指数で表示します。

しかし、表示上、指数形式になっているだけで、1234567891234567のようになっているかもしれません。

そんな時は、メモ帳で確認してみます。

スポンサーリンク
このような表示になります。

これは、1234567891234567を、文字として扱っているので、1234567891234567の前後に、ダブルクォーテーションが付きます。

場合によっては、1.234587E+15のように表示される場合があります。

結局、Excelの機能が邪魔をして、うまく表示されないのです。

 

ACCESSから、16桁の数値を出力する 作業手順 その3 ハマりの思考

ここからが、ハマりました。

考えたこと
VBAで、一旦、Excelを起動させて、A列を文字列にしてから、CSVで保存する。
⇒できたけど、文字化けが発生メモ帳を起動して、CSVファイルで保存する。

 

メモ帳を起動して、CSVファイルで保存する。

⇒やろうと、思ったけど、面倒だからやめた

 

ACCESSとExcelを連携して、CSVファイルを作成する
⇒これが、王道でしょうが、コードを書くのが面倒。

Naosuke
カンタンなコードで出力できるのに、なんか悔しい。

ACCESSから、16桁の数値を出力する 作業手順 その4 テーブルを再設定

テーブルのフィールドサイズを、十進型

精度を、16、つまり、16桁の16です。

 

桁が、16桁あるのに、指数形式で表示されていないです。

ACCESSって、すげーとおもいました。

これでCSV出力をして、ダブルクォーテーションがなければ成功です。

数値型の[フィールドサイズ]プロパティ

 

オートナンバー型の[フィールドサイズ]プロパティ

 

短いテキストの[フィールドサイズ]プロパティ

ここがポイント

 

ここがポイント
Function8.png
ACCESSのことは、知っているつもりでしたが、全然でした。
当然、もっと、知らないこともあると思います。
ACCESSの内部のことも、理解できれば、もっと便利な、ツールを作成できると思います。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

 

今回ほど、テーブル設定の大切さが、身に染みたことはありませんでした。

テーブル、クエリ、フォーム、レポート、すべてそろってACCESSですね。

今回も最後まで読んでいただきありがとうございました。

今回のサンプルファイルは、No275です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

初心者でも、すぐに、集計、プレゼンができるようになる。書籍だけの勉強は今すぐやめよう!
電子書籍で、AMAZON1位
専門のスタッフが、電話、チャットで完全サポート
大手パソコンスクールよりも、圧倒的な低価格
スポンサーリンク

Twitterでフォローしよう

おすすめの記事