マンガでよめる痔のこと・薬のこと

いつもお世話になっております。

Access2007でクエリをcsv形式でエクスポートしたく、マクロを使って設定をしたのですが、
[ファイル名]引数にファイル名を指定して下さいとエラーメッセージが出ます。

エクスポートするごとに新規でファイルが作成されてほしいので、ファイル名を空欄にしました。
予めエクスポートするファイルを作って、どこかで保存しておかなくてはいけないのでしょうか?
エクスポートする度に新たに新規ファイル保存されるようにするにはどうしたら良いですか?

よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ファイル名を指定してあげないと、Access君もどんな名前をつけたらいいかわからないですよね。



マクロを実行するたびにファイル名を指定したいなら、[ファイル名]引数に下記の式を設定すれば、

="C:\MyData\" & InputBox("ファイル名を入力してください。")

ファイル名を聞いてきますので入力すれば、CドライブのMyDataフォルダーに指定した名前で出力されます。
(MyDateフォルダーは事前に作成しておかないとエラーになります。)

また、下記のように設定すれば、

="C:\MyData\" & Format(Now(),"yyyymmddhhnnss") & ".csv"

MyDateフォルダーに、20130416125400.csv というように出力した日時をファイル名として出力されます。
    • good
    • 0
この回答へのお礼

ありがとうございます。とんでもない方法を行っていたのですね(^_^;)
早速MyDateを作成します。
また、日時をファイル名にする方法も教えて頂きありがとうございます。
とても参考になります。

ありがとうございました。

お礼日時:2013/04/16 13:43

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【Access】クエリで抽出したデータをCSV形式でエクスポートできますか?

タイトルの通りなのですが、
クエリーで抽出したデータをcsv形式でエクスポートするには
どのようにすればいいのでしょうか?
Accessに慣れていなくて困っています、どなたか教えてください(>_<)

その後はいろいろ加工したいので、
最終的にはExcel形式で保存しなおそうと思っています。
初めからExcel形式でエクスポートすると、とても重くなるし、
いちいち「再計算」がかかってしまうので作業がやりづらいんです。。。

どなたかお力を貸してください。
よろしくお願いします!

Aベストアンサー

クエリをクリックし選択状態にしてメニューのファイルのエクスポートもしくはクエリを右クリックしエクスポートを選択すると保存する場所の選択するダイアログが出ますのでファイルの種類をテキストファイルを指定し保存するホルダとファイル名を指定します。
指定するとテキストエクスポートのウィザードが表示されますので順次進めていきエクスポート先のファイル名でパスとファイル名が表示されますのでcsvで保存するなら最後の.txtを.csvに変更しOKをクリックすればcsvで保存でします。

QAccessでSQL結果を直接csvに書き出すには?

Access2003,WinXP

お世話になります。
自作のSQLを書いて、結果をTransferTextで手軽にCSVにできないかと考えてこんなのを書いてました。
Dim strSql AS String
Dim strPath AS String
strSql = 自作SQL文
strPath = c:\test.csv
Docmd.TransferText acExportDelim, , strSql, strPath, True

しかし、TransferTextでは「テーブル」か「クエリ」名を直接書くように指示してあり、これだと動かない?んでしょうか。
SQLは300個くらい出力する必要があるため(クエリ300個作れば解決するのですが・・・)上のようなコードをループして動かしたいのですが、何か他の簡単な出力方法があるのでしょうか。
よろしくお願いいたします。

Aベストアンサー

Dim dbs As Database
Dim qdf As QueryDef
Dim strSql AS String
Dim strPath AS String
Dim i As Integer
Set dbs = CurrentDB
'準備。「適当なクエリ名」と言うクエリを作る
qdf = dbs.CreateQueryDef("適当なクエリ名","SELECT * FROM 何か適当なテーブル");
Set qdf = Nothing 'qdfを開放
'ループ
For i = 1 to 300
  strPath = "c:\test" & Format(i,"00#") & ".csv"
  strSql = 自作SQL文
  dbs.QueryDefs![適当なクエリ名].SQL = strSql
  Docmd.TransferText acExportDelim, , strSql, strPath, True
Next
dbs.Close 'dbsをクローズ
Set dbs = Nothing 'dbsを開放

Dim dbs As Database
Dim qdf As QueryDef
Dim strSql AS String
Dim strPath AS String
Dim i As Integer
Set dbs = CurrentDB
'準備。「適当なクエリ名」と言うクエリを作る
qdf = dbs.CreateQueryDef("適当なクエリ名","SELECT * FROM 何か適当なテーブル");
Set qdf = Nothing 'qdfを開放
'ループ
For i = 1 to 300
  strPath = "c:\test" & Format(i,"00#") & ".csv"
  strSql = 自作SQL文
  dbs.QueryDefs![適当なクエリ名].SQL = strSql
  Docmd.TransferText acExportDelim, , strS...続きを読む

