お世話になります。
Access2010にてクエリの内容をテキストファイルでエクスポートするツールを作成しました。
エクスポート自体は問題ありませんが、ファイル名として感嘆符(!)を付けたいのですが、以下のメッセージが表示されエラーとなります。
※!は半角です。
実行時エラー2006
指定したオブジェクト名'!test.txt'はMicrosoft Accessの名前付け規則に従っていません。
ちなみに以下のようなVBAです。
DoCmd.TransferText acExportDelim, "エクスポート定義", "エクスポートクエリ", "C:\!test.txt"
!付きのファイル名を変数に入れて指定してみましたが、同じエラーが出てしまいます。
どうにか!付きファイル名でエクスポートすることは出来ないでしょうか。
※普通に手動で!付きのファイルを作成することはできますので、Accessのエクスポート時の制限かなにかでしょうか。。
ご教授の程、宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
1.!無しファイル名でエクスポート
2.既存の!付きファイルを削除 ← VBAよりBAT起動
3.エクスポートした!無しファイル名をリネーム(!付きにする) ← VBAよりBAT起動
に関しては、Dir関数で "" か否かで ファイルがあれば、kill してしまえば
Bat ファイルを呼び出す必要はないかと。
なお、私はファイル名でソートした時に先頭に来て欲しい一時的なファイルの場合には
アンダーバー _ を頭に使っています。
蛇足の部分についてなのですが、WindowsXP & Office2002 & IE7 の頃?には
ハイパーリンクの設定で、C:\Documents and Settings\・・・
のようにPath中に半角スペースがあっても機能していましたが
環境が変わってからは半角スペースが、%20 に置き換えられてしまい機能しません。
URL? HTML? の規格が新しくなったためらしいです。
なので、#1さんが ! の件も含めて何かご存知かな?と期待して、「何処?」とお尋ねした次第です。
そちらの環境では、! があっても問題ないようですね。
この検証は涼しくなってから・・・ (^_^;
この回答への補足
>name "C:\test.txt" as "C:\!test.txt"
初めの回答で既に教えて頂いてたんですね。すみません。。
度々のご回答ありがとうございます。
>に関しては、Dir関数で "" か否かで ファイルがあれば、kill してしまえばBat ファイルを呼び出す必要はないかと。
勉強不足ですみません。。
そもそもファイル名の変更やファイルの削除等はWindowsコマンドで実施するものと思ってました(VBAでは出来ないと思ってました)。
教えて頂いた通り、Dirでファイルの有無をチェックして、あればKillで削除。で、Nameでリネーム・・・すればよいのですね。
大変勉強になりました!ありがとうございます。
No.2
- 回答日時:
>Accessでは使えないと明記されてます。
>というか、そもそもMicrosoftから明確「ファイル名には使わないようにしてね」って言われてます。
これはどこに載っていますか?
Windowsでファイル名に使えないリストには、! はありません。
http://support.microsoft.com/kb/879124/ja
Access データベースでの作業時に使用すべきでない特殊文字
http://support.microsoft.com/kb/826763/ja
には、! は有りますけど、! の代わりに # で試したらすんなりと保存されました (^_^?
取りあえず、回答としては大人しく
DoCmd.TransferText acExportDelim, "エクスポート定義", "エクスポートクエリ", "C:\test.txt"
とやっといて
name "C:\test.txt" as "C:\!test.txt"
とファイル名を変えるとかで・・・。
(Winows7(Vistaも)からは、UAC のため、Cドライブ直下には保存不可)
以下、蛇足にお付き合い願います。(当方Win7 & Office2010)
e:\!test.csv というのを作成しておいて
Access で DoCmd.TransferText acImportDelim,・・・はエラーになりました。
が、Excelでファイル→開く・・・ではエラーにはなりません。
しかし、Excelでもセル中にハイパーリンクで、e:\!test.csv を設定すると
設定自体は出来ましたがクリックすると・・・、! も # もダメですね。
私からは以上です。
ご回答ありがとうございます。
恐らくNo.1さんは、ファイル名に記号を使ってはいけない・・・という固定概念があって、確認もせずに仰られたのかと思います。人には「ヘルプ見るとかしました?」なんて仰ってましたが(笑
ファイル名の頭に!を付けたりすることは結構あると思うのですが(エクスプローラ上でファイルの一覧を見るときに順序的に上にもっていきたいときとか)どうなんですかね。
ご教授ありがとうございます。
やはりその方法しかないですかねぇ。。投稿後、恐らく!は使えないだろうと思い一応下記の処理をするようにしました。
1.!無しファイル名でエクスポート
2.既存の!付きファイルを削除 ← VBAよりBAT起動
3.エクスポートした!無しファイル名をリネーム(!付きにする) ← VBAよりBAT起動
※既に同じファイル名が存在するとリネーム不可の為、3の前に削除する必要がありました。
上記処理は一瞬なので、使用者的には意識する必要はありませんが、batファイルを2つ配置しなければならないので、ちょっと面倒ではあります。
>以下、蛇足にお付き合い願います。(当方Win7 & Office2010)
同じ環境です。
>、Excelでもセル中にハイパーリンクで・・・・
ハイパーリンクで同じようにCドライブ直下に!付きCSVを置いてやってみたところ、こちらは問題無くCSV開きました。
UACは元々「通知しない」にしてたのですが、「規定」に変更してもCSV開いたのでUACは関係無さそうですね。
他に何か環境が違うのかもしれません。
No.1
- 回答日時:
エラーメッセージで検索とかヘルプ見るとかしました?
Accessでは使えないと明記されてます。
というか、そもそもMicrosoftから明確「ファイル名には使わないようにしてね」って言われてます。
諦めて代替手段をとってください。
>エラーメッセージで検索とかヘルプ見るとかしました?
もちろん確認しました。
>というか、そもそもMicrosoftから明確「ファイル名には使わないようにしてね」って言われてます。
そういう回答を求めている訳ではないです。
手動だと作成できるので、何か方法はないかと投稿させて頂いた次第です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessのスプレッドシートエクスポートで、シートが追加されてしまう 2 2022/07/16 21:45
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
バッチコマンドでファイル名の...
-
バッチにて複数のcsvファイルを...
-
ExcelVBAのDirでスペース含むフ...
-
バッチファイルで、ファイル名...
-
[DOS] コピー先に同じファイル...
-
DOSのバッチ作成について‐FORの...
-
前日日付のファイルGETバッチ
-
【DOSバッチ開発】末尾のタブの...
-
テキストファイルのファイル名...
-
フォルダ内の更新日時が一番新...
-
【vbs】ファイル名の検索と該当...
-
コマンドでファイルコピーする...
-
バッチ処理で16進数でファイル...
-
ファイル名の頭5桁と同名のフォ...
-
バッチファイルでファイルを置換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
[DOS] コピー先に同じファイル...
-
バッチコマンドでファイル名の...
-
バッチファイルで、iniファイル...
-
ExcelVBAのDirでスペース含むフ...
-
ftp処理でmove(移動)を行いたい
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
【vbs】ファイル名の検索と該当...
-
word VBA ファイル名 保存
-
access,vbaでフォルダ内のファ...
-
VBA GetAttrについて教えてくだ...
-
バッチ処理で16進数でファイル...
-
ファイル名に ” を使うと エク...
-
サブフォルダからファイルをコ...
-
DOSのバッチ作成について‐FORの...
-
コマンドプロンプトまたはpower...
-
【バッチファイル】forコマンド...
おすすめ情報