stressmanといいます。
実は、ACCESSでクエリをExcelへ出力をしたいのですが、
ここで、既存のExcelのファイルのセルを指定して出力
というこはできるのでしょうか?
選択クエリで必要な情報を抜き出し、そのクエリを
「営業報告書.xls」というファイルのあらかじめ記載して
ある「顧客名」「住所」のセルに格納していきたいのです。
マクロで「コマンド実行」-「Excel出力」を使って
みたのですが、新しくファイルを開き、クエリのデザイン
そのままで出力されます。
宜しくお願いします。
No.5ベストアンサー
- 回答日時:
たぶんSQL文に間違いがあります。
抽出条件で、テーブルの項目名が違ってませんか?それと、項目の数値タイプか文字タイプかもチェックしてください。
例えば、文字項目でしたら「項目A=”条件”」とダブルクォテーションでくくらなければなりません。
100%作成されたSQL文に誤りがありますので、チェックされてくださいね。
No.4
- 回答日時:
動作しないと言うことは、VBA画面を開いて「ツール」→「参照設定」という項目があります。
そこでExcelの「Micorsoft Excel 9.0 Library」というのにチェックを入れてください。Access2000なら「Micorsoft Excel 9.0 Library」ですが、バージョンによってライブラリィのバージョンが違いますので「9.0」の所はお使いのAccessバージョンで変わりますので注意してください。
それから、このプログラムはフォームのVBAに書いてください。別の独立したモジュールでも構いません。
で、フォームのボタンの「クリック時」でこのプログラムがキックされるようにコーディングされてください。
この回答への補足
ありがとうございます。
早速、Micorsoft Excel 8.0 Libraryを設定しました。
そして、コマンドボタンを押すと、カーソルが砂時計に
なり、なにやら処理をはじめまして。
…が、今度はエラーが、
「実行時エラー 3061
パラメーターが少なすぎます。1を指定してください」
と表示されました。
デバッグの画面を見ると、
Set oRs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
の部分に黄色いマーカーが付いています。
どこをどう修正すればいいのか、分かりません(^^;
お手数おかけしますが宜しくお願いします。
No.3
- 回答日時:
すみません。
MoveNextが抜けてました。Private Sub Excel_Out()
Dim oRs As Recordset
Dim strSQL As String
Dim Ex As Excel.Application 'エクセルリンク用変数(App)
Dim Wb As Excel.Workbook 'エクセルリンク用変数(App)
Dim Ws As Excel.Worksheet 'エクセルリンク用変数(App)
Dim FileName as string
Dim X As Long
Dim Y As Long
FileName = "×××××.xls" 'エクセルファイルの指定
Set Ex = New Excel.Application 'エクセルとのセッション開始
Set Wb = Ex.Workbooks.Open(FileName) 'ワークブックの指定
Set Ws = Wb.Worksheets("Sheet1") 'ワークシートの指定
strSQL = "SELECT 顧客名,フリガナ,郵便番号
strSQL = strSQL & vbCrLf & " FROM テーブル名"
strSQL = strSQL & vbCrLf & " WHERE ○○" '抽出条件を設定。無ければ行そのもの削除
strSQL = strSQL & vbCrLf & " ORDER BY △△△△" '並び替え設定。しなくて良い場合は行そのもの削除
'出力用レコードセット
Set oRs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
Y=1
X=0
'--ここで任意のセルに任意のデータを設定する。--
Do Until oRs.Eof
Ws.Cells(Y, X + 1) = oRs("顧客名")
Ws.Cells(Y, X + 2) = oRs("フリガナ")
Ws.Cells(Y, X + 3) = oRs("郵便番号")
oRs.MoveNext
Y = Y + 1
Loop
oRs.close
Wb.SaveAs FileName 'ファイルの保存
Wb.Close 'ワークブックのクローズ
Ex.Quit 'エクセルセッションをクローズする。
Set Ws = Nothing '変数の初期化
Set Wb = Nothing '変数の初期化
Set Ex = Nothing '変数の初期化
Set oRs = Nothing
End Sub
この回答への補足
PAPA0427さん、詳しく説明していただきありがとうございます。
早速コマンドボタンのクリックイベントのところに
教えて頂いたコードを書いてみました。
時間がかかりつつも、書き終わり、試しにボタンを押して
みたのですが、動作しません…(TT)
おそらく書く場所が間違っているのだとおもうのですが、
…すいません。
お手数をおかけして申し訳ないのですが、
アドバイスお願いします
No.2
- 回答日時:
そのまんまの回答です。
Private Sub Excel_Out()
Dim oRs As Recordset
Dim strSQL As String
Dim Ex As Excel.Application 'エクセルリンク用変数(App)
Dim Wb As Excel.Workbook 'エクセルリンク用変数(App)
Dim Ws As Excel.Worksheet 'エクセルリンク用変数(App)
Dim FileName as string
Dim X As Long
Dim Y As Long
FileName = "×××××.xls" 'エクセルファイルの指定
Set Ex = New Excel.Application 'エクセルとのセッション開始
Set Wb = Ex.Workbooks.Open(FileName) 'ワークブックの指定
Set Ws = Wb.Worksheets("Sheet1") 'ワークシートの指定
strSQL = "SELECT 顧客名,フリガナ,郵便番号
strSQL = strSQL & vbCrLf & " FROM テーブル名"
strSQL = strSQL & vbCrLf & " WHERE ○○" '抽出条件を設定。無ければ行そのもの削除
strSQL = strSQL & vbCrLf & " ORDER BY △△△△" '並び替え設定。しなくて良い場合は行そのもの削除
'出力用レコードセット
Set oRs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
Y=1
X=0
'--ここで任意のセルに任意のデータを設定する。--
Do Until oRs.Eof
Ws.Cells(Y, X + 1) = oRs("顧客名")
Ws.Cells(Y, X + 2) = oRs("フリガナ")
Ws.Cells(Y, X + 3) = oRs("郵便番号")
Y = Y + 1
Loop
Wb.SaveAs FileName 'ファイルの保存
Wb.Close 'ワークブックのクローズ
Ex.Quit 'エクセルセッションをクローズする。
Set Ws = Nothing '変数の初期化
Set Wb = Nothing '変数の初期化
Set Ex = Nothing '変数の初期化
End Sub
No.1
- 回答日時:
VBAを使用すれば、出来ますよ。
参考までに以下のソースをモデファイしてご利用下さい。Private Sub Excel_Out()
Dim Ex As Excel.Application 'エクセルリンク用変数(App)
Dim Wb As Excel.Workbook 'エクセルリンク用変数(App)
Dim Ws As Excel.Worksheet 'エクセルリンク用変数(App)
Dim FileName as string
FileName = "×××××.xls" 'エクセルファイルの指定
Set Ex = New Excel.Application 'エクセルとのセッション開始
Set Wb = Ex.Workbooks.Open(FileName) 'ワークブックの指定
Set Ws = Wb.Worksheets("Sheet1") 'ワークシートの指定
'--ここで任意のセルに任意のデータを設定する。--
Ws.Cells(Y, X) = Data 'Y=セルのY位置、X=セルのX位置
・
・
・
'--終わり--
Wb.SaveAs FileName 'ファイルの保存
Wb.Close 'ワークブックのクローズ
Ex.Quit 'エクセルセッションをクローズする。
Set Ws = Nothing '変数の初期化
Set Wb = Nothing '変数の初期化
Set Ex = Nothing '変数の初期化
End Sub
この回答への補足
PAPA0427さん、分かりやすい説明ありがとうございます。
少し質問なのですが、
'--ここで任意のセルに任意のデータを設定する。--
Ws.Cells(Y, X) = Data 'Y=セルのY位置、X=セルのX位置
の部分の書き方なのですが、
YとXはセルの位置なので、Aと1みたいに指定すればいいと
おもうのですが、「Data」の書き方はどうすればいいので
しょうか?
クエリには何十件という顧客のデータが一覧表示されます
例えば、A1に顧客名、A2にフリガナ、B1に郵便番号、
B2に住所という感じの場合、どういう書き方になるので
しょうか?
あつかしくもお願いします。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access Excel出力する保存先を...
-
アクセスクエリ(複数)→マクロ...
-
ACCESS で 項目名を出力せずに...
-
Accessでエクセル出力の保存先指定
-
Accessから指定した画像データ...
-
Access内の任意のクエリを指定...
-
Access データベースの最適化を...
-
AccessでUTF-8のtxtデータを出力
-
ACCESS2000でマクロでCSVエ...
-
エクセルで縦のカラムデータを...
-
T-SQLでselectの結果をCSV出力...
-
【Excel】[Expression.Error] ...
-
SQLPLUSで結果を画面に表示しない
-
特定のエクセルファイルを起動...
-
共有フォルダに誰が何にアクセ...
-
XMLデータを変換し印刷する方法
-
100万行のCSVを10万行ずつのフ...
-
selectした結果の余計な余白を...
-
ExcelのマクロでAccessのmdbを...
-
accessのmdbが勝手にできている?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS で 項目名を出力せずに...
-
アクセスクエリ(複数)→マクロ...
-
Accessでエクセル出力の保存先指定
-
エクセルで縦のカラムデータを...
-
Access Excel出力する保存先を...
-
Access データベースの最適化を...
-
teraterm から起動したプログラ...
-
指数表示しない方法
-
Access2013の質問です
-
AccessでUTF-8のtxtデータを出力
-
AccessのデータをExcelの決まっ...
-
Access内の任意のクエリを指定...
-
access 更新ボタンを作る
-
ACCESSで毎回CSVファイルをテー...
-
アクセスからエクスポートする...
-
Accessから指定した画像データ...
-
エクセルVBA レイアウト変更CS...
-
wordのVBAを使って別のword文書...
-
エクセル 入力フォームのデータ...
-
T-SQLでselectの結果をCSV出力...
おすすめ情報