QAccessのテーブル、クエリをCSV形式でエクスポートしたい

マクロを使ってAccessのテーブルやクエリを、カンマ区切のCSV形式でマクロを使ってエクスポートしたいのですが、それらしいものが見つかりません。

どのようにするのでしょうか?


環境:Access 2003 、WindowsXP

Aベストアンサー

マクロの「アクション」で「テキスト変換」を指定し、画面左下に表示される
『変換の種類』引数に「区切り記号付きエクスポート」を指定すればOKです。
 *VBAの場合は「TransferText」になります。

その他の引数については事例毎に個別になりますので、詳細はヘルプを
参照して下さい。
(マクロ・VBAとも、「TransferText」で検索を掛ければ見られると思います;
 Access2000で確認)

QAccess パラメータクエリをcsvでエクスポートしたい

Access 初心者です。
パラメータークエリにて日付でを抽出後のデータをcsvで保存したいです。

自分で色々調べてやってみたのですがどうもうまくいかず
「パラメータが少なすぎます2を指定してください」のエラー表示もでます。

パラメータクエリで抽出後のデータをcsvで保存することは可能なのでしょうか。

また、保存が可能であればコマンドボタンを作りボタンを押した時にエクスポートのウィザードが
表示できるようにしたいのですがそれも可能でしょうか。

期日もありできず困っています。
初心者の為細かく教えていただきたいです。

今使用しているパラメータークエリは4つの各テーブルから作っています。

ご教授お願い致します。

Aベストアンサー

userのテーブルが下記に有ります。
id 氏名
1 長崎
2 札幌
3 千歳
4 博多

追加先のテーブルが下記に有ります。
id user comment
1 長崎

下記の文字列をsqlとしてコピペ入力して下さい。
INSERT INTO 追加先 ( id, [user] )
SELECT user.id, user.氏名
FROM [user]
WHERE (((user.id)=[idを入れろ]));

そのまま実行して下さい。

Qアクセスからエクスポートするファイル名に日付を入れたい

アクセス2003を使用しています。

エクセルからデータをインポートして、データ加工後、エクセルにエクスポートさせるように作成中です。

マクロで
エクスポートするファイル名に日付を自動で設定せたいのですが、方法が判りません。
例)処理後20070824.xls 

どうか教えてください。よろしくお願いいたします。

Aベストアンサー

昔の回答で悪いけど参考にしてください。バージョン違いでうまくいかなかったらご勘弁。

参考URL:http://okwave.jp/qa1482781.html

QCSVファイルを任意の場所に出力するには?

ACCESS-VBAの初心者です。
ACCESSのテーブルを、csvファイルとして、任意の場所に出力させるには、どのようにしたら良いのでしょうか。
当方初心者につき、なるべく簡単な方法だとさらに助かるのですが。

Aベストアンサー

No.2です。
便利な使い方があるんですね。知りませんでした!

せっかくやる気を出しているので、以下のAPIでダイアログを表示したらどうでしょうか(ネットで調べたものを多少修正しました)。自分の使いやすいように修正してください。このまま使用するなら該当するフォームにそのまま貼り付けてください(=== の間)。
=============================================================
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long '構造体のサイズ
hwndOwner As Long '親ウィンドウのハンドル
hInstance As Long 'モジュールのインスタンスハンドル
lpstrFilter As String 'VBのファイルパターン
lpstrCustomFilter As String 'カスタムフィルタ
nMaxCustFilter As Long '同バイト数
nFilterIndex As Long 'フィルタのインデックス
lpstrFile As String 'フルパス名を受取るバッファ
nMaxFile As Long '同バイト数
lpstrFileTitle As String 'ファイル名を受取るバッファ
nMaxFileTitle As Long '同バイト数
lpstrInitialDir As String '初期ディレクトリ名
lpstrTitle As String 'ダイアログボックスのキャプションタイトル
flags As Long '動作を指定する定数の組合せ
nFileOffset As Integer 'フルパス中のファイル名までのオフセット
nFileExtension As Integer '同 拡張子までのオフセット
lpstrDefExt As String 'デフォルトの拡張子
lCustData As Long 'フックプロシージャに渡すデータ
lpfnHook As Long 'フックプロシージャOFNHookprocへのポインタ
lpTemplateName As String 'テンプレートリソース名
End Type

Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_EXPLORER = &H80000

