• 締切済み

レコード件数をファイル名にしてエクスポートしたい

アクセスのクエリをテキスト形式でエクスポートして、そのテキストファイルの名前をクエリの名前とレコード数を繋げたものにしたいのですが何か方法を教えて頂けないでしょうか。。 ↓こんな風にしたいのです。 ----------------- クエリ名:q1 レコード件数:100件 ファイル名:q1_100 ----------------- 宜しくお願いします。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

回答を待っているより、試された方が早いですし、上達の近道です。 定義ファイルは雛形ですので、使い回し可能です。 下記の様に出来ると思いますが、クエリが存在しないとエラーになります Sub outputQuery() Dim myQueryName As String Dim myFileName As String Dim i As Long For i = 1 To 20 myQueryName = "クエリ" & CStr(i) myFileName = CurrentProject.Path & "\" & myQueryName & "_" & CStr(DCount("*", myQueryName)) & ".txt" DoCmd.TransferText acExportDelim, "クエリ1 エクスポート定義", myQueryName, myFileName, False Next i End Sub

kiku0814
質問者

お礼

お蔭様で出来ました。 一応、自分なりにも頑張って試していたのですが、、 大変助かりました。ありがとうございます。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

#1です。 汎用性は失われますが、簡単にやるには、一度手動で「ファイル」/「エクスポート」で、エクスポートウィザードを起動し、タブ区切り・テキスト区切り記号なしに設定した後、「設定」というコマンドボタンを押し、エクスポート定義を保存しておきます。その名前を、「クエリ1 エクスポート定義」と設定したとすると、下記コードで出来ます。 Sub outputQuery() Dim myQueryName As String Dim myFileName As String myQueryName = "クエリ1" myFileName = CurrentProject.Path & "\" & myQueryName & "_" & CStr(DCount("*", myQueryName)) & ".txt" DoCmd.TransferText acExportDelim, "クエリ1 エクスポート定義", myQueryName, myFileName, False End Sub

kiku0814
質問者

お礼

ご回答ありがとうございます!! こちらの方法で出来ました。 お礼が遅くなり申し訳ありませんでした。

kiku0814
質問者

補足

すみません。 頂いた回答で充分満足なのですが、欲張って質問させて頂いて宜しいでしょうか。。 同じエクスポート定義で、q1からq20までをエクスポートするという指定は出来るのでしょうか。 勉強不足な為に質問が一度に出来なくて申し訳ありません。 時間のある時に気が向いたらで結構です。 ご回答頂けると大変助かります。 宜しくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

これはVBA(モジュール)を使わないと出来ないのではないか。 アクセスのVBA(ADOなど)は経験あるのかな。 (1)エクスポートといっているのは、CSVファイルを作りたいのか。 (2)各フィールドは文字列ばかりなのか。データ変換などいらないのか。 など質問に説明をすべきなのでは。

kiku0814
質問者

お礼

質問の仕方についてのアドバイス ありがとうございました。

kiku0814
質問者

補足

早速アドバイスありりがとうございます。 言葉が足りず申し訳ありません。 アクセスVBAについて、ほとんど経験がなく、サイトでコピーした簡単なコードを書き換えて使う程度です。 1)エクスポートはタブ区切りのtxtファイルです。 2)各フィールドには数値データもありますが、全てテキスト型でエクスポートさせます。 これで大丈夫でしょうか。。 ご連絡が遅くなり失礼しました。 宜しくお願いします。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

標準モジュールに置いて実行してみてください。出力ファイルに拡張子を付けないと訳の分からないエラーが出ます。当方Access2000です。 Sub outputQuery() Dim myQueryName As String Dim myFileName As String myQueryName = "クエリ1" myFileName = CurrentProject.Path & "\" & myQueryName & "_" & CStr(DCount("*", myQueryName)) & ".txt" DoCmd.TransferText acExportDelim, , myQueryName, myFileName, True End Sub

kiku0814
質問者

お礼

ご回答頂きありがとうございます。 早速試してみます!

kiku0814
質問者

補足

おぉ出来ました!! 何度も言葉足らずで申し訳ないのですが、下記についても教えていただけると大変大変助かります。。 1)エクスポートは「タブ区切り」で先頭行はフィールド名には「使用せず」、テキスト区切り記号は「なし」で設定したい。 宜しくお願いします。

関連するQ&A

  • Access 1レコードずつcsvで出力したい

    使用しているのはAccess2000です。 クエリのレコードを、1レコードずつcsvにエクスポートしたいのですが、マクロなどで自動的におこなうことはできないでしょうか? 例. クエリ名:test レコード数:100件 フィールド名:ファイル名 testクエリの1から100までのレコードを、1件ずつcsvへエクスポートする。保存する際は「ファイル名」を参照して、csvファイル名とする。100件分のこれらの作業をすべてマクロ等で自動化したい。 VBAの知識はほとんどありませんが、VBAによる回答でも構いません。 よろしくお願いいたします。

  • Access テーブルを分割してエクスポートしたい

    Access 2000のテーブルを指定した行数分に分割して、csv形式にエクスポートしたいと思っています。 例えば、100万件のデータを20万件×5ファイル、というイメージです(対象件数/分割件数ともに一定ではありません) 自分で考えてみたのですが、上位20万件をクエリ→削除クエリ→上位20万件をクエリ→削除クエリ・・・という 方法しか思い浮かばず、もっと簡単に出来る方法をお教えいただければと思います。 よろしくお願いします。

  • VBAでテキストファイルの件数を調べる方法

    Access2000のVBAで関数を使用して ファイルのパス名、ファイル名を指定すれば、 テキストファイルの件数を検索し変数に返す 関数はありませんか?     通常テキストファイルを開き1件1件カウントを 取っていけば件数を知ることは可能ですが、 数千レコードのテキストファイルが複数個存在 する場合処理スピードが遅くなるため何か 最適な関数はありませんか? よろしくお願い致します。

  • DCountでテーブルのレコード件数を取得するには

    アクセスのテーブル1に何件レコードがあるかをvbaのDCountで取得したいのですが Sub a() MsgBox DCount("テーブル1") End Sub すると、引数は省略できません。(Error 449)になります。 フィールドは件数あり、レコードが入ってたり入ってなかったりするし、主キーはありません。 アクションクエリの削除クエリですべてのレコードを削除したりするので レコード件数が0件なのか、レコードがはいってるかをDCountで取得できればなー と思うのですが、どうすればいいでしょうか?

  • アクセステキストエクスポートについて。

    アクセスでエクスポートする際に フィールド開始位置が有効ではないとなり テキストのアウト出来ない場合 下記の DoCmd.TransferText acExportDelim, , "ファイル名クエリ", "C:\Documents and Settings\Administrator\デスクトップ" & "\" & "ファイル名.csv", True End Sub のようにして対応しているのですが 1レコード目に 余計な フィールド1,フィールド2,フィールド3,フィールド4,フィールド5のようなレコードが 付いてしまうのですが インポートしたままの状態でエクスポート出来ないでしょうか。 ちなみにファイル数が多いのを想定して あとで1レコード目を削除する方法は考えておりません。 どうぞよろしくお願いします。

  • 【Access】エクスポート時のファイル名規則

    お世話になります。 Access2010にてクエリの内容をテキストファイルでエクスポートするツールを作成しました。 エクスポート自体は問題ありませんが、ファイル名として感嘆符(!)を付けたいのですが、以下のメッセージが表示されエラーとなります。 ※!は半角です。 実行時エラー2006 指定したオブジェクト名'!test.txt'はMicrosoft Accessの名前付け規則に従っていません。 ちなみに以下のようなVBAです。 DoCmd.TransferText acExportDelim, "エクスポート定義", "エクスポートクエリ", "C:\!test.txt" !付きのファイル名を変数に入れて指定してみましたが、同じエラーが出てしまいます。 どうにか!付きファイル名でエクスポートすることは出来ないでしょうか。 ※普通に手動で!付きのファイルを作成することはできますので、Accessのエクスポート時の制限かなにかでしょうか。。 ご教授の程、宜しくお願い致します。

  • Access レコードのエクスポート

    Accessのmdbファイルをサーバー上に置いてあります。 クライアントPCからサーバーにアクセスし、フォームを使用して取引先データを入力します。 クライアントPCはネットワークから切り放して使用することもあるため、取引先データをクライアントPC本体にも保存したいのです。 形式としては、クライアントPCにもmdbファイルをつくり、その中のテーブルに保存したいのですが、 テーブルごとエクスポートするのではなく、フォームで入力しているそのレコードのみクライアントPCのテーブルにエクスポートさせ、その後は1件ずつ追加されていく形をとりたいのです。 (クライアントPCは複数台あるため、自分のPCで入力したもののみ、自分のPCに取り込みたいのです) テーブルまるままエクスポートまでは書けたのですが、レコードをエクスポートが分かりません。 ご教授ください。

  • ACCESS97でクエリをエクスポートしたファイル

    ACCESS2007でクエリをExel2007形式にエクスポートしたファイルが自動バックアップファイルのxlkが作成されるようになっています。 解除の方法はわかりますか?

  • ACCESSでエクスポートの件数をカウントするには

    こんにちはBOLTSです。 今日は皆様のお知恵を拝借したくて書かせて頂きました。 現在ACCESS2000を使用しています。テキストファイルにデータをエクスポートしたのですが、エクスポートした件数をカウントしたいのです。 例えばエクスポートすべきデータを予めカウントしておいて変数Aに入れておきます。次にデータをエクスポートして エクスポートできた件数を変数Bに入れます。 この変数Aと変数Bを比較して=であればエクスポート完了のメッセージを表示したいのです。 まあ要はエクスポートが確実に完了したかどうかの確認が欲しいわけです。 何かいい知恵ありませんでしょうか? よろしくお願いします。

  • ファイルメーカー レコードのエクスポートについて

    Filemaker Pro 11 Advancedを使用しています。 蔵書データベースを作っており、インターネットオークションに出品するために、出品に必要なフィールドを配置したレイアウトを作成しました。レコードごとにレイアウトそのままのかたちで、HTMLソースを作るなど(その他の方法があればその方法も)で、オークションサイトの出品欄に掲示できるようにしたいのですが、どのようにすればいいでしょうか。 レコードのエクスポートでHTML形式で保存すると、フィールド名とレコードのデータのみが抽出されてしまいます。レイアウトにはテキストデータなども追記しているので、それらも反映した形にしたいと思うのですが、できません。 ご教示よろしくお願いします。

専門家に質問してみよう