dポイントプレゼントキャンペーン実施中!

初めての投稿となります。
よろしくお願いいたします。

Accessにて年月日をパラメーター入力すると、該当年月日のDATAを抽出するクエリを作成しました。
現在はマクロにて自動的にデスクトップに該当DATAをExcelファイルに変換は出来るようになっておりますが、自動的にそのExcelファイル名の頭に入力したパラメーター情報を追加したいのですが、どのようにすれば出来るのでしょうか?

現在のファイル名: 情報.xls
自動作成時希望ファイル名:20090415情報.xls

[20090415]がパラメーター入力情報です。

どうぞ宜しくお願いいたします。

A 回答 (2件)

VBAになれた方なら、VBAでSQL文を作って実行するようなやり方をするでしょう。


ーー
あえてそれに踏み込まず、
もう少し簡単に出来る方法を述べてみます。
Moduleに、ですが
Sub test02()
x = InputBox("年月日")
MsgBox x
'DoCmd.OpenQuery "クエリ1"
DoCmd.TransferSpreadsheet acExport, 8, "クエリ1", "C:\Documents and Settings\xxxx\デスクトップ\" & x & "名簿原本.xls", False
End Sub
(xxxxは自分のユーザーIDなどの質問者の実情に合わせること)
と入れて、実行します。
年月日を聞いてきます。文字列で入れます。年月区切りに/を入れる方式はうまくいかなかったので、20090416のようにしてテストした。
上記クエリ1は私の場合、パラメータクエリで、パラメータを聞いてきますから入れます。私の場合は条件は年月ではなかったですが。
これでデスクトップに検索(選択)結果のデータのエクセルファイルが出来ました。シート名はクエリ名。
クエリを作るとき、表示フィールドが2度同じものを指定しないようにします(重複した・・のエラーが出ますから。私は出しちゃった)
ーーーー
上記を実行したとき聞いてきた年月日が、質問者の場合、クエリのパラメータで有るようです。クエリ1に上記xの文字列をプログラムで渡せればよいのですが、不可能ではないかと(現状小生には判りません)思います。
簡単さを求めた(アクセスのマクロを使おうとしたため)ためですが、重複入力がイヤならこの回答は無視してください。
VBAでSQLを扱う方式を勉強してください。
    • good
    • 0
この回答へのお礼

アドバイス有難うございます。
早速試してみます。

お礼日時:2009/04/18 21:29

> [20090415]がパラメーター入力情報です。



このパラメータですが、クエリのデザインビューの『抽出条件』
部分に『[年月日]』といった形で入力を要求するようにしている、
ということでよろしいでしょうか。
だとすると、マクロからその値を参照するのは難しいと思います。
(少なくとも私は(VBA使用時を含めて)その方法を知りません(汗))

ですので、Excelファイルを作成するマクロを設置したフォームに
テキストボックスを追加し、その値を、「クエリの抽出条件」と
「ファイル名」に使い回す、という代替案を提案します。


具体的には、以下の通りです(フォーム名が「フォーム1」、
テキストボックス名が「年月日」だった場合):

【クエリ】
 <現在の抽出条件の式>
  [年月日]
 <変更後の抽出条件の式>
  [Forms]![フォーム1]![年月日]
  (パラメータ入力ダイアログは表示されなくなります)

【マクロ】
 a)『アクション』に「出力」を指定している場合:
 ※この場合は、AccessのバージョンによってはExcel5.0という
  古いExcelの仕様に従っているらしく、16000行程度までしか
  出力されないので要注意。
 <現在の『出力ファイル』欄の式>
  c:\~~\情報.xls
 <変更後の『出力ファイル』欄の式>
  ="c:\~~\" & Forms!フォーム1!年月日 & "情報.xls"

 b)『アクション』に「ワークシート変換」を指定している場合:
 <現在の『ファイル名』欄の式>
  c:\~~\情報.xls
 <変更後の『ファイル名』欄の式>
  ="c:\~~\" & Forms!フォーム1!年月日 & "情報.xls"

※拡張子を省略すると、「出力」アクションでは拡張子なしで、
 「ワークシート変換」アクションでは『ワークシートの種類』
 欄で指定したものに対応する拡張子が追加された状態で、
 それぞれ出力されるようです。
 (WinXP・Access2003での確認結果)
    • good
    • 0
この回答へのお礼

詳しくアドバイス頂き有難うございます。
早速試します。

お礼日時:2009/04/18 21:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A