'--------------------------------------
' ダイアロゴを表示(名前を付けて保存)
'--------------------------------------
Private Function FileSaveDialog(Optional folder As String = "C:\") As String
Dim tOpenFileName As OPENFILENAME
Dim lngRet As Long

With tOpenFileName
.lStructSize = Len(tOpenFileName)
.hwndOwner = Me.hWnd
.hInstance = 0
.lpstrFilter = "テキストファイル(*.txt)" & vbNullChar & "*.txt" _
& vbNullChar & "すべてのファイル(*.*)" & vbNullChar & "*.*"
.nFilterIndex = 1
.lpstrFile = strFileName & String$(256, Chr$(0))
.nMaxFile = 256
.lpstrFileTitle = String$(256, Chr$(0))
.nMaxFileTitle = 256
.lpstrInitialDir = folder
.lpstrTitle = "名前を付けて保存"
.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or _
OFN_HIDEREADONLY Or OFN_OVERWRITEPROMPT
End With

lngRet = GetSaveFileName(tOpenFileName)
FileSaveDialog = Left$(tOpenFileName.lpstrFile, _
InStr(tOpenFileName.lpstrFile, vbNullChar) - 1)
End Function
=============================================================
呼び出しは fileName = FileSaveDialog("デフォルトフォルダ")
デフォルトフォルダが指定されなかったときは C:\ とみなします。
戻り値は fileName に指定ファイルの FullPath が返されます。
キャンセルした場合は空文字が返ります。
以上お試しください。
APIの詳細は GetSaveFileName でネット検索してみてください。

No.2です。
便利な使い方があるんですね。知りませんでした!

せっかくやる気を出しているので、以下のAPIでダイアログを表示したらどうでしょうか(ネットで調べたものを多少修正しました)。自分の使いやすいように修正してください。このまま使用するなら該当するフォームにそのまま貼り付けてください(=== の間)。
=============================================================
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENF...続きを読む

QACCESS で 項目名を出力せずにエクスポートしたい

いつもありがとうございます。
今回、ACCESSのテーブルをCSV形式でエクスポートする事を試みているのですが、出力されたCSVファイルの先頭行に項目名がくっついてしまいます。
この先頭行を出力しないでエクスポートするにはどうすればいいでしょうか?

Aベストアンサー

以下の方法のいずれかで、試してみてください。
・マクロの"テキスト変換"で、フィールド名の設定=いいえ
・VBAでパラメータhasfieldnames=Falseで出力
DoCmd.TransferText acExportDelim, "", "テーブル名", "出力先パスとファイル名", False, ""

Q【Access2003 VBA】クエリをエクスポートしたい

選択クエリを.csvもしくは.txt形式でエクスポートしたいです。
今は、下記のコマンドで行っていますが、ヘッダー(タイトル行)が付加されません。
DoCmd.TransferText acExportDelim, , "qry_select_クエリ1", "C:\クエリ1.csv"

ヘッダーを入れてエクスポートしたのですが、
どうコーディングすればよろしいでしょうか?

よろしくお願いします。

Aベストアンサー

TransferText メソッド - MSDN
http://msdn.microsoft.com/ja-jp/library/cc378869.aspx

の通りで言えば・・・
第5引数のHasFieldNamesにTrueを入れれば、
> 1 行目をフィールド名として使用する場合
に、なるみたいです

ですので・・・

DoCmd.TransferText acExportDelim, , "qry_select_クエリ1", "C:\クエリ1.csv", True

と、言うことでは?

QAccess サブフォームでの選択行の取得

こんにちは。

Access初心者です。

サブフォームでテーブルの項目を表示させていますが、
選択された行を取得する方法はありますか?
サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。

調べているのですが、なかなか検討がつきません。
宜しくお願い致します。

Aベストアンサー

フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、

Forms!フォーム1!サブフォーム1.Form.CurrentRecord

で取得できます。
(「Forms」と「Form」がありますのでご注意下さい)


また、フォーム1にコードを記述する場合であれば

Me!サブフォーム1.Form.CurrentRecord

サブフォーム1へのコード記述であれば

Me.CurrentRecord

という構文によっても、それぞれ取得が可能です。

QAccessでエクセル出力の保存先指定

Accessでマクロを使ってエクセル出力をしています。
出力時に自動的にマイドキュメントに保存されてしまうのですが、
保存先を選択するダイアログを表示させることは可能でしょうか。
VBAを使わないとだめなのでしょうか。
教えてください。
よろしくお願いします。

Aベストアンサー

マクロは何を使っていますか?
「出力」 アクションなら、
ファイル名を省略すれば 「ファイルへ出力」 ダイアログが表示されますが。


人気Q&Aランキング

おすすめ情報