
初めて質問させていただきます。
ACCESS2003で、出力用テーブルからCSVもしくはExcel出力をしたく、色々試してみましたが、希望通りにいかず悩んでおります。具体的には、以下のような悩みです。どなたか良いアイデアをお持ちでしたらご教授ください。
----------------------------------
●以下のプログラムでCSV出力をすると、日付に時間(0:00:0)が付加してしまう。
DoCmd.TransferText acExportDelim, "", "出力データ用テーブル", 出力ファイル名, True
●以下のプログラムでEXCEL出力をすると、日付は「YYYY/MM/DD」で出力されるが、全てのテキスト型のデータの頭に「'」シングルコーテーションが付いてしまう。
DoCmd.TransferSpreadsheet acExport, , "出力データ用テーブル", 出力ファイル名, True
●以下のプログラムでEXCEL出力をすると、日付が「dd-mm-yy」となってしまう。「YYYY/MM/DD」としたい。
DoCmd.OutputTo acOutputTable, "出力データ用テーブル", acFormatXLS, 出力ファイル名, True
----------------------------------
シングルコーテーションは付かずに、日付も「YYYY/MM/DD」と表示されることが希望で、ファイルはCSVでもEXCELでもどちらでも構いません。
どなたか良い方法をご存知でしたらご教授ください。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.2のDexMachinaです。
> 【実施したこと】
Excelに出力するまでの流れとしては、
a)「テーブル1」から、テーブル作成クエリで「出力用テーブル」を作成、
b)「テーブル1」から、追加クエリで「出力用テーブル」に追加、
のどちらか、ということでよろしいでしょうか。
(特に「a)」の可能性が高いかなと推測していますが)
その上で、データ元の「テーブル1」で書式を設定したのだとすると、残念ながら
「出力用テーブル」にはその書式は反映されませんので、Excelへの出力結果に
ついては、日付表記が変わらない、という結果にならざるを得ないと思います。
どうやら、選択クエリに対しては書式が引き継がれるのですが、
・追加クエリの場合は追加先のテーブルの書式設定に依存し、
・テーブル作成クエリの場合はデフォルト設定(?)に戻される
ということのようです。
(極端な例ですと、元のテーブルで「Yes/No型」のフィールドは、テーブル作成
クエリで別テーブルに複製すると、元がチェックボックス表示だったものが
テキストボックス表示に変えられてしまう、というのがあります)
ですので、上記「b)」のパターンでしたら、「出力用テーブル」の当該フィールドに
対して、直接書式を設定してやれば、Excelに対して書式が引き継がれるように
なると思います。
また、「a)」の場合は、
イ)作成したテーブルに対して毎回書式を設定するか、
ロ)テーブル作成クエリで、日付に対してFormat関数を適用するか、
(→この場合、テーブル上のデータはテキスト型になってしまうため、
Excel出力時には先頭に「'」がついてしまい、今回の解決策にならず・・・)
ハ)テーブル作成クエリをやめて「b)」の形に変更するか、
(全レコードを削除する削除クエリを実行後、追加クエリを実行、とすれば、
テーブル(+そこに設定した書式)は保持して、レコードだけの入替が可能)
ニ)テーブル作成クエリの代わりに、選択クエリを直接「OutputTo」の対象に
する、
といったことで回避できるのではないかと思います。
【一応参考まで】「教えて!goo」と「OK Wave」のID・パスワードの確認方法です。
教えて!goo:
https://goo.e-srvc.com/cgi-bin/goo.cfg/php/endus …
OK Wave:
http://faq.okwave.jp/EokpControl?&tid=102908&eve …
No.3
- 回答日時:
DexMachinaさん、ご回答ありがとうございました。
先週、質問させていただきましたScotch55です。
回答をいただいてから、質問者としてお礼を申し上げたくログインを試みておりましたが、ユーザーIDとパスワードが一致せず、ログインに失敗しており、時間ばかりが経過してしまいました。すみません。「Scotch56」というユーザーで再登録いたしました。以下、DexMachinaさんのアドバイスに沿い、実施した内容と結果です。
その後の経過をご報告いたします。
【実施したこと】------------------------------------------------
出力用テーブルはクエリによってINSERTされるものなので、そのクエリが参照しているテーブルをデザインビューで開き、その日付フィールドを選択して、『書式』プロパティを、「yyyy/mm/dd」と設定してから、「OutputTo」実行しました。
【結果】--------------------------------------------------------
DexMachinaさんの場合とは違う結果となりました。
セルを選択した場合の表示は「yyyy/mm/dd」と変わりましたが、セルの上の表示は「dd-mmm-yy」のままでした。
【現状】--------------------------------------------------------
方法を捜索中です。
何かよい方法が見つかりましたら再度、回答としてアップいたします。
No.2
- 回答日時:
問題になっている日付には、時刻部分は常にない(=全て「0:00:00」)、ということで
よろしいでしょうか。
そうであれば、当該テーブルをデザインビューで開き、そのフィールドを選択して、
画面左下の『標準』タブの1行目『書式』欄に、「yyyy/mm/dd」と設定してから、
「OutputTo」を実行してみて下さい。
こちらの環境(Access2003・XP Pro・IBM ThinkPad X40)では、日付が
「08-JUN-08」(→セルを選択した場合に表示されるのは「2008/7/8」)から、
「2008/07/08」(→セルを選択した場合の表示は同じく「2008/7/8」)へと
変化しました。
どうやら、テーブルのフィールドに書式設定がある場合は、OutputToでは、Excelに
対しても同じ書式設定が出力されるようです。
(出力されたファイルのセルで「右クリック→セルの書式設定(F)」の表示形式で、
「ユーザー定義」として「yyyy/mm/dd」が設定されていることを確認しました)
Hasky2007さんへ:
自身で作成・管理するDBではユーザー関数の定義も有効だと思いますが、
こういった質問サイトにおける回答にそれを多用するのは、適切ではないと
思うのですが、いかがでしょうか。
(同時に提示されない場合、一般の方には検証ができない、という問題もあります)
No.1
- 回答日時:
tab1:
ID_日付_______単価___数量
_1_2008/07/07_\1,000_10.1
_2_2008/07/08_\2,000_10.2
[イミディエイト]
? FileWrite("C:\Temp\Test.csv", DBSelect("SELECT * FROM Tab1", ",", vbCrLF))
True
Test.csv-メモ帳
1,2008/07/07,1000,10.1
2,2008/07/08,2000,10.2
さて、このように幾つかの関数を用意すれば僅か1行でCSVファイルは出力可能です。
※どうしてもAccessの機能で実現できない場合でVBA関数を用いてもという場合は補足します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Countと受付状態の表示に...
-
下記の事を行うSQLがわかりませ...
-
アクセスで消し込みがしたい
-
Accessでテーブルからテーブル...
-
ACCESS 売上管理 価格改定につ...
-
Accessでテーブルにパスワード...
-
パススルークエリをテーブル作...
-
ツリー構造をRDBで表現するには?
-
テーブル作成クエリで主キーを設定
-
Accessでvlookupみたいなことは...
-
SQLで条件指定結合をしたいがNU...
-
フィールドサイズの変更方法に...
-
「直需」の意味を教えてください
-
ACCESS検索★ある文字を複数のフ...
-
Excel 2019 のピボットテーブル...
-
テーブルの存在チェックについて
-
Accessのフィールド数が255しか...
-
日本語のテーブル名、カラム名...
-
Oracle 2つのDate型の値の差を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
下記の事を行うSQLがわかりませ...
-
Countと受付状態の表示に...
-
Accessレコードの追加や変更が...
-
Accessの追加クエリで既存のテ...
-
Accessでテーブルからテーブル...
-
Accessでvlookupみたいなことは...
-
2つのテーブルを比較して一致し...
-
Accessクエリでの、LIKE条件
-
access テーブル内のレコード...
-
テーブルを、たとえそれが存在...
-
ACCESSのSQLで数値型に変換する...
-
デザインビューで、連結式 を...
-
ACCESSに同時アクセス(編集)を...
-
2つのテーブルAとBをマージ...
-
accessで指定期間の曜日カウン...
-
データベースで変更の多いテー...
-
INSERT時にデータ登録とmaxの発...
-
パススルークエリをテーブル作...
-
SQLで条件指定結合をしたいがNU...
おすすめ